
软件包与包管理器
在Linux中,软件可以通过源码编译安装,也可以使用已经构建好的软件包
源码安装能控制编译参数,但需要准备编译环境并手动处理依赖,软件包的话就是把程序、配置说明和版本信息整理成可安装的形式
可以把软件包理解为应用安装包,把YUM理解为负责搜索、下载、校验、安装和卸载这些安装包的工具
本文的YUM操作以CentOS7时代的传统RPM系环境为学习背景,CentOS Linux 7已经在2024年6月30日结束生命周期,当前的Fedora和RHEL8及后续版本主要使用DNF,部分系统仍保留yum兼容入口,执行命令前要先确认发行版版本和官方文档
YUM完成一次安装的过程
输入安装命令后,YUM会查询已配置的软件仓库,计算依赖关系,下载需要的软件包,最后写入系统并记录安装状态

这套流程省去了逐个寻找依赖包的工作,也让后续升级和卸载更容易管理
使用YUM前先确认网络
YUM通常需要连接软件仓库,网络不通时会出现仓库元数据下载失败、域名无法解析或连接超时等提示
可以先用ping做一次基础测试:
ping -c 4 www.baidu.com
这里的-c 4表示发送4次探测请求后自动停止,避免ping持续运行
ping只能反映域名解析和ICMP通信的情况,仓库是否可用还要通过yum repolist或实际的软件包查询确认
如果域名测试失败,可以继续检查网卡、IP地址、默认路由和DNS配置,网络正常但下载很慢时,再考虑切换到可信的软件镜像源
查询软件包
yum list可以列出仓库中可见的软件包,结果很多时可以通过管道交给grep筛选
yum list
yum list | grep lrzsz
竖线|会把前一条命令的输出交给后一条命令,第二条命令只保留包含lrzsz的结果
还可以查看软件包详情或根据关键词搜索:
yum info vim
yum search editor
列表中可能出现类似下面的内容:
lrzsz.x86_64 0.12.20-36.el7 base
这行信息可以拆开理解:
| 内容 | 含义 |
|---|---|
lrzsz |
软件包名称,安装后可使用rz和sz传输文件 |
x86_64 |
面向64位x86系统的架构标记 |
0.12.20-36 |
软件版本和打包修订版本 |
el7 |
面向Enterprise Linux 7系列环境构建 |
base |
提供该软件包的仓库名称 |
i686通常表示32位x86软件包,选择架构时要结合系统架构和程序需求
安装和卸载软件
安装lrzsz可以使用:
sudo yum install lrzsz
sudo会以管理员权限执行后面的命令,YUM显示即将安装的软件包和依赖后,需要输入y确认
已经确认安装目标时,也可以让YUM自动回答确认提示:
sudo yum install -y vim
这里的-y表示对安装过程中的确认问题自动回答yes,它会跳过人工确认,所以在服务器上执行前要先核对软件包名称和变更列表
卸载软件使用remove:
sudo yum remove lrzsz
卸载时也要阅读YUM给出的依赖变化,防止连带移除仍在使用的软件
Vim与Vi
Vi是经典的终端文本编辑器,Vim在兼容Vi操作方式的基础上增加了语法高亮、更多撤销能力和扩展配置等功能
安装完成后,可以直接打开或创建文件:
vim notes.txt
Vim刚开始容易让人困惑,是因为同一个按键在不同模式下有不同作用,先理解模式切换,后面的命令会清晰很多
Vim的三种常用模式

