本文为 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 切换镜像源(国内源加速)

步骤

  1. 备份原有源文件

  2. 下载新的源配置文件(如清华源、阿里源、163源)

  3. 清除缓存:yum clean all

  4. 重建缓存: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 移动光标?

  1. 历史原因:老式键盘没有独立的方向键,H J K L 就是方向键

  2. 效率原因:手不需要离开主键盘区,配合其他命令更快

  3. 兼容性:某些场景(如块选择)只能用 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 心态建议

命令不用死记硬背,用多了自然就记住了。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