Linux 开发工具:从 yum 到 vim
本文为 Linux 开发工具专题的第一部分,涵盖软件包管理器 yum 的完整生态(是什么、为什么、怎么办)以及 vim 编辑器的入门使用(模式切换、基本操作),帮助同学们在 Linux 环境下搭建开发环境。
一、课程目标
今天我们进入 Linux 学习的第二阶段——开发工具篇,主要内容包括:
| 模块 | 内容 |
|---|---|
| 包管理器 | yum(CentOS)/ apt(Ubuntu) |
| 文本编辑器 | vim |
| 编译器 | gcc/g++(后续课程) |
| 调试器 | gdb(后续课程) |
| 自动化构建 | make/Makefile(后续课程) |
| 版本控制 | git(后续课程) |
本讲重点:yum 的生态理解 + vim 的入门与模式切换
二、Linux 中安装软件的三种方式
| 方式 | 说明 | 推荐度 |
|---|---|---|
| 源码安装 | 下载源代码,手动编译安装 | ❌ 不推荐(兼容性问题多) |
| 软件包安装 | 下载 .rpm 等格式的软件包手动安装 |
⚠️ 依赖问题难解决 |
| 包管理器安装 | 使用 yum/apt 一键安装 |
✅ 强烈推荐 |
2.1 为什么推荐包管理器?
核心原因:自动解决依赖问题
-
软件之间彼此依赖(A 软件依赖 B 库,B 库又依赖 C 库)
-
源码安装或手动软件包安装时,依赖缺失或版本不兼容会导致安装失败
-
包管理器会自动检测并安装所有依赖,一键完成
2.2 安装的本质
安装 = 网络下载 + 拷贝
-
下载:从软件源获取软件包
-
拷贝:将可执行程序、库、配置文件等拷贝到系统指定目录
-
必须使用 root 权限(因为要写入系统目录,如
/usr/bin/) -
安装一次,所有人都能使用(系统目录对 other 开放了读/执行权限)
三、什么是包管理器?
3.1 类比理解
| 场景 | 类比 |
|---|---|
| 手机应用商店 | 华为应用商店、小米应用商店、App Store |
| Linux 包管理器 | yum(CentOS)、apt(Ubuntu) |
以下操作以CentOS为例
包管理器就是 Linux 上的应用商店,你可以:
-
搜索软件:
yum search -
安装软件:
yum install -
卸载软件:
yum remove
3.2 核心概念
| 概念 | 说明 |
|---|---|
| 软件包 | 编译好的可安装文件(如 .rpm) |
| 包管理器 | 管理软件包的工具(yum/apt) |
| 软件源(repo) | 存放软件包的远程仓库 |
| 镜像源 | 国内对国外官方源的同步拷贝 |
四、软件生态:为什么有人免费提供软件?
4.1 生态决定操作系统的成败
一款操作系统好不好,不是看内核多先进,而是看生态多完善。
-
生态 = 开发者数量 + 配套软件数量 + 社区文档 + 问题反馈
-
开发者愿意免费贡献软件,是为了让更多人使用自己的操作系统
-
开源是一种商业模式:一旦你的软件被广泛使用,你就"绑架"了整个生态
案例:
-
谷歌将 Android 开源,对抗苹果 iOS
-
华为鸿蒙也在走开源路线
-
OpenSSL 等开源库,每年收到大量企业捐款
4.2 软件的完整生命周期
text
开发者 → 编译软件 → 上传到官方仓库 → 镜像到国内 → 用户 yum install
-
官方仓库在国外,所以国内访问慢
-
国内镜像源(阿里云、清华、163)定期同步官方仓库
-
用户通过配置镜像源,加速下载
4.3 软件源的分类
| 类型 | 说明 |
|---|---|
| base | 稳定软件源,经过长期测试 |
| epel | 扩展软件源,新软件先放这里 |
| updates | 软件更新源 |
有些软件(如
sl小火车)不在 base 中,需要先安装 epel 扩展源。
五、yum 实操
5.1 确认网络连接
ping -c3 www.baidu.com
5.2 搜索软件
yum list | grep sl # 列出所有软件,过滤包含 sl 的
输出示例:
sl.x86_64 5.02-1.el7 epel
-
sl.x86_64:软件名 + 架构(64位) -
5.02-1.el7:版本号 -
epel:来源(扩展源)
5.3 安装软件
# 普通用户需要 sudo sudo yum install -y sl # root 用户直接装 yum install -y sl
-
-y:自动确认,不询问
5.4 卸载软件
yum remove -y sl
5.5 安装 lrzsz(Windows-Linux 互传工具)
yum install -y lrzsz
| 命令 | 作用 |
|---|---|
sz 文件名 |
将 Linux 文件发送到 Windows |
rz |
从 Windows 上传文件到 Linux(支持拖拽) |
5.6 安装 man 手册(生产环境默认未装)
yum install -y man-pages
5.7 安装 epel 扩展源
yum install -y epel-release
5.8 查看/配置软件源
# 软件源配置文件目录 ls /etc/yum.repos.d/ # 查看某个源的内容(里面就是下载链接) cat /etc/yum.repos.d/CentOS-Base.repo
5.9 切换镜像源(国内源加速)
步骤:
-
备份原有源文件
-
下载新的源配置文件(如清华源、阿里源、163源)
-
清除缓存:
yum clean all -
重建缓存:
yum makecache
云服务器(如阿里云)默认已配置好国内源,虚拟机用户可能需要手动切换。
六、vim 编辑器入门
6.1 什么是 vim?
-
vim 是 Linux 系统自带的文本编辑器
-
它是 vi 的增强版(vi improved)
-
后端程序员必须掌握(线上环境编辑配置文件、写代码)
6.2 vim 是"多模式编辑器"
与 Windows 记事本不同,vim 将操作分为不同模式:
| 模式 | 作用 | 如何进入 |
|---|---|---|
| 命令模式(Normal) | 默认模式,执行编辑命令(复制、粘贴、删除、跳转) | 打开 vim 时默认,或按 ESC 从其他模式返回 |
| 插入模式(Insert) | 正常输入文本 | 命令模式下按 i / a / o 等 |
| 底行模式(Cmdline) | 执行保存、退出、设置等命令 | 命令模式下按 :(Shift + 分号) |
模式切换图