| 模式 | 主要用途 | 进入方式 |
|---|---|---|
| 正常模式 | 移动光标、删除、复制、粘贴和撤销 | 启动Vim后默认进入,或按Esc返回 |
| 插入模式 | 输入和修改文字 | 在正常模式按i、a或o |
| 末行模式 | 保存、退出、搜索和设置选项 | 在正常模式按:、/或? |
最短的编辑流程是:打开文件,在正常模式按i进入插入模式,输入内容后按Esc返回正常模式,再输入:wq保存并退出
进入插入模式
三个常用按键的插入位置不同:
| 按键 | 作用 |
|---|---|
i |
在光标当前位置之前开始输入 |
a |
在光标当前位置之后开始输入 |
o |
在当前行下方新建一行并开始输入 |
Esc |
离开插入模式并返回正常模式 |
掌握i和Esc就能完成最基础的编辑,a和o可以减少移动光标和手动换行的次数
在正常模式移动光标
Vim使用h、j、k、l完成左、下、上、右移动:
| 按键 | 作用 |
|---|---|
h |
向左移动一个字符 |
j |
向下移动一行 |
k |
向上移动一行 |
l |
向右移动一个字符 |
gg |
跳到文件第一行 |
G |
跳到文件最后一行 |
12G |
跳到第12行,数字可以替换成目标行号 |
0 |
跳到当前行第一列 |
^ |
跳到当前行第一个非空白字符 |
$ |
跳到当前行末尾 |
w |
跳到下一个单词开头 |
e |
跳到当前或下一个单词末尾 |
b |
跳到前一个单词开头 |
翻页时可以使用:
| 按键 | 作用 |
|---|---|
Ctrl-F |
向下翻一页,查看更靠后的内容 |
Ctrl-B |
向上翻一页,返回更靠前的内容 |
Ctrl-D |
向下翻半页 |
Ctrl-U |
向上翻半页 |
这些组合键是Vim内部操作,不属于Shell命令选项
删除、复制与粘贴
正常模式下的编辑命令可以和数字组合,数字表示重复次数:
| 命令 | 作用 |
|---|---|
x |
删除光标所在字符 |
4x |
从光标处开始删除4个字符 |
dd |
删除当前行,并把内容放入寄存器 |
3dd |
从当前行开始删除3行 |
yy |
复制当前行 |
5yy |
从当前行开始复制5行 |
p |
在光标或当前行之后粘贴 |
P |
在光标或当前行之前粘贴 |
dd删除的内容仍会进入Vim寄存器,所以移动到新位置后按p,就能完成剪切并粘贴
替换与撤销
| 命令 | 作用 |
|---|---|
r加一个字符 |
用随后输入的字符替换光标所在字符 |
~ |
切换光标所在字符的大小写 |
u |
撤销上一次修改 |
Ctrl-R |
恢复刚才撤销的修改 |
例如把光标放在错误字符上,按r后再输入正确字符,就能完成单字符替换
搜索文本
正常模式下输入/或?会进入搜索:
| 命令 | 作用 |
|---|---|
/error |
从当前位置向文件后方搜索error |
?error |
从当前位置向文件前方搜索error |
n |
按当前搜索方向跳到下一个匹配项 |
N |
按当前搜索方向跳到上一个匹配项 |
日志和配置文件较长时,搜索通常比逐行移动更快
保存与退出
在正常模式按:进入末行命令输入,再使用下面的命令:
| 命令 | 作用 |
|---|---|
:w |
保存当前文件 |
:q |
在没有未保存修改时退出 |
:wq |
保存并退出 |
:q! |
放弃未保存的修改并强制退出 |
:15 |
跳到第15行 |
:set number |
显示行号 |
:set nonumber |
隐藏行号 |
:q!会丢弃本次未保存的修改,执行前要确认这些内容确实不需要保留
配置自己的Vim
用户级配置文件通常是~/.vimrc,其中~表示当前用户的主目录,例如用户user的主目录通常是/home/user
可以先加入一组容易理解的基础配置:
syntax on
set number
set tabstop=4
set shiftwidth=4
set expandtab
set autoindent
每一行的作用如下:
| 配置 | 作用 |
|---|---|
syntax on |
开启语法高亮 |
set number |
显示行号,简写是set nu |
set tabstop=4 |
把制表符显示为4列宽度 |
set shiftwidth=4 |
自动缩进和移位操作每次使用4列 |
set expandtab |
输入制表符时改用空格保存 |
set autoindent |
新行沿用上一行的基础缩进 |
配置适合逐项添加,每加一项就重新打开Vim确认效果,出现问题时也更容易定位
试着完整练习吧
可以创建一个练习文件,把查询、编辑和保存流程连起来:
yum info vim
sudo yum install -y vim
vim notes.txt
进入Vim后依次完成:
- 按
i进入插入模式 - 输入内容
- 按
Esc返回正常模式 - 使用
gg回到第一行,再用yy复制当前行 - 按
G移动到最后一行,再按p粘贴 - 输入
/YUM搜索关键词 - 输入
:wq保存并退出
这套练习覆盖了模式切换、移动、复制、搜索、保存和退出,重复几次后会比单独背命令更容易形成操作习惯
小结
YUM的作用是软件包的查询、依赖处理、安装和卸载,Vim是终端中的文本编辑
学习YUM时要关注网络、仓库、软件包名称和依赖变化,学习Vim时先建立正常模式、插入模式和末行模式的切换意识,再逐步加入移动与编辑命令
来源
本文为个人学习笔记,根据《YUM软件包管理器与Vim编辑器的高效运用》提炼并重新组织,保留原文链接供进一步阅读
YUM与DNF的版本差异可以继续参考Fedora的DNF文档和CentOS Linux 7生命周期说明

留言
评论区暂未开放;可先通过 RSS 或「关于」页联系。