
基础开发工具
1-1 什么是软件包
概念
Windows 下软件大多是exe安装程序;Linux 软件包 = 将程序二进制文件、配置文件、手册、依赖信息打包成的归档文件。 程序开发完成后不能直接分发零散文件,打包后方便统一安装、卸载、依赖检测。
两大分类
- 格式:.tar.gz/.tar.bz2
- 特点:提供 C/C++ 等源代码,下载后需要./configure && make && make install编译
- 优点:可自定义编译参数;缺点:编译耗时,需要编译环境,手动处理依赖
- RedHat/CentOS 系列:rpm 包(.rpm)
- Ubuntu/Debian 系列:deb 包(.deb)
rpm 包命名示例
tree-1.7.0-11.el8.x86_64.rpm
- tree:软件名
- 1.7.0:主版本。次版本
- 11:发布号
- el8:适配 CentOS8/RHEL8
- x86_64:64 位 CPU 架构
💡 yum 底层本质就是自动下载、安装 rpm 包,并且自动解决依赖关系。
1-2 Linux 软件生态

1. 发行版分裂带来的包体系差异
Linux 没有统一标准,不同系列使用独立包格式与工具:
| CentOS/RHEL/Fedora | rpm | rpm | yum / dnf |
| Ubuntu/Debian | deb | dpkg | apt / apt-get |
本文重点:CentOS7 使用 yum;CentOS8+/RockyLinux 默认使用 dnf(dnf 兼容 yum 命令)
2. 软件仓库(Repository)
官方 / 第三方服务器集中存放大量 rpm 软件包 + 包索引,称为软件仓库(源)。
yum 工作流程:联网访问仓库索引 → 分析依赖 → 批量下载 rpm 包 → 安装。
3. 软件来源三种途径

4. 依赖地狱问题

Linux 软件普遍存在依赖:A 软件运行需要 B 库,B 库又依赖 C 库。
手动rpm安装需要人工逐层下载依赖;yum/apt 核心价值:自动递归处理依赖。
1-3 yum 具体操作
⚠️前置条件:服务器可以访问外网;CentOS 执行 yum 多数命令需要 root 权限(加 sudo 或切换 root)
1-3-1 查看软件包
# 1.列出仓库所有可用软件包
yum list
2.搜索指定软件(模糊匹配)
yum search tree
3.查看软件详细信息(版本、功能、依赖)
yum info tree
4.查询:哪个软件包提供某个命令
yum provides ifconfig
5.查看本机已经安装的软件
yum list installed
1-3-2 安装软件
# 基础安装
yum install tree
自动确认安装(脚本常用,不需要手动输入y)
yum install -y tree
同时安装多个软件
yum install -y gcc gcc-c++ make vim
安装软件组(开发工具合集!开发重点)
yum groupinstall "Development Tools"
💡Development Tools包含 gcc、g++、make、gdb 等全套 LinuxC/C++ 开发工具。
1-3-3 卸载软件
# 卸载软件
yum remove tree
自动确认卸载
yum remove -y tree
⚠️注意:yum remove 会同时移除依赖它的包,不要随意卸载系统基础组件!
1-3-4 注意事项
yum update
该命令会升级本机所有已安装软件到最新版本,生产环境不建议随意执行,可能引发兼容性故障。 只想升级单个软件:yum update tree
- rpm:本地工具,操作本机 rpm 文件,不会自动下载依赖
- yum:上层工具,联网,自动处理依赖
yum clean all # 清空本地缓存的包和索引
yum makecache # 重新生成软件源缓存
1-4 安装源(yum 源)
1. yum 源配置文件位置
CentOS7:/etc/yum.repos.d/ 目录内以.repo结尾的文件就是源配置。
2. 为什么要换源?
系统默认官方源服务器在海外,下载速度极慢;更换国内镜像源(阿里云、网易、清华源)大幅提升下载速度。
3. CentOS7 更换阿里云 yum 源演示
# 1.备份原有官方源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2.下载阿里云repo配置文件
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
3.安装epel拓展源(大量额外软件)
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
4.重建缓存
yum clean all && yum makecache
4. 源分类
- Base 源:系统基础软件
- Epel 源:拓展第三方软件(必备开发源)
- 本地源:无外网服务器,挂载系统光盘制作离线 yum 源
常见问题
- Could not retrieve mirrorlist:网络不通 / 源地址失效
- 找不到某个软件:没有安装 epel 源
- CentOS7 停止维护后,官方源失效,需要切换阿里云 vault 归档源
Vim 完整详解

