🔥 脏脏a的技术站 🔥
「在代码的世界里,脏脏的技术探索从不设限~」
🚀 个人主页:脏脏a-CSDN博客
📌 技术聚焦:Linux 环境下 yum 与 vim 工具的实用技巧与深度解析
📊 文章专栏:Linux🔗 上篇回顾:Linux权限管理
📖Linux 世界里,yum 和 vim 是提升操作效率的关键工具。前面聊过权限管理,现在就来聊聊这俩 "神器",看看它们能给我们的 Linux 操作带来多少便利~
目录
[2.1 安装软件的三种方式](#2.1 安装软件的三种方式)
[2.2 生态问题](#2.2 生态问题)
[3.1 查看软件包](#3.1 查看软件包)
[3.2 安装和卸载软件](#3.2 安装和卸载软件)
[3.3 软件源](#3.3 软件源)
[3.4 yum本地配置](#3.4 yum本地配置)
[📋五、Linux 编辑器 ------vim](#📋五、Linux 编辑器 ——vim)
[✂️6.1 命令模式命令集](#✂️6.1 命令模式命令集)
[📝6.2 底行模式命令集](#📝6.2 底行模式命令集)
[1. 语法高亮](#1. 语法高亮)
[2. 显示行号](#2. 显示行号)
[3. 缩进相关配置](#3. 缩进相关配置)
[4. 搜索相关配置](#4. 搜索相关配置)
[5. 显示辅助信息](#5. 显示辅助信息)
🚀一、Linux软件包管理器yum
- 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.
- 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.
- 软件包和软件包管理器, 就好比 "App" 和 "应用商店" 这样的关系.
- yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat, Centos等发行版上.
yum 就像 Linux 系统里的 "智能应用商店",不仅能帮我们便捷获取编译好的软件包,还会自动搞定软件包之间的依赖关系,让安装软件这事儿变得顺顺当当。它主要用在 Fedora、RedHat、Centos 这些 Linux 发行版上,把它当成管理软件下载安装的客户端,就跟咱们手机上的应用商店一个道理~
🔍二、Linux系统(Centos)生态问题
2.1 安装软件的三种方式
- 【源代码安装】:需要先获取软件的源代码,然后通过编译等一系列操作,将源代码转化为可在 Linux 系统上运行的可执行程序。这种方式比较灵活,但操作步骤相对繁琐,需要用户具备一定的编译相关知识。
- 【rpm 安装】:rpm(Red - Hat Package Manager)是一种软件包格式,使用 rpm 工具可以直接安装这种预编译好的软件包。不过,rpm 安装在处理软件包之间的依赖关系时,需要用户手动去解决,要是依赖没处理好,安装可能会失败。
- 【yum 安装】:yum(Yellow dog Updater, Modified)是更智能的包管理工具。它能自动解决软件安装过程中的安装源、软件版本匹配以及依赖关系等问题,相比前两种方式,更加便捷高效,能让用户更轻松地完成软件安装。
2.2 生态问题
构建操作系统生态,核心是平衡使用者与提供者的需求,形成良性循环,这一点在 Linux 软件生态里体现得十分具体。
【使用者视角】
对使用者来说,得有完善文档、丰富配置和活跃社区,降低上手门槛,方便解决问题,让更多人愿意用。就像图里展示的,新人做操作系统选型时,会关注 "生态好",而 Linux 系统借助 yum
、apt - get
等工具,能便捷从服务器获取软件,背后有活跃社区和完善资源支持,让使用者(不管是新人还是职业程序员)能顺畅开展工作。
【提供者视角】
靠开源吸引公司、开发者参与 ------ 公司依赖系统会捐赠支持,维持项目活力;大公司的使用经验也能反哺系统优化,让社区问题解决更高效。从图中能看到,华为等服务器上的官方 yum
源、扩展 yum
源,由公司、个人组织等提供,这些提供者出于不同目的参与进来,同时,Linux 开源作为一种商业战略,也让生态的商业逻辑更清晰,不过也要注意,开源有时候也挺 "贵",需要投入成本维护。
【生态的最终考量】
一款优秀的系统需要具备稳定的内核 、行业认可的技术标准 ,同时要有完善的文档 、活跃的社区 、丰富的配置选项 和丰富的软件生态 ,还要能在多硬件、多场景下适配 ,并获得大公司/行业的广泛采用。这样才能从使用者视角降低上手门槛、方便解决问题,从提供者视角形成良性循环,最终构建出有生命力的生态体系。

🧪三、yum相关操作
【注意】:
关于 yum 的所有操作必须保证主机 ( 虚拟机 ) 网络畅通 !!!
3.1 查看软件包
通过 yum list 命令可以罗列出当前一共有哪些软件包 . 由于包的数目可能非常之多 , 这里我们需要使用 grep 命令只筛选出我们关注的包. 例如:
【列出lrzsz相关的软件包】:
- 软件包名称: 主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构.
- "x86_64" 后缀表示64位系统的安装包, "i686" 后缀表示32位系统安装包. 选择包时要和系统匹配.
- "el7" 表示操作系统发行版的版本. "el7" 表示的是 centos7/redhat7. "el6" 表示 centos6/redhat6.
- 最后一列,os 表示的是 "软件源" 的名称, 类似于 "小米应用商店", "华为应用商店" 这样的概念.
3.2 安装和卸载软件
- [sudo / root身份] yum install [-y] XXX
**sudo / root身份**\] yum remove \[-y\] XXX
注意事项:
- 安装软件时由于需要向系统目录中写入内容, 一般需要 sudo 或者切到 root 账户下才能完成.
- yum安装软件只能一个装完了再装另一个. 正在yum安装一个软件的过程中, 如果再尝试用yum安装另外一个软件, yum会报错.
- 如果
yum
报错,先查看报错信息里的提示(报错信息通常会说明冲突、缺失依赖或源的问题),再结合提示去搜索(比如用报错关键词 +"CentOS yum 解决" 等关键词),这样能更精准定位问题 - 加
-y
后,yum
会自动回答 "是",跳过手动确认步骤,方便脚本或批量操作
3.3 软件源
软件源是存放 Linux 系统软件包的仓库,yum
工具通过软件源来下载、安装软件。下面介绍两个常见的软件源:
基本软件源(base)
- 特点:提供基本、稳定的软件包,是系统运行和常用软件安装的基础来源,能保障系统的稳定运行。
扩展软件源(epel)
- 特点:提供大量官方基本源没有的拓展软件包,丰富了软件生态,但相对来说,部分软件包的稳定性可能不如基本源中的。
yum
会根据配置文件(通常位于 /etc/yum.repos.d/
)中的仓库地址进行下载。这些配置文件中包含了目标服务器的链接,从而使得系统可以正确地找到和下载所需的软件包。

【配置epel源】:

这里显示已经配置过了
3.4 yum本地配置
由于国内访问国外网络环境欠佳,使用 CentOS 官方默认的国外仓库地址下载软件包时,速度往往较慢。为提升下载和安装效率,国内不少知名企业与组织搭建了官方仓库的镜像,将国外软件包复制到本地服务器。用户只需把 /etc/yum.repos.d/
目录下配置文件里的链接替换为国内镜像地址,就能加快软件包下载速度,本质就是把软件源地址从国外链接更新为国内镜像地址。
yum
会依据 /etc/yum.repos.d/
路径下的配置文件来生成下载链接(结合 OS 版本和要下载的软件),进而辅助完成下载、安装操作。一般系统内置的链接指向 CentOS 国外官网,下载速度慢,所以需要进行配置,配置的本质就是修改或更改配置文件内容。
配置步骤示例(以阿里云镜像为例):
1. 下载国内镜像的配置文件 :使用 wget
命令下载阿里云的 CentOS 7 镜像配置文件到指定路径:
bash
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
其中,-O
选项用于将远端下载的文件重命名为 CentOS-Base.repo
并保存到 /etc/yum.repos.d/
目录。
2. 清理缓存、生成新缓存并更新系统:
- 清理
yum
缓存:
bash
yum clean all
- 生成新的缓存(让
yum
加载新配置的源信息):
bash
yum makecache
- 升级系统(可选,更新已安装软件包到最新版本):
bash
yum -y update
这样配置后,yum
就会从国内镜像源获取软件包,下载速度会得到提升。
不同 CentOS 版本(如 CentOS 6、CentOS 8 等)对应的阿里云镜像链接可能不同 ,可以提示用户根据自己的系统版本去阿里云镜像站(https://developer.aliyun.com/mirror/)查找对应版本的配置文件链接,这样针对性更强~
🎯四、lrzsz软件包
lrzsz
是一套在 Linux 系统中用于实现与 Windows 机器之间文件传输的工具集 ,安装 lrzsz
软件包后,会提供 rz
和**sz
** 两个命令。它常搭配终端工具(如 XShell、SecureCRT 等)使用,无需借助 FTP 等复杂的文件传输协议,就能快速完成文件在不同系统间的传输。
【安装方法】:
bash
sudo/root账号 yum install lrzsz
rz -E
和拖拽是一样的效果将windows客户端文件下载到Linux上sz -E
和拖拽是一样的效果Linux下传递下来到本地
📋五、Linux 编辑器 ------vim
vi 与 vim 同属多模式编辑器范畴,vim 是 vi 的增强版本,它全盘兼容 vi 的所有指令,还增添了诸多新特性。像语法高亮功能,能让代码等文本内容的不同部分以不同颜色显示,便于阅读;可视化操作方面,vim 不仅能在终端中顺畅运行,还可在 X window、mac os、windows 等多种系统环境下使用。vim 作为一款编辑器,和日常所用的记事本作用相近,主要用于文本的创建与修改。
既然 vim 是编辑器,我们可以直接执行 vim filename.txt
命令,若 filename.txt
不存在,该命令会创建并打开这个新文件。不过,更稳妥的做法是先用 touch filename.txt
命令创建好文件,再用 vim 对其进行编辑书写。
📌六、vim的多种模式
vim 有着丰富的操作模式,虽说实际存在十余种模式,但对于入门阶段,掌握以下 3 种核心模式就足够了,它们各自承担不同的功能:
- 命令模式(Normal mode) :允许使用者通过命令来进行文本的编辑控制,将来更多是用于完成复制粘贴和区域选择,删除,大小写转换
- 插入模式(Insert mode) :只有在插入模式下,才能进行文字输入。若要回到命令模式,只需按下
ESC
键。在日常编辑工作中,插入模式是使用得最为频繁的编辑模式。 - 底行模式(Last line mode) :用来进行让vim进行包括但是不限于shell进行交互的,可以在底行执行一些命令和wq退出。相当于对于我们的整个软件这个使用情况进行控制,保存退出。
命令模式属于核心模式,如果进入到其他模式需要退回到命令模式可以无脑Esc
返回。

✂️6.1 命令模式命令集
【和插入模式相关的命令】:
- 按**[i]**:切换进入插入模式「insert mode」,按"i"进入插入模式后是从光标当前位置开始输入文件;
- 按**[a]**:进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
- 按**[o]**:进入插入模式后,是插入新的一行,从行首开始输入文字
- 按**[ESC]**键:从插入模式切换命令模式
- 无法从插入模式直接切换到底行模式
【移动光标相关的命令】:
- vim 的命令模式、插入模式、末行模式,默认都不支持鼠标操作
- vim可以直接用键盘上的箭头来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格
- 按[gg]:进入到文本开始
- 按[G (shift+g)]:进入文本末端
- 按 [n+G(n + shift + g)]: 定位光标到第n行
- 按「 $(shift+4) 」:移动到光标所在行的"行尾"
- 按「^(shift+6)」:移动到光标所在行的"行首"
- 按「w」:光标跳到下个单词的开头(遇到单个字符就到下一个字符的开头,按b同理)
- 按「b」:光标回到上个单词的开头
- 按「ctrl」+「b」:屏幕往"后"移动一页
- 按「ctrl」+「f」:屏幕往"前"移动一页
- 按「ctrl」+「u」:屏幕往"后"移动半页
- 按「ctrl」+「d」:屏幕往"前"移动半页
【复制相关的命令】:
- 按
[yy]
:复制光标所在行- 按
[n yy]
:复制光标所在行及下方共n
行- 按
[dd]
:剪切、删除光标所在行- 按
[n dd]
:剪切、删除光标所在行及下方共n
行- 按
[p]
:粘贴(复制 / 剪切的内容)到光标所在行的下一行- 按
[n p]
:粘贴(复制 / 剪切的内容)n
次到光标所在行的下一行【示例】:5yy + 2p(复制5行,粘贴2次)
【删除文字相关命令】:
- 按
[x]
:每按一次,删除光标所在位置的一个字符。- 按
[#x]
:例如,[6x]
表示删除光标所在位置后面(包含自身在内)的 6 个字符。- 按
[X]
(大写X
):每按一次,删除光标所在位置前面的一个字符。- 按
[#X]
:例如,[20X]
表示删除光标所在位置前面的 20 个字符。- 按
[dd]
:删除光标所在行。- 按
[#dd]
:从光标所在行开始,删除#
行。【替换相关命令】:
[r]
:替换光标所在处的单个字符。[R]
:进入连续替换模式,可连续替换光标所到之处的字符,直到按下[ESC]
键为止。shift + ~
:实现字符的大小写转换。(n)r
:对光标所在字符之后的n
个字符进行批量替换。(n)x
:删除光标所在字符之后的n
个字符。【撤销相关操作】:
[u]
:如果误执行了某个命令,可立即按下[u]
,撤销上一次操作。多次按下[u]
,能执行多次撤销,逐步回退到之前的状态。[Ctrl + r]
:用于恢复被撤销的操作,也就是撤销的 "反操作",可将通过[u]
撤销的操作恢复回来。
📝6.2 底行模式命令集
在使用末行模式前,需先按 [ESC]
键确保处于命令模式,再按 :
即可进入末行模式。
- 列出行号 :输入
set nu
,文件中每一行前面会显示行号。- 跳到文件中的某一行 :在冒号后输入数字(如
15
),再按回车键,就会跳到文章的第 15 行。- 查找字符 :
/{关键字}
:先按/
键,再输入要寻找的字符,若第一次找到的关键字不是想要的,可一直按n
往后寻找,直到找到目标关键字。?{关键字}
:先按?
键,再输入要寻找的字符,若第一次找到的关键字不是想要的,可一直按n
往前寻找,直到找到目标关键字。- 可通过操作实验,体会
/
(往后查找)和?
(往前查找)的区别。- 保存文件 :在冒号后输入字母
w
,即可保存文件。- 离开 vim :
q
:按q
退出,若无法正常离开,可在q
后跟!
(如q!
)强制离开。wq
:建议离开时使用,既保存文件又退出 vim。
【多文件编辑与窗口切换操作】:在 vim 中进行多文件编辑及窗口相关操作时,可通过末行模式(命令模式下按
:
进入)的命令来实现:
- 打开多文件编辑窗口 :在末行模式下输入
vs {文件名}
(例如vs test1.txt
),能打开指定文件的编辑窗口,实现多文件同时编辑。若要打开多个文件,可多次执行该命令,或在启动 vim 时直接指定多个文件(如vim file1.txt file2.txt
)。- 窗口光标切换(命令模式生效) :使用
Ctrl + ww
快捷键,可在不同的文件编辑窗口之间切换光标。- 操作作用范围:光标所在的窗口就是当前进行操作的窗口,所有的编辑、保存等操作都只对当前光标所在窗口的文件生效。
通过这些操作,能高效地在多个文件之间进行编辑和切换,提升多文件处理的效率。
🔗七、vim配置
Vim 的基础配置可通过修改系统公共的 /etc/vimrc
文件(对所有用户有效),或者每个用户在自己主目录下建立的私有的 .vimrc
文件(可通过 su
切换用户、cd ~
进入主工作目录后,用 vim .vimrc
打开编辑)来优化编辑体验,且一个用户一个 .vimrc
配置文件不会互相影响,同时不建议给 root
做配置,用普通用户即可。
1. 语法高亮
bash
syntax on
作用:开启语法高亮,让代码、配置文件等内容按语法规则显示不同颜色,提升可读性,比如代码中的关键字、变量、字符串会有不同色彩区分。
2. 显示行号
bash
set nu
作用:在 Vim 编辑界面左侧显示行号,方便快速定位代码行,尤其在查看或修改大文件时,能更高效找到目标位置。
3. 缩进相关配置
-
设置缩进空格数:
bashset shiftwidth=4
作用:指定代码缩进时的空格数量为 4,让代码缩进风格更统一。
-
Tab 键等效空格数:
bashset tabstop=4
作用:将 Tab 键的功能等效为插入 4 个空格,配合
shiftwidth
,确保缩进的一致性,避免因 Tab 和空格混用导致的格式问题。 -
自动缩进:
bashset autoindent
作用:开启自动缩进,在换行时会自动延续上一行的缩进格式,减少手动调整缩进的操作。
-
智能缩进
bashset smartindent
作用:根据代码语法智能调整缩进,比如在编写 C、Python 等语言的代码时,if 语句、循环语句等结构会自动进行合适的缩进。
4. 搜索相关配置
-
忽略大小写搜索:
bashset ignorecase
作用:在使用
/
或?
进行搜索时,忽略关键字的大小写,更灵活地查找内容。 -
智能匹配搜索:
bashset smartcase
作用:与
ignorecase
配合,若搜索关键字包含大写字母,则严格区分大小写;若全为小写,则忽略大小写,兼顾搜索的灵活性与精确性。
5. 显示辅助信息
-
显示光标位置:
bashset ruler
作用:在 Vim 界面底部显示光标当前所在的行号和列号,清晰了解光标位置。
-
显示当前模式:
bashset showmode
作用:在 Vim 界面底部显示当前所处的模式,比如插入模式(-- INSERT --)、普通模式等,方便知晓操作状态。
以上是yum和vim工具的所有内容,感谢大家的观看!!!