一、linux命令
关于前后台任务切换:
bg % + 任务号 fg % + 任务号 
批量结束进程: pkill + 进程名
 监测系统运行状态: top  vim常用配置:  将文件打包或解包: tar + 参数 + 文件名   解压并拆包 
将文件压缩或解压
压缩: gzip + 包名 解压: gzip -d + 包名 
二、gcc
main.c  预处理   gcc -E main.c -o main.i :生成预编译文件,进行头文件引入以及宏替换,同时清理注释
main.i  编译
编译过程就是把预处理完的文件进行一系列词法分析、语法分析、语义分析及优化后生产相应的汇编文件,这个给过程往往是我们所说的整个程序构建的核心部分,也是最复杂的部分之一。
gcc -S main.i -o main.s :编译文件,生成汇编代码  汇编 
gcc -c main.s -o main.o :汇编,生成机器指令  链接
此时生成的main.o 只占可执行程序main 的一部分,还需要再链接别的库
gcc main.o -o main :链接其他文件,生成最后的可执行文件 
三、使用makefile文件进行管理
main.c  foo.h 
安装make: apt install make
编写makefile文件 
make执行  清理文件  修改add.c 后进行make 
四、使用gdb调试程序

l (list) :显示代码b + 行号/函数名 (breakpoint):在指定位置加断点delete + 断电号 :删除指定断点enable + 断点号 :将断点设定为无效的,不加断点号,将所有断点设置为无效enable + 断点号 :将断点设定为有效的,不加断点号,将所有断点设置为有效r (run):运行程序n (next):下一步c (continue):直接执行到下一个断点s :进入将要被调用的函数中执行finish :跳出当前函数p + 变量名 (print):打印变量值回车 :重复上一行命令q :退出调试,中止进程info break :显示断点信息bt :显示函数调用栈
|