1. Vim 三大核心模式(重中之重)
Vim 是模态编辑器,不同模式按键作用完全不同,新手最大难点就是区分模式。
| 普通模式 (Normal) | 默认模式,用于移动光标、复制删除、执行操作 | 打开文件默认进入;任意模式按 Esc |
i/a/o → 插入模式; : → 底行模式; v/V/Ctrl-v → 可视模式 |
| 插入模式 (Insert) | 输入文本、编写代码 | 普通模式按下 i/a/o | 按下 Esc 返回普通模式 |
| 底行模式 (Command) | 保存、退出、查找、替换、设置参数 | 普通模式输入 : | 执行命令完成 或 Esc |
补充:可视模式(Visual),属于衍生模式,用来选中一段文本批量操作。
⚠️新手常见错误:打开 Vim 直接打字乱码!因为默认处于普通模式,按键不是输入字符,而是命令。
2. Vim 启动、保存与退出
启动命令
vim # 启动vim,不打开文件
vim test.c # 打开/新建test.c
vim test.c +15 # 打开文件,直接跳转到第15行
底行模式基础保存退出(普通模式输入 :)
:w 保存文件(write)
:w new.c 另存为新文件
:q 正常退出(文件未修改才可退出)
:wq 保存并退出
😡 等价于:wq(文件无修改则不写入,更推荐)
:q! 强制退出,放弃所有修改
:wq! 强制保存退出(只读文件需要权限时使用)
3. 普通模式(Normal)高频指令
所有命令必须先按 Esc 确保处于普通模式。
3.1 光标移动
基础移动
h 向左
j 向下
k 向上
l 向右
单词跳转(写代码高频)
w 跳到下一个单词开头
b 跳到上一个单词开头
e 跳到当前单词末尾
行内快速跳转
0 跳转到当前行最开头
$=4 跳转到当前行末尾
^=6 跳转到当前行第一个非空白字符
文件全局跳转
gg 跳转到文件第一行
G 跳转到文件最后一行
nG / :n 跳转到第n行,例如 10G 直接到第10行
3.2 删除操作
x 删除光标当前单个字符
X 删除光标左边字符
dd 删除**整行**
ndd 删除n行,例如5dd 删除光标往下5行
dw 删除光标到当前单词结尾
d0 删除光标到行首
d$ 删除光标到行尾
3.3 复制、粘贴、撤销
yy 复制当前一整行
nyy 复制n行,3yy复制3行
yw 复制一个单词
p 粘贴到光标**下一行/后方**
P 粘贴到光标**上一行/前方**
u 撤销上一次操作
Ctrl+r 反撤销(恢复被撤销内容)
3.4 修改、跳转辅助
cw 删除当前单词并直接进入插入模式(改单词神器)
cc 清空当前行,进入插入模式
r 替换光标处单个字符(无需进入插入模式)
R 连续覆盖替换模式,Esc退出
4. 插入模式(Insert)进入方式
普通模式下执行下列按键进入编辑:
i 在**光标前方**插入
a 在**光标后方**插入
I 当前行**行首**开始插入
A 当前行**行尾**开始插入
o 在光标**下方新开一行**插入
O 在光标**上方新开一行**插入
开发最常用:i、A、o。编辑完成务必按Esc回到普通模式。
5. 底行命令模式(:触发)拓展指令
:set nu 显示行号
:set nonu 关闭行号
:set ts=4 设置Tab占4个空格(C/C++开发常用)
:set expandtab 将Tab自动转换成空格
字符串查找
:/keyword 向下搜索关键词keyword
?keyword 向上搜索关键词
n 跳到下一个匹配结果
N 跳到上一个匹配结果
全局字符串替换
:%s/oldstr/newstr/g 全文替换oldstr为newstr
:%s/oldstr/newstr/gc 全文替换,每次确认(c=confirm)
:! ls 在vim内临时执行shell命令
6. 可视模式 Visual(选区操作)
普通模式按下按键进入选区模式,选中文本后配合 d 删除、y 复制:
v 字符可视模式:自由选中字符
V 行可视模式:直接选中整行
Ctrl+v 块可视模式:矩形选区(批量注释神器!)
👉 批量注释示例:
7. 进阶实用功能
7.1 多文件与分屏
# 启动时分屏打开两个文件
vim -O test1.c test2.c # 垂直分屏
vim -o test1.c test2.c # 水平分屏
vim 内部底行命令
:vsplit 垂直拆分窗口
:split 水平拆分窗口
Ctrl+w w 在多个窗口之间切换光标
Ctrl+w q 关闭当前窗口
7.2 代码跳转(大型项目必备 ctags/cscope)
安装:yum install ctags 项目根目录执行:ctags -R 生成 tags 索引文件,vim 内:
Ctrl+] 跳转到函数/变量定义处
Ctrl+o 跳回原来位置
8. Vim 配置文件~/.vimrc
用户目录下 .vimrc 文件,每次启动 vim 自动加载配置,不需要每次手动输入 set 命令。 示例开发常用配置,直接写入 ~/.vimrc
" 开启语法高亮
syntax on
" 显示行号
set nu
" Tab宽度4
set tabstop=4
set shiftwidth=4
" Tab转为空格
set expandtab
" 开启自动缩进
set autoindent
" 搜索忽略大小写
set ignorecase
" 光标所在行高亮
set cursorline
配置生效方式:保存文件后重新打开 vim,或者 vim 内执行 :source ~/.vimrc

e>