6.3 打开、编辑、保存、退出
vim test.c # 打开文件(不存在则新建)
首次打开 vim:
-
默认处于命令模式,无法直接输入
-
按
i进入插入模式,左下角显示-- INSERT -- -
正常写代码
保存并退出:
ESC # 回到命令模式 : # 进入底行模式(Shift + 分号) wq # write(保存)+ quit(退出) 回车
不保存强制退出::q!
快速保存退出:命令模式下按 ZZ(大写)
6.4 常见问题
Q:进入 vim 后不知道怎么退出来?
A:按
ESC→ 输入:q!→ 回车
6.5 vim 配置
-
裸 vim 没有行号、语法高亮等功能
-
配置文件:
~/.vimrc(用户级)或/etc/vimrc(系统级) -
配置方法后续课程讲解
七、vim 命令模式核心操作(部分)
下节课继续详细讲解,本节先建立认知
| 操作 | 命令 | 说明 |
|---|---|---|
| 光标移动 | h j k l |
左、下、上、右(老式键盘无方向键时的替代) |
| 光标定位到行首 | ^(Shift+6) |
当前行第一个非空字符 |
| 光标定位到行尾 | $(Shift+4) |
当前行末尾 |
| 光标定位到文件首行 | gg |
|
| 光标定位到文件末行 | G(Shift+g) |
|
| 光标定位到第 n 行 | nG(如 8G) |
|
| 复制当前行 | yy |
|
| 复制 n 行 | nyy(如 5yy) |
|
| 粘贴 | p |
在光标后粘贴 |
| 删除当前行 | dd |
|
| 删除 n 行 | ndd |
7.1 为什么要用 HJKL 移动光标?
-
历史原因:老式键盘没有独立的方向键,
HJKL就是方向键 -
效率原因:手不需要离开主键盘区,配合其他命令更快
-
兼容性:某些场景(如块选择)只能用 HJKL
记忆技巧:
-
H:最左边 → 左 -
L:最右边 → 右 -
K:king(国王)高高在上 → 上 -
J:jump down(往下跳)→ 下
八、本节课总结
8.1 yum 知识点总结
| 问题 | 答案 |
|---|---|
| 是什么? | Linux 上的应用商店,包管理器 |
| 为什么用? | 自动解决依赖问题,一键安装 |
| 怎么用? | yum install/remove/search |
| 软件从哪来? | 官方仓库(国外)→ 镜像到国内 |
| 为什么免费? | 生态驱动,开源是商业模式 |
| 镜像源是什么? | 国内对国外官方源的同步拷贝 |
| 怎么切换源? | 修改 /etc/yum.repos.d/ 下的配置文件 |
8.2 vim 知识点总结
| 问题 | 答案 |
|---|---|
| 是什么? | Linux 自带的多模式文本编辑器 |
| 为什么学? | 后端程序员必备,线上编辑唯一选择 |
| 怎么退出? | ESC → :q! |
| 怎么保存退出? | ESC → :wq 或命令模式下 ZZ |
| 核心模式 | 命令模式(执行命令)、插入模式(写代码)、底行模式(保存/退出) |
| 模式切换 | 任何模式按 ESC 回到命令模式;命令模式按 i 进插入,按 : 进底行 |
8.3 心态建议
命令不用死记硬背,用多了自然就记住了。
更多推荐




所有评论(0)