一、yum/apt软件包管理器
①【查看软件包】
yum list | grep package_name
apt search package_name
②【安装/卸载】
sudo yum install -y [软件名]
sudo apt install -y [软件名]
sudo yum remove package
sudo apt remove package
③【镜像源】
注意:操作需网络畅通,通过 ping www.baidu.com
验证。
二、Vim编辑器
①【三个模式间的切换】
操作 | 功能 | 模式切换 |
---|
i | 光标前插入 | 命令→插入 |
a | 光标后插入 | 命令→插入 |
o | 下方新建行插入 | 命令→插入 |
Esc | 返回命令模式 | 插入/底行→命令 |
Shift + ; | 进入底行模式(: ) | 命令→底行 |
②【命令模式的命令】
1. 光标移动
命令 | 功能 |
---|
h/j/k/l | 左/下/上/右移动 |
gg | 跳至文件首行 |
G (Shift+g) | 跳至文件末尾 |
10G | 跳至第10行 |
$ | 跳至行尾 |
^ | 跳至行首 |
w | 跳至下一单词开头 |
b | 跳至上一单词开头 |
2. 文本编辑
命令 | 功能 |
---|
yy | 复制当前行 |
3yy | 复制3行 |
p | 粘贴 |
3p | 粘贴3次 |
dd | 删除当前行 |
3dd | 删除3行 |
x | 删除光标处字符 |
X | 删除光标前字符 |
u | 撤销操作 |
Ctrl + r | 重做操作(恢复撤销) |
~ (Shift+`) | 大小写转换 |
3. 高级功能
命令 | 功能 |
---|
r | 替换单个字符(如 ra 替换为a) |
R | 进入替换模式(连续替换) |
Shift + 3 | 高亮查找光标处单词 |
n | 跳至下一个匹配项 |
③【底行模式的命令】
命令 | 功能 |
---|
:w | 保存文件 |
:q | 退出 |
:wq | 保存并退出 |
:q! | 强制退出(不保存) |
:set nu | 显示行号 |
:10 | 跳至第10行 |
:/_keyword | 向下搜索关键词 |
:?_keyword | 向上搜索关键词 |
:vs _filename | 垂直分屏打开文件 |
:!ls | 不退出Vim执行Shell命令 |
④【多文件分屏命令】
操作 | 功能 |
---|
:vs file.c | 垂直分屏编辑文件 |
Ctrl + ww | 切换分屏窗口 |
:sp file.c | 水平分屏(需手动配置支持) |
⑤【批量注释命令技巧】
-
添加注释:
Ctrl + v
进入块选择模式- 方向键选择行范围
Shift + i
输入 //
→ Esc
应用
-
删除注释:
⑥【Vim配置优化建议】
在 ~/.vimrc
中添加(修改配置文件):
set nu " 显示行号
set tabstop=4 " Tab缩进4空格
syntax on " 语法高亮
colorscheme desert " 配色方案(需安装)
提示:
- 使用
vimtutor
命令练习基础操作 - 插件推荐:
TagList
(代码导航)、WinManager
(分屏管理) - 异常退出时用
vim -r
恢复临时文件
三、gcc/g++编译器
①【GCC/G++ 编译四阶段】
阶段 | 命令选项 | 核心功能 | 生成文件 | 操作示例 |
---|
预处理 | -E | 头文件展开/宏替换/去注释 | .i | gcc -E test.c -o test.i |
编译 | -S | 生成汇编代码 | .s | gcc -S test.i -o test.s |
汇编 | -c | 生成二进制目标文件 | .o | gcc -c test.s -o test.o |
链接 | 无 | 合并符号表/链接库 | 可执行文件 | gcc test.o -o app |
记忆技巧:
- 选项顺序
-E
→ -S
→ -c
对应键盘 ESc 键 - 文件后缀
.i
→ .s
→ .o
组成 iso
②【编译选项】
选项 | 功能 | 示例 |
---|
-o 目标文件 | 指定输出文件名 | gcc test.c -o myapp |
-static | 强制静态链接 | gcc test.c -static -o app |
-g | 添加调试信息(GDB 必备) | gcc -g test.c -o debug_app |
-O2 | 优化级别(0无优化,3最高) | gcc -O2 test.c -o fast_app |
-l库名 | 链接指定库(如数学库 -lm ) | gcc calc.c -lm -o calc |
③【静动态库】
1. 库文件位置
类型 | 头文件位置 | 库文件位置 |
---|
标准库 | /usr/include | /lib 或 /usr/lib |
第三方库 | /usr/local/include | /usr/local/lib |
2. 动态库(共享库)
- 特征:
- 文件名:
libXXX.so
(如 libc.so.6
) - 运行时加载,多程序共享内存中的同一份代码
- 优点:
- 节省磁盘/内存空间(如C标准库仅需1份)
- 更新无需重新编译程序(替换
.so
文件即可)
- 缺点:
- 依赖环境(缺失库文件导致程序崩溃)
- 版本冲突风险("DLL地狱"问题)
- 检查命令:
ldd app
file app
3. 静态库
4. 动静态库对比
特性 | 动态库 | 静态库 |
---|
文件后缀 | .so | .a |
链接时机 | 运行时 | 编译时 |
磁盘占用 | 小(共享) | 大(独立嵌入) |
内存占用 | 低(多程序共享) | 高(每程序独立) |
加载速度 | 慢(需链接) | 快(直接执行) |
兼容性问题 | 可能(版本冲突) | 无 |
适用场景 | 系统级程序/大型软件 | 独立工具/嵌入式系统 |
四、Makefile自动化构建
①【Makefile 核心规则】
目标(target): 依赖(prerequiries)...
<Tab>命令(command) # 必须用 Tab 缩进!
元素 | 说明 | 示例 |
---|
目标 | 要生成的文件或动作名 | app , clean |
依赖 | 生成目标所需的输入文件 | main.o , utils.c |
命令 | 执行动作的 Shell 命令 | gcc -c main.c |
关键特性:
- 基于时间戳的智能编译(仅重新编译修改过的文件)
- 使用
touch
命令可强制触发重新编译
②【变量系统详解】
变量类型 | 语法 | 特性 |
---|
延时变量 | VAR = value | 使用时才展开 |
条件赋值 | VAR ?= value | 仅首次定义有效 |
立即变量 | VAR := value | 定义时立即展开 |
追加变量 | VAR += value | 继承原变量类型 |
示例:
CC := gcc # 立即变量
CFLAGS = -Wall -O2 # 延时变量
CFLAGS += -Iinclude # 追加为延时变量
③【通配符与自动变量】
符号 | 功能 | 示例 |
---|
% | 模式匹配(万能通配) | %.o: %.c |
$@ | 当前目标名 | gcc -c $< -o $@ |
$< | 第一个依赖文件 | gcc -c $< -o $@ |
$^ | 所有依赖文件 | gcc $^ -o $@ |
实战示例:
# 编译所有 .c 文件为 .o
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
# 链接可执行文件
app: main.o utils.o
$(CC) $^ -o $@
④【假想目标(.PHONY)】
解决目标名与文件冲突问题:
.PHONY: clean # 声明为假想目标
clean:
rm -f *.o app
即使存在名为 clean
的文件,make clean
仍能执行
⑤【核心函数库】
函数 | 功能 | 示例 |
---|
$(wildcard *.c) | 获取文件列表 | SRC = $(wildcard src/*.c) |
$(patsubst %.c,%.o,$(SRC)) | 模式替换 | OBJ = $(patsubst %.c,%.o,$(SRC)) |
$(foreach d,dirs,$d/built-in.o) | 遍历生成路径 | SUBDIR_OBJ = $(foreach d,$(SUBDIRS),$d/built-in.o) |
$(filter %.c,$(FILES)) | 过滤匹配项 | C_FILES = $(filter %.c,$(FILES)) |
$(filter-out %.h,$(FILES)) | 排除匹配项 | NO_HEADERS = $(filter-out %.h,$(FILES)) |
五、Git版本控制器
①【本地操作四步曲~】
命令 | 作用 | 原理 |
---|
git add | 添加改动到暂存区 | 创建 Blob 并更新索引文件 |
git commit | 提交到本地仓库 | 生成 Commit 对象链接历史 |
git log | 查看提交历史 | 遍历 Commit 对象链表 |
git status | 检查工作区/暂存区状态 | 对比工作区、暂存区和 HEAD 差异 |
②【远程协作三剑客~】
命令 | 作用 | 分解动作 |
---|
git clone | 克隆远程仓库 | 下载所有对象 + 创建本地分支 |
git pull | 拉取远程更新 | git fetch + git merge |
git push | 推送本地提交 | 上传本地对象 + 更新远程引用 |
六、gdb/cgdb调试器
①【安装与启动】
1. 安装(Debian/Ubuntu)
sudo yum install cgdb
sudo apt install cgdb
2. 启动调试
cgdb ./test.exe
启动后界面分为两部分:

②【核心操作速查表】
1. 模式切换
按键 | 功能 | 说明 |
---|
Esc | 进入代码窗口 | 可浏览/操作代码 |
i | 进入命令窗口 | 执行 GDB 命令 |
2. 代码窗口操作(Esc 模式)
快捷键 | 功能 |
---|
空格键 | 设置/取消断点(行号变红) |
j / k | 向下/向上移动光标 |
o | 打开其他文件 |
/ | 向下搜索代码 |
? | 向上搜索代码 |
n | 跳转到下一个搜索结果 |
+ | 扩大代码窗口 |
- | 缩小代码窗口 |
gg | 跳转到文件开头 |
G | 跳转到文件末尾 |
Ctrl + b | 向上翻页 |
Ctrl + f | 向下翻页 |
3. 命令窗口操作(i 模式)
b main # 在 main 函数设断点
r # 运行程序
s # 单步进入(Step into)
n # 单步跳过(Step over)
p variable # 打印变量值