把Linux下面的编程相关的工具熟悉了一下,主要有VI,Emacs,GCC,GDB,Makefile,autotools。初涉Linux,上述工具其实任取一个都不是一时半会能整精熟的,但是往往每一种工具都有一些使用频率高达70%的命令。练习了一晚,对常见用法做个小结,巩固记忆。
一,VI:常用的源代码编辑命令。
vi hello.c 在当前目录下生成hello.c,并进入命令模式
在命令模式下,不能输入,可以完成删除,复制,粘贴等操作。
1)按i 或a或o进入插入模式,可以键入字符,一般用i; a与o稍有不同。
2)键dd删除光标所在行
3)数字(n)+dd删除光标开始向下n行
4)数字(n)+yy复制光标开始向下n行
5) p 粘贴到光标处
6)u 撤消上次操作
在插入模式下,按ESC进入底行模式,主要进行存盘和退出之类的操作
1) :wq 最常用,保存并退出
2):w [filename] 保存或另存
3):q! 强退出VI
二 gcc常见用法:
1)gcc -E hello.c -o hello.i //预处理
2)gcc -S hello.i -o hello.s //编译成汇编语言文件
3)gcc -c hello.s -o hello.o //汇编成目标代码
4)gcc -c hello.c -o hello.o //直接生成目标代码文件<最常用>
5)gcc hello.c -o hello //直接生成可执行文件
6)gcc hello1.o hello2.o -o hello //链接生成可执行文件<最常用>
常见选项 :
1) -g 生成GDB调试信息,用GDB工具此项必有
2) -I dir 编译过程中包括指定目录下的头文件
3) -L dir 可能需要到dir处链接库文件
4) -llibrary 链接动态libaray库。通常不带库名的前三个字母(lib),如 -lhello表示链接libhello.so动态库
5)-static 链接静态库
6) -Wall 允许所有有用的警告
7) -O (-O2或-O3)进行代码优化(分三级) ,一般不用在调试阶段
三 Gdb调试常见用法
gdb hello 进入调试 。编译时一定带-g选项。
常用操作:
1) l (list) 查看源代码
2) b(breakpoint) n :在第n 行设置断点
3) r (run) 运行
4) n(next) 单步执行,不进入函数内部,相当于VC下F10
5) s(step) 单步执行,进入函数内部,相当于F11
6) c(contiue) 继续执行,从当前运行处到下一个断点或者程序结束。
7) p var :查看变量var的当前值
8)finish 运行到程序结束
跟断点相关的有用命令:
1)info b 查看所有设置的断点的相关信息
2) b function 在function函数所在行设置断点
3) b 行数或函数名 if 表达式 满足表达式时运行中断 <感觉比较重要>
4) delete [断点号] 删除
5)disable [断点号] 禁用
6)enable[断点号]激活
若不带断点号,则命令对所有断点号用效,断点号可用info b得到。
7)ignore [断点号] N 忽略断点N次,对循环一类的程序有用。
查看运行过程中变量的有用命令:
print 表达式或变量
display 表达式 ,听说能自动显示对应表达式内容 (还没试过)
修改变量命令:
set var=value 设置变量值。