Linux 基本指令
- ls :显示当前文件下的目录
- -alt :查看当前目录下的所有目录
- cd :到达指定目录
- pwd :查看当前目录的具体位置
- mkdir :创建一个目录
- cp :拷贝一个文件或目录拷贝到具体位置
- rm :删除一个文件或目录
- rf :循环层层删除目录及其子目录
- f :强制删除
- sudo :切换当前用户的管理权限
- pkg-config :链接库
- cat :查看文件内容
vim基本指令
- vim filename :创建文件,并进入编辑
- I :切换到编辑模式
- esc : 命令模式
- :w :保存
- :q :退出
- :wq :保存并退出
- cat filename :查看文件内容
- yy :拷贝一行
- yw :拷贝一个词
- p : 粘贴
- dd :删除一行
- dw :删除一个词
- h : 光标向左移
- j :光标向下移
- k :光标向上移
- l :光标向右移
- /关键字 :查找关键字
- %s/关键字/替换字/gc :查找与替换
- split/vsplit :分窗口
- ww/w[hjkl] :窗口间跳转
执行C程序相关指令
- vi fileName.c :创建C文件并进入编译环境
- clang -g -o fileName fileName.c :编译程序
- ./fileName 执行程序
- clang -g -c fileName.c :编译文件
- libtool -static -o lib[库名].a add.o(要生成的文件) 编译一个静态库
- pkg-config --libs libavformat(库名) :查找库所在路径
C 语言编译指令
gcc/clang -g -O2 -o fileName fileName.c -I... -L... -l
- -g :输出文件中的调试信息
- -O:对输出文件做指令优化 2:优化级别,第二个级别
- -o :输出文件的名称
- -I :指定头文件 【-I .】:表示头文件在当前路径下
- -L :指定库文件位置【-L .】:表示当前库文件在当前路径下
- -l :指定使用哪个库
- -c :编译
文件操作
- FILE *file; :文件类型
- FILE *fopen(path, mode); :打开文件
- fclose(FIFE *); :关闭文件
- fwrite :文件数据写入
- fread :读数据
- rewind (FIFE *):将游标放在文件的开头
编译过程
预编译 —> 编译 -----> 链接,动态链接/静态链接
调试器原理
编译输出带调试信息的程序
调试信息包含:指令地址、对应源代码及行号
指令完成后,回调
gdb / lldb
- lldb fileName :将程序加载到调试器
- b 设置断点
- break list 查看断点
- r 运行程序
- n 单步执行
- s 跳入函数
- finish 跳出函数
- p 打印内容
- quite 退出程序