Linux 工具之 yum、vim、gcc

一、包管理器:yum 与 apt

不同 Linux 发行版使用不同的包管理器:CentOS、Fedora、RedHat 使用 yum,Ubuntu 使用 apt。云服务器正是通过包管理器(yum、apt)来实现软件包的下载和安装功能。

发行版 包管理器
CentOS / Fedora / RedHat yum
Ubuntu apt

评估一个操作系统的好坏,需要从内核版本 和相应的操作系统生态两方面综合评估。内核版本决定系统的基础能力,生态则决定可用的软件、工具和社区支持。

二、yum 工具

命令 作用
`yum list grep 包名`
yum install -y 包名 安装软件包
yum remove -y 包名 卸载软件包
yum clean all 清空缓存
yum makecache 重建元数据缓存
yum repolist 列出仓库
yum provides 命令 查命令属于哪个包
yum history 操作历史

软件包版本号格式

软件包版本号通常由四部分组成:主版本号.次版本号.源程序发行号.主机平台.cpu架构。例如:

bash 复制代码
lrzsz-0.12.20-36.el7.x86_64
│      │      │    │    └─ cpu架构(x86_64)
│      │      │    └─ 主机平台(el7 = RHEL/CentOS 7)
│      │      └─ 源程序发行号(36)
│      └─ 次版本号(12)
└─ 主版本号(0)

版本号格式:主版本号.次版本号.源程序发行号.主机平台.cpu架构。

安装与卸载实战

下面以安装 lrzsz 和 gcc 为例,演示完整的安装流程。

bash 复制代码
# 1. 查询软件包(查包)
yum list | grep gcc
# 2. 安装软件包(-y 表示自动确认,无需手动点 y)
sudo yum install -y gcc

执行安装时,如果去掉 -y 参数,系统会提示确认,需要点 y 确认安装 ;当终端出现 Complete! 字样时,说明安装完成。

权限说明: 一般而言,安装软件需要 sudo 权限,或者切换到 root 用户下才可以执行。无论是 yum 还是 apt,都要等一个安装完成之后,才可以安装下一个软件包。

bash 复制代码
# 卸载软件包(同样需要 sudo 权限)
sudo yum remove -y gcc

还可趣味编写 cowsay "hello world" 来体验安装成果。

安装完成标志:出现 Complete!;安装需 sudo 权限,一次装完再装下一个。

安装软件需要保持网络畅通,可通过 ping www.baidu.com 验证;安装源路径可通过 ll /etc/yum.repos.d 查看。

三、vim 工具

vim 是 Linux 下最常用的文本编辑器之一,用于查看和修改配置文件、编写代码等。

bash 复制代码
# 安装 vim
sudo yum install -y vim
# 打开文件(不存在则新建)
vim 文件名

三种模式切换

vim 有三种模式:命令模式 、插入模式 和底行模式 。打开文件默认进入命令模式,按 i 进入插入模式,按 Esc 返回命令模式,在命令模式下输入 : 进入底行模式。

bash 复制代码
# 光标移动
hjkl        # 左 下 上 右
G           # 跳转到文件末尾
$           # 跳到行尾
^           # 跳到行首
w           # 跳到下一个单词开头
e           # 跳到下一个单词结尾
b           # 跳到上一个单词开头
#l          # 跳到第 # 列
gg          # 跳转到文件开头
翻页
ctrl+b      # 向上翻页
ctrl+f      # 向下翻页
ctrl+u      # 向上翻半页
ctrl+d      # 向下翻半页
删除
dd          # 删除当前行
x           # 删除光标所在字符
#x          # 删除光标后 # 个字符
#X          # 删除光标前 # 个字符
#dd         # 删除从当前行开始的 # 行
复制粘贴
yw          # 复制一个单词
#yy         # 复制从当前行开始的 # 行
p           # 粘贴到光标后
替换与撤销
r           # 替换光标所在字符
R           # 连续替换
u           # 撤销
ctrl+r      # 重做
cw          # 修改一个单词
c#w         # 修改 # 个单词
#G          # 跳转到第 # 行
ctrl+g      # 显示当前行号
底行模式
:set nu     # 显示行号
:/关键字     # 向下搜索
:?关键字     # 向上搜索
:w          # 保存
:q          # 退出
:wq         # 保存并退出
vim .vimrc  # 编辑 vim 配置文件
cd ~        # 回到用户主目录
.vimrc      # vim 配置文件

四、gcc 工具

gcc 是 GNU 编译器套件,用于把 C 语言源代码编译成可执行程序。

bash 复制代码
# 编写 C 程序
vim hello.c
# 编译(生成可执行文件 a.out)
gcc hello.c
# 编译并指定输出文件名
gcc hello.c -o hello
# 运行
./hello
c 复制代码
// hello.c 示例代码
#include <stdio.h>
int main() {
    printf("Hello, Linux!\n");
    return 0;
}

编译流程详解

gcc 编译过程分为四个阶段:预处理 、编译 、汇编 和链接 。命令格式为:gcc [选项] 要编译的文件 [选项] [目标文件],顺序为 -E、-S、-o,文件名从 .c 到 .i 到 .s 到 .o。

bash 复制代码
# 预处理:生成 .i 文件
gcc -E hello.c -o hello.i
# 编译:生成 .s 汇编文件
gcc -S hello.i -o hello.s
# 汇编:生成 .o 目标文件
gcc -c hello.s -o hello.o
# 链接:生成可执行文件
gcc hello.o -o hello

Linux 动态库后缀为 .so,静态库为 .a;Windows 动态库为 .dll,静态库为 .lib。动态库类似公用设施,静态库类似私有物品;动态库公用传址,静态库多需要一份空间。

相关推荐
蜗牛互联网1 小时前
GPT-6.1 Sol迁移指南:从token单价转向每任务成本门禁
java·人工智能·后端·gpt
Mortalbreeze1 小时前
MySQL 基础篇(三):一文掌握 MySQL 常见数据类型
linux·服务器·数据库·mysql
IT_陈寒1 小时前
Redis键过期失效?这个坑我踩得明明白白
前端·人工智能·后端
蜗牛互联网1 小时前
HSTU在Dynamo-Triton中的AOTI与KV缓存验收方法
java·人工智能·后端·缓存
青山木1 小时前
秒杀系统设计(一):需求拆解与流量治理
java·数据库·redis·后端·架构
zhangrelay1 小时前
机器人或计算机智能与时间相关案例汇总(ROS2-ROS1)
linux·笔记·学习·ubuntu·机器人
沫璃染墨1 小时前
《从零入门Linux系统篇(五十三):线程篇·六——线程互斥详解:从并发问题到mutex互斥锁》
linux·运维·服务器·开发语言·后端·架构·系统架构
程序员-Benothing1 小时前
Shell循环教程:for、while、until、break、continue详解
linux·运维·服务器
旺仔Sec1 小时前
2026年江西省职业院校技能大赛(高职组)麒麟工坊运维保障竞赛样题
运维