Rocky Linux 9.4 与 CentOS 7.9 虽然都源自 RHEL(Red Hat Enterprise Linux)体系,但由于底层架构的重大升级(从 CentOS 7 的 System V init 升级到 Rocky 9 的 systemd,以及软件包管理器的变更),两者在命令使用上存在显著差异。
以下是核心命令区别的详细对比:
1. 软件包管理器 (最核心的区别)
这是日常运维中最常遇到的变化。CentOS 7 使用 yum,而 Rocky 9 默认使用 dnf(虽然保留了 yum 作为别名,但底层逻辑已变)。
| 功能 | CentOS 7.9 | Rocky Linux 9.4 | 备注 |
|---|---|---|---|
| 安装软件 | yum install <pkg> |
dnf install <pkg> |
yum 在 R9 中是 dnf 的软链接 |
| 更新系统 | yum update |
dnf upgrade |
推荐用语不同,upgrade 处理依赖更智能 |
| 搜索软件 | yum search <name> |
dnf search <name> |
语法一致 |
| 查看已装 | yum list installed |
dnf list installed |
语法一致 |
| 清理缓存 | yum clean all |
dnf clean all |
语法一致 |
| 移除软件 | yum remove <pkg> |
dnf remove <pkg> |
语法一致 |
注意:在 Rocky 9 中,如果你输入
yum,它会自动调用dnf,但建议习惯使用dnf以利用其新特性(如更好的依赖解析、更快的速度、模块化支持)。
2. 网络配置与管理
CentOS 7 主要依赖 network-scripts 和 ifcfg 文件,而 Rocky 9 彻底转向了 NetworkManager 和 nmcli 工具。
| 功能 | CentOS 7.9 | Rocky Linux 9.4 | 备注 |
|---|---|---|---|
| 服务状态 | systemctl status network |
systemctl status NetworkManager |
不再维护传统的 network 服务 |
| 查看 IP | ifconfig (需安装 net-tools) |
ip addr |
ifconfig 在 R9 中默认未安装 |
| 修改 IP | 编辑 /etc/sysconfig/network-scripts/ifcfg-* |
nmcli connection modify / edit |
必须使用 nmcli 或配置文件格式变更 |
| 重启网络 | systemctl restart network |
nmcli connection reload + up |
传统 restart 方式可能无效 |
| 防火墙 | iptables (直接操作) / firewalld |
firewall-cmd (仅支持 firewalld) |
默认禁用 iptables 服务,强制使用 firewalld |
关键示例 (Rocky 9 配置静态 IP):
# 旧版 (CentOS 7): 手动编辑 /etc/sysconfig/network-scripts/
# 新版 (Rocky 9):
nmcli con mod "ens160" ipv4.addresses 192.168.1.100/24
nmcli con mod "ens160" ipv4.gateway 192.168.1.1
nmcli con mod "ens160" ipv4.dns "8.8.8.8"
nmcli con mod "ens160" ipv4.method manual
nmcli con up "ens160"
3. 系统初始化与服务管理
虽然都使用 systemctl,但部分服务的名称和行为发生了变化。
- Init 系统: 两者都是 systemd,所以
systemctl start/stop/status基本通用。 - 时间同步:
- CentOS 7: 常用
ntpd或chronyd。 - Rocky 9: 默认且强制使用
chronyd(chronyc),ntpd已被弃用。
- CentOS 7: 常用
- SELinux:
- CentOS 7: 策略较宽松,常见
setenforce 0临时关闭。 - Rocky 9: 策略更严格,且默认开启。某些操作可能需要调整布尔值 (
setsebool) 而非直接关闭。
- CentOS 7: 策略较宽松,常见
4. 文件系统与挂载
- 分区工具:
- CentOS 7: 广泛使用
fdisk和parted。 - Rocky 9: 推荐使用
lsblk,blkid配合mkfs.xfs(默认文件系统)。XFS 是 RHEL 9 的默认文件系统,而 CentOS 7 默认为 ext4(虽可换 xfs)。
- CentOS 7: 广泛使用
- LVM:
- 命令基本一致 (
vgcreate,lvextend等),但 Rocky 9 对 LVM Thin Provisioning 的支持更加成熟。
- 命令基本一致 (
5. 用户与权限管理
- 密码加密算法:
- CentOS 7: 默认使用 SHA-512 (
$6$)。 - Rocky 9: 同样使用 SHA-512,但在
/etc/login.defs中的默认参数可能有所不同。
- CentOS 7: 默认使用 SHA-512 (
- sudo 版本:
- Rocky 9 使用了更新版本的 sudo,日志输出格式和某些行为细节(如超时机制)可能与 CentOS 7 略有不同。
6. 其他重要差异
| 领域 | CentOS 7.9 | Rocky Linux 9.4 |
|---|---|---|
| 容器技术 | Docker (原生), Podman (可选) | Podman (首选,无守护进程), Docker (需额外安装) |
| SSH 版本 | OpenSSH 7.4p1 | OpenSSH 8.7p1 (更安全,默认禁用弱加密算法) |
| Python 版本 | Python 2.7 (默认), Python 3.6 | Python 3.9 (默认), Python 2.7 已移除 |
| GPG 密钥 | 旧的 GPG 签名机制 | 引入了新的密钥管理机制,验证更严格 |
| 日志位置 | /var/log/messages |
/var/log/messages (兼容), 但推荐使用 journalctl |
总结与建议
如果您是从 CentOS 7 迁移到 Rocky 9:
- 习惯改变: 请立即适应
dnf代替yum,并停止使用ifconfig和service命令。 - 网络配置: 放弃手动编辑
/etc/sysconfig/network-scripts/文件的习惯,全面转向nmcli工具。 - 脚本兼容性: 如果您的自动化脚本中包含
#!/bin/bash并调用了 Python 2 或特定的yum行为,需要重写以适应 Python 3 和dnf。 - Firewalld: 确保您的防火墙规则是基于
firewall-cmd的,不要尝试直接使用iptables规则,除非您明确知道自己在做什么。
尽管底层命令变了,但核心逻辑(安装、启动服务、管理网络)依然遵循 Linux 的标准范式,只是具体的“方言”发生了变化。
云服务器