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。动态库类似公用设施,静态库类似私有物品;动态库公用传址,静态库多需要一份空间。

相关推荐
码事漫谈4 小时前
黄仁勋被裁第一天,就收到了橄榄枝
后端
星恒随风4 小时前
MySQL 从零入门(五):MySQL 内置函数详解——日期、字符串、数学函数与实战案例
linux·数据库·笔记·sql·mysql
金銀銅鐵5 小时前
带您看懂字节码指令(二):空循环里有什么
java·后端·ai编程
皮皮林5516 小时前
比 Xshell 还好用的 SSH 客户端神器,MobaXterm 太爱了!
后端
我不会起名字3227 小时前
会话缓存失效排查:区分 Redis 失效与节点广播
redis·后端·go·即时通讯·im·故障排查
可乐ea7 小时前
智能体记忆该拆成几层:笔记、记忆表示与注入上下文
服务器·数据库·笔记·ai智能体·提示词工程·上下文工程·记忆系统
深入云栈9 小时前
Netty 4.2.x 源码深度解析 (二十三):ByteBuf 核心设计 —— 索引、类型与零拷贝
java·后端·架构
唐墨1239 小时前
linux kernel 比较数据大小的宏定义
linux·算法
JackJiang9 小时前
IM踩坑:聊天消息ID怎么设计?一个UUID搞不定,我用双ID解决
后端·架构
开心猴爷9 小时前
iOS 上架 App 流程
后端·ios