5233杨光--Linux第二次实验
2015-09-28 20:28
666 查看
实验说明
1.环境登录
无需密码自动登录,系统用户名shiyanlou,密码shiyanlou若不小心登出后,直接刷新页面即可
2.环境使用
完成实验后可以点击桌面上方的“实验截图”保存并分享实验结果到微博,向好友展示自己的学习进度。实验楼提供后台系统截图,可以真实有效证明您已经完成了实验。实验记录页面可以在“我的主页”中查看,其中含有每次实验的截图及笔记,以及每次实验的有效学习时间(指的是在实验桌面内操作的时间,如果没有操作,系统会记录为发呆时间)。这些都是您学习的真实性证明。
3.课程来源
VIM在线手册
内容一:vim编辑器的使用
1.vim编辑器的三种模式
Ⅰ正常模式:(按Esc或Ctrl+[进入)左下角显示文件名或为空
Ⅱ插入模式:(按i键进入)左下角显示--INSERT--
Ⅲ可视模式:左下角显示—VISUAL
2、vim的一些基本操作
Ⅰ、游标移动:
在进入vim后,按下i键进入插入模式。在该模式下您可以输入文本信息,下面请输入如下三行信息:
12345678
abcdefghijk
shiyanlou.com
按Esc进入普通模式,在该模式下使用方向键或者h,j,k,l键可以移动游标。
请尝试在普通模式下使用方向键移动光标到shiyanlou这几个字母上面
Ⅱ.插入模式
在普通模式下使用下面的键将进入插入模式,并可以从相应的位置开始输入
请尝试不同的从普通模式进入插入模式的方法,在最后一行shiyanlou前面加上www.,注意每次要先回到普通模式才能切换成以不同的方式进入插入模式
Ⅲ.保存文档
命令行模式下保存文档:
保存文档从普通模式输入:进入命令行模式,输入w回车,保存文档。输入:w文件名可以将文档另存为其他文件名或存到其它路径下
Ⅳ.退出vim
命令行模式下退出vim:
从普通模式输入:进入命令行模式,输入wq回车,保存并退出编辑
以下为其它几种退出方式:
Ⅴ.普通模式下退出vim
普通模式下输入Shift+zz即可保存退出vim
Ⅵ.删除文本
1.普通模式下删除vim文本信息
进入普通模式,使用下列命令可以进行文本快速删除:
除此之外,你还可以在命令之前加上数字,表示一次删除多行,如:
2dd表示一次删除2行
内容二:Linux下C语言编程基础
登录Linux后,我们就可以在#或$符后面去输入命令,有的时候命令后面还会跟着
如ls命令,
GCC的使用
一、GCC编译器
二、使用GCC的四个步骤
预处理:gcc–Ehello.c–ohello.i;gcc–E调用cpp
编译:gcc–Shello.i–ohello.s;gcc–S调用ccl
汇编:gcc–chello.s–ohello.o;gcc-c调用as
链接:gcchello.o–ohello;gcc-o调用ld三、GCC支持的文件类型
建议使用CGDB,比GDB好用,熟悉VC的调试方式,可以使用DDD。注意使用GCC编译时要加“-g”参数。参考gdb参考卡GDB最基本的命令有
gdbprogramm(启动GDB)
b设断点(要会设4种断点:行断点、函数断点、条件断点、临时断点)
run开始运行程序
bt打印函数调用堆栈
p查看变量值
c从当前断点继续运行到下一个断点
n单步运行
s单步运行
quit退出GDB
问题:GDB的n(next)命令让GDB执行下一行,然后暂停。s(step)命令的作用与此类似,只是在函数调用时step命令会进入函数,那么实际使用中应该优先选用哪个?为什么?
其他几个我认为应该掌握的调试命令有:
display跟踪变量值的改变
until跳出循环
finish跳出函数
help帮助
gdb常用代码指令
$gdb
这样可以和gdb进行交互了。
*启动gdb,并且分屏显示源代码:
$gdb-tui
这样,使用了'-tui'选项,启动可以直接将屏幕分成两个部分,上面显示源代码,比用list方便多了。这时候使用上下方向键可以查看源代码,想要命令行使用上下键就用[Ctrl]n和[Ctrl]p.
*启动gdb调试指定程序app:
$gdbapp
这样就在启动gdb之后直接载入了app可执行程序,需要注意的是,载入的app程序必须在编译的时候有gdb调试选项,例如'gcc-gappapp.c',注意,如果修改了程序的源代码,但是没有编译,那么在gdb中显示的会是改动后的源代码,但是运行的是改动前的程序,这样会导致跟踪错乱的。
*启动程序之后,再用gdb调试:
$gdb
这里,是程序的可执行文件名,是要调试程序的PID.如果你的程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID。gdb会自动attach上去,并调试他。program应该在PATH环境变量中搜索得到。
*启动程序之后,再启动gdb调试:
$gdb
这里,程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID,是要调试程序的PID.这样gdb就附加到程序上了,但是现在还没法查看源代码,用file命令指明可执行文件就可以显示源代码了。
**启动gdb之后的交互命令:
交互命令支持[Tab]补全。
*显示帮助信息:
(gdb)help
*载入指定的程序:
(gdb)fileapp
这样在gdb中载入想要调试的可执行程序app。如果刚开始运行gdb而不是用gdbapp启动的话可以这样载入app程序,当然编译app的时候要加入-g调试选项。
*重新运行调试的程序:
(gdb)run
要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符(<和>)和shell通配符(*、?、[、])在内。
参考资料:一、百度百科
二、vaqeteart的博客—常用gdb代码大全
make工程管理器
makefile是make读入的唯一配置文件
在一个makefile中通常包含如下内容:
需要由make工具创建的目标体(target),通常是目标文件或可执行文件。
要创建的目标体所依赖的文件(dependency_file);
创建每个目标体时需要运行的命令(command),这一行必须以制表符(Tab键)开头。
格式:
target:dependency_files
commandmake的命令行
作业
将实验楼中的代码中除了main函数外的代码制作成一个静态库math.a和一个共享库math.so;
编写makefile,让代码编译,上述静态库和共享库的使用自动化
建立函数静态库cal1.a:
将静态库cal1.a链接到main.o中并生成执行文件cal1并执行
建立函数动态库cal2.so
将静态库cal2.a链接到main.o中并生成执行文件cal2并执行
建立静态库的makefile文件
运行make管理器生成cal3执行文件并执行
建立动态库makefile文件
运行make管理器生成cal4执行文件并执行
遇到的问题
设置断点的问题上还不够明白
编译时刚开始总不成功,后来发现是没有head.h,补上后就没问题了
1.环境登录
无需密码自动登录,系统用户名shiyanlou,密码shiyanlou若不小心登出后,直接刷新页面即可
2.环境使用
完成实验后可以点击桌面上方的“实验截图”保存并分享实验结果到微博,向好友展示自己的学习进度。实验楼提供后台系统截图,可以真实有效证明您已经完成了实验。实验记录页面可以在“我的主页”中查看,其中含有每次实验的截图及笔记,以及每次实验的有效学习时间(指的是在实验桌面内操作的时间,如果没有操作,系统会记录为发呆时间)。这些都是您学习的真实性证明。
3.课程来源
内容一:vim编辑器的使用
1.vim编辑器的三种模式
Ⅰ正常模式:(按Esc或Ctrl+[进入)左下角显示文件名或为空
Ⅱ插入模式:(按i键进入)左下角显示--INSERT--
Ⅲ可视模式:左下角显示—VISUAL
2、vim的一些基本操作
Ⅰ、游标移动:
在进入vim后,按下i键进入插入模式。在该模式下您可以输入文本信息,下面请输入如下三行信息:
12345678
abcdefghijk
shiyanlou.com
按Esc进入普通模式,在该模式下使用方向键或者h,j,k,l键可以移动游标。
按键 | 说明 |
h | 左 |
l | 右(小写L) |
j | 下 |
k | 上 |
w | 移动到下一个单词 |
b | 移动到上一个单词 |
Ⅱ.插入模式
在普通模式下使用下面的键将进入插入模式,并可以从相应的位置开始输入
命令 | 说明 |
i | 在当前光标处进行编辑 |
I | 在行首插入 |
A | 在行末插入 |
a | 在光标后插入编辑 |
o | 在当前行后插入一个新行 |
O | 在当前行前插入一个新行 |
cw | 替换从光标所在位置后到一个单词结尾的字符 |
Ⅲ.保存文档
命令行模式下保存文档:
保存文档从普通模式输入:进入命令行模式,输入w回车,保存文档。输入:w文件名可以将文档另存为其他文件名或存到其它路径下
Ⅳ.退出vim
命令行模式下退出vim:
从普通模式输入:进入命令行模式,输入wq回车,保存并退出编辑
以下为其它几种退出方式:
命令 | 说明 |
:q! | 强制退出,不保存 |
:q | 退出 |
:wq! | 强制保存并退出 |
:w<文件路径> | 另存为 |
:saveas文件路径 | 另存为 |
:x | 保存并退出 |
:wq | 保存并退出 |
普通模式下输入Shift+zz即可保存退出vim
Ⅵ.删除文本
1.普通模式下删除vim文本信息
进入普通模式,使用下列命令可以进行文本快速删除:
命令 | 说明 |
x | 删除游标所在的字符 |
X | 删除游标所在前一个字符 |
Delete | 同x |
dd | 删除整行 |
dw | 删除一个单词(不适用中文) |
d$或D | 删除至行尾 |
d^ | 删除至行首 |
dG | 删除到文档结尾处 |
d1G | 删至文档首部 |
2dd表示一次删除2行
内容二:Linux下C语言编程基础
实验目的
1.熟悉Linux系统下的开发环境
2.熟悉vi的基本操作
3.熟悉gcc编译器的基本原理
4.熟练使用gcc编译器的常用选项
5.熟练使用gdb调试技术
6.熟悉makefile基本原理及语法规范
7.掌握静态库和动态库的生成
1Linux命令
如果使用GUI,Linux和Windows没有什么区别。Linux学习应用的一个特点是通过命令行进行使用。
登录Linux后,我们就可以在#或$符后面去输入命令,有的时候命令后面还会跟着
选项(options)或
参数(arguments)。即Linux中命令格式为:
command[options][arguments
]//中括号代表是可选的,即有些命令不需要选项也不需要参数
选项是调整命令执行行为的开关,
选项不同决定了命令的显示结果不同。
参数是指命令的作用对象。
如ls命令,
ls或
ls.显示是当前目录的内容,这里“.”就是参数,表示当前目录,是缺省的可以省略。我们可以用
ls-a.显示当前目录中的所有内容,包括隐藏文件和目录。其中“-a”就是选项,改变了显示的内容,如下图所示:
GCC的使用
一、GCC编译器
gcc支持编译的一些源文件后缀名
后缀 | 源文件 |
.c | C语言源文件 |
.C.cc.cxx | C++源文件 |
.m | Object-C源文件 |
.i | 经过预处理后的C源文件 |
.ii | 经过预处理后的C++源文件 |
.s.S | 汇编语言源文件 |
.h | 预处理文件(头文件) |
.o | 目标文件 |
.a | 存档文件 |
预处理:gcc–Ehello.c–ohello.i;gcc–E调用cpp
编译:gcc–Shello.i–ohello.s;gcc–S调用ccl
汇编:gcc–chello.s–ohello.o;gcc-c调用as
链接:gcchello.o–ohello;gcc-o调用ld三、GCC支持的文件类型
GDB的使用
建议使用CGDB,比GDB好用,熟悉VC的调试方式,可以使用DDD。注意使用GCC编译时要加“-g”参数。参考
gdbprogramm(启动GDB)
b设断点(要会设4种断点:行断点、函数断点、条件断点、临时断点)
run开始运行程序
bt打印函数调用堆栈
p查看变量值
c从当前断点继续运行到下一个断点
n单步运行
s单步运行
quit退出GDB
问题:GDB的n(next)命令让GDB执行下一行,然后暂停。s(step)命令的作用与此类似,只是在函数调用时step命令会进入函数,那么实际使用中应该优先选用哪个?为什么?
其他几个我认为应该掌握的调试命令有:
display跟踪变量值的改变
until跳出循环
finish跳出函数
help帮助
gdb常用代码指令
$gdb
这样可以和gdb进行交互了。
*启动gdb,并且分屏显示源代码:
$gdb-tui
这样,使用了'-tui'选项,启动可以直接将屏幕分成两个部分,上面显示源代码,比用list方便多了。这时候使用上下方向键可以查看源代码,想要命令行使用上下键就用[Ctrl]n和[Ctrl]p.
*启动gdb调试指定程序app:
$gdbapp
这样就在启动gdb之后直接载入了app可执行程序,需要注意的是,载入的app程序必须在编译的时候有gdb调试选项,例如'gcc-gappapp.c',注意,如果修改了程序的源代码,但是没有编译,那么在gdb中显示的会是改动后的源代码,但是运行的是改动前的程序,这样会导致跟踪错乱的。
*启动程序之后,再用gdb调试:
$gdb
这里,是程序的可执行文件名,是要调试程序的PID.如果你的程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID。gdb会自动attach上去,并调试他。program应该在PATH环境变量中搜索得到。
*启动程序之后,再启动gdb调试:
$gdb
这里,程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID,是要调试程序的PID.这样gdb就附加到程序上了,但是现在还没法查看源代码,用file命令指明可执行文件就可以显示源代码了。
**启动gdb之后的交互命令:
交互命令支持[Tab]补全。
*显示帮助信息:
(gdb)help
*载入指定的程序:
(gdb)fileapp
这样在gdb中载入想要调试的可执行程序app。如果刚开始运行gdb而不是用gdbapp启动的话可以这样载入app程序,当然编译app的时候要加入-g调试选项。
*重新运行调试的程序:
(gdb)run
要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符(<和>)和shell通配符(*、?、[、])在内。
参考资料:一、百度百科
二、vaqeteart的博客—常用gdb代码大全
make工程管理器
makefile是make读入的唯一配置文件
在一个makefile中通常包含如下内容:
需要由make工具创建的目标体(target),通常是目标文件或可执行文件。
要创建的目标体所依赖的文件(dependency_file);
创建每个目标体时需要运行的命令(command),这一行必须以制表符(Tab键)开头。
格式:
target:dependency_files
commandmake的命令行
命令格式 | 含义 |
-Cdir | 读入指定目录下的makefile |
-ffile | 读入当前目录下的file文件作为makefile |
-i | 忽略所有的命令执行错误 |
-Idir | 指定被包含的makefile所有目录 |
-n | 只打印要执行的命令,但不执行这些命令 |
-p | 显示make变量数据库和隐含规则 |
-s | 在执行命令时不显示命令 |
-w | 如果make在执行过程中改变目录,则打印当前目录名 |
将实验楼中的代码中除了main函数外的代码制作成一个静态库math.a和一个共享库math.so;
编写makefile,让代码编译,上述静态库和共享库的使用自动化
建立函数静态库cal1.a:
将静态库cal1.a链接到main.o中并生成执行文件cal1并执行
建立函数动态库cal2.so
将静态库cal2.a链接到main.o中并生成执行文件cal2并执行
建立静态库的makefile文件
运行make管理器生成cal3执行文件并执行
建立动态库makefile文件
运行make管理器生成cal4执行文件并执行
遇到的问题
设置断点的问题上还不够明白
编译时刚开始总不成功,后来发现是没有head.h,补上后就没问题了
相关文章推荐
- 19、linux软件管理之简述
- linux定时任务的设置
- linux系统中设备文件命名的规则
- tty和pts解析
- 0-9 Linux远程登录
- Vmware安装CentOS
- linux配置samba服务器和windows进行数据交互
- 0-7 文本编辑器的使用
- linux 内核编译
- linux中特效地(显示颜色、粗体、下划线等效果)将文本输出到终端
- Linux教程之Linux用户和用户组管理
- Centos 搭建java运行环境
- Linux学习笔记——进程查看及管理
- SNMP在linux下的移植
- CentOS 6.6下安装OpenOffice4.0
- Linux_屏蔽360、scanv、QQ管家等IP扫描
- Linux系统--Linux的Grub应用
- VMware的Centos 安装telnet
- linux常用命令(57):date命令
- 至Linux-2.6.32编译内核ipset-6.23坎坷的经历