首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【Linux】Linux工具漫谈:yum 与 vim,高效操作的 “左膀右臂

【Linux】Linux工具漫谈:yum 与 vim,高效操作的 “左膀右臂

作者头像
用户11872857
发布2025-12-17 15:50:58
发布2025-12-17 15:50:58
160
举报

前言

📖Linux 世界里,yum 和 vim 是提升操作效率的关键工具。前面聊过权限管理,现在就来聊聊这俩 “神器”,看看它们能给我们的 Linux 操作带来多少便利~

📚 Linux 入门篇

-【 Linux 历史溯源与指令入门 】

-【 Linux 指令进阶 】

-【 Linux 权限管理 】


目录

一、Linux软件包管理器yum

二、Linux系统(Centos)生态问题

2.1 安装软件的三种方式

2.2 生态问题

【使用者视角】

【提供者视角】

【生态的最终考量】

三、yum相关操作

3.1 查看软件包

3.2 安装和卸载软件

3.3 软件源

基本软件源(base)

扩展软件源(epel)

3.4 yum本地配置

四、lrzsz软件包

五、Linux 编辑器 ——vim

六、vim的多种模式

6.1 命令模式命令集

6.2 底行模式命令集

七、vim配置

1. 语法高亮

2. 显示行号

3. 缩进相关配置

4. 搜索相关配置

5. 显示辅助信息


一、Linux软件包管理器yum

  1. 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.
  2. 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.
  3. 软件包和软件包管理器, 就好比 "App" 和 "应用商店" 这样的关系.
  4. 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 系统借助 yumapt - 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 镜像配置文件到指定路径:

代码语言:javascript
复制
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 缓存:
代码语言:javascript
复制
yum clean all
  • 生成新的缓存(让 yum 加载新配置的源信息):
代码语言:javascript
复制
yum makecache
  • 升级系统(可选,更新已安装软件包到最新版本):
代码语言:javascript
复制
yum -y update

这样配置后,yum 就会从国内镜像源获取软件包,下载速度会得到提升。

不同 CentOS 版本(如 CentOS 6、CentOS 8 等)对应的阿里云镜像链接可能不同,可以提示用户根据自己的系统版本去阿里云镜像站(https://developer.aliyun.com/mirror/)查找对应版本的配置文件链接,这样针对性更强~

四、lrzsz软件包

lrzsz 是一套在 Linux 系统中用于实现与 Windows 机器之间文件传输的工具集 ,安装 lrzsz 软件包后,会提供 rzsz 两个命令。它常搭配终端工具(如 XShell、SecureCRT 等)使用,无需借助 FTP 等复杂的文件传输协议,就能快速完成文件在不同系统间的传输。

【安装方法】:

代码语言:javascript
复制
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. 语法高亮
代码语言:javascript
复制
syntax on

作用:开启语法高亮,让代码、配置文件等内容按语法规则显示不同颜色,提升可读性,比如代码中的关键字、变量、字符串会有不同色彩区分。

2. 显示行号
代码语言:javascript
复制
set nu

作用:在 Vim 编辑界面左侧显示行号,方便快速定位代码行,尤其在查看或修改大文件时,能更高效找到目标位置。

3. 缩进相关配置

设置缩进空格数:

代码语言:javascript
复制
set shiftwidth=4

作用:指定代码缩进时的空格数量为 4,让代码缩进风格更统一。

Tab 键等效空格数:

代码语言:javascript
复制
set tabstop=4

作用:将 Tab 键的功能等效为插入 4 个空格,配合 shiftwidth,确保缩进的一致性,避免因 Tab 和空格混用导致的格式问题。

自动缩进:

代码语言:javascript
复制
set autoindent

作用:开启自动缩进,在换行时会自动延续上一行的缩进格式,减少手动调整缩进的操作。

智能缩进

代码语言:javascript
复制
set smartindent

作用:根据代码语法智能调整缩进,比如在编写 C、Python 等语言的代码时,if 语句、循环语句等结构会自动进行合适的缩进。

4. 搜索相关配置

忽略大小写搜索:

代码语言:javascript
复制
set ignorecase

作用:在使用 /? 进行搜索时,忽略关键字的大小写,更灵活地查找内容。

智能匹配搜索:

代码语言:javascript
复制
set smartcase

作用:与 ignorecase 配合,若搜索关键字包含大写字母,则严格区分大小写;若全为小写,则忽略大小写,兼顾搜索的灵活性与精确性。

5. 显示辅助信息

显示光标位置:

代码语言:javascript
复制
set ruler

作用:在 Vim 界面底部显示光标当前所在的行号和列号,清晰了解光标位置。

显示当前模式:

代码语言:javascript
复制
set showmode

作用:在 Vim 界面底部显示当前所处的模式,比如插入模式(-- INSERT --)、普通模式等,方便知晓操作状态。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-12-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Linux软件包管理器yum
  • 二、Linux系统(Centos)生态问题
    • 2.1 安装软件的三种方式
    • 2.2 生态问题
      • 【使用者视角】
      • 【提供者视角】
      • 【生态的最终考量】
  • 三、yum相关操作
    • 3.1 查看软件包
    • 3.2 安装和卸载软件
    • 3.3 软件源
      • 基本软件源(base)
      • 扩展软件源(epel)
    • 3.4 yum本地配置
  • 四、lrzsz软件包
  • 五、Linux 编辑器 ——vim
  • 六、vim的多种模式
    • 6.1 命令模式命令集
    • 6.2 底行模式命令集
  • 七、vim配置
    • 1. 语法高亮
    • 2. 显示行号
    • 3. 缩进相关配置
    • 4. 搜索相关配置
    • 5. 显示辅助信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档