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