Rocky Linux 9.4与centos7.9的命令区别?

Rocky Linux 9.4 与 CentOS 7.9 虽然都源自 Red Hat Enterprise Linux (RHEL) 体系,但两者在底层架构、包管理器、系统初始化方式以及网络配置上存在显著差异。简单来说,CentOS 7 代表的是上一代(System V/init)技术栈,而 Rocky Linux 9 代表的是新一代(Systemd/RPM-NG/SELinux 增强)技术栈。

以下是核心命令的区别对比及迁移指南:

1. 软件包管理工具(最核心的区别)

这是两者最大的不同点。CentOS 7 使用 yum,而 Rocky Linux 9 引入了 dnf 作为默认工具(尽管为了兼容性保留了 yum 软链接,但推荐优先使用 dnf)。

功能 CentOS 7.9 (yum) Rocky Linux 9.4 (dnf/yum) 备注
安装软件 yum install <pkg> dnf install <pkg> yum 在 RHEL9/RL9 中是 dnf 的别名
更新系统 yum update dnf upgrade upgradeupdate 更语义化,处理依赖更强
移除软件 yum remove <pkg> dnf remove <pkg> 行为一致
搜索软件 yum search <keyword> dnf search <keyword> 行为一致
清理缓存 yum clean all dnf clean all 行为一致
模块管理 无此概念 dnf module list/enable/disable 重要:RL9 引入 Module 机制管理多版本软件(如 Python, Node.js),需先了解模块状态
事务历史 yum history dnf history 支持更详细的回滚操作 (dnf history undo)

注意:在 Rocky Linux 9 中,虽然输入 yum 依然可用,但官方文档强烈建议使用 dnf,因为 dnf 性能更好且支持更多高级特性(如模块化)。

2. 系统服务管理 (Systemd vs SysVinit)

CentOS 7 处于从 SysVinit 向 Systemd 过渡的末期,但很多脚本仍沿用旧习惯;Rocky Linux 9 则完全基于 Systemd。

功能 CentOS 7.9 Rocky Linux 9.4 备注
启动服务 service httpd start / systemctl start httpd systemctl start httpd RL9 已废弃 service 命令(或仅作为极弱的兼容层),必须使用 systemctl
设置开机自启 chkconfig --level 3 httpd on systemctl enable httpd 重大变化:CentOS 7 的 chkconfig 在 RL9 中不再用于常规服务控制
查看服务状态 service httpd status systemctl status httpd 推荐使用 systemctl
重启服务 service httpd restart systemctl restart httpd

3. 网络配置 (NetworkManager vs ifcfg-scripts)

CentOS 7 默认混合使用 NetworkManager 和传统的 /etc/sysconfig/network-scripts/ 接口配置文件;Rocky Linux 9 更加倾向于使用 nmclinmtui 进行统一管理,且不再默认生成传统网卡脚本文件。

功能 CentOS 7.9 Rocky Linux 9.4 备注
网络配置工具 ifconfig (deprecated), ip, netcfg ip, nmcli, nmtui ifconfig 在 RL9 中可能未预装,需用 ip addr 替代
修改 IP (CLI) 编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 nmcli con mod <name> ipv4.addresses ... RL9 推荐使用 nmcli 动态修改
应用配置 service network restart nmcli connection up <name> 不再使用 network 服务
防火墙工具 iptables, firewalld (命令行) firewall-cmd, firewalld 语法基本一致,但 RL9 默认启用 firewalld 且策略更严格

4. 文件系统与磁盘管理

Rocky Linux 9 默认文件系统为 XFS,且对 LVM 的管理更为现代化。

功能 CentOS 7.9 Rocky Linux 9.4 备注
挂载点 /mnt 或手动挂载 /mnt 无变化
LVM 扩容 lvextend + xfs_growfs lvextend + xfs_growfs 命令相同,但 RL9 对 XFS 在线扩容支持更完善
快照管理 lvs lvs 无变化
SELinux setenforce 0, getenforce setenforce 0, getenforce 语法相同,但 RL9 的 SELinux 策略更严格,默认模式通常为 Enforcing

5. 用户与权限管理

功能 CentOS 7.9 Rocky Linux 9.4 备注
创建用户 useradd, passwd useradd, passwd 无变化
密码策略 /etc/login.defs /etc/security/pwquality.conf RL9 默认启用更强的密码质量检查,直接 passwd 可能失败,需配置 pwquality
sudoers visudo visudo 无变化

6. 关键差异总结与迁移建议

如果您正在从 CentOS 7.9 迁移到 Rocky Linux 9.4,请注意以下“坑”:

  1. 弃用命令:不要在生产环境中依赖 service 命令来管理服务,也不要依赖 chkconfig。全部替换为 systemctl
  2. Python 环境:CentOS 7 自带 Python 2.7,而 Rocky Linux 9 默认只带 Python 3.9。千万不要尝试修改系统默认的 Python 版本来运行旧脚本,这会导致系统工具崩溃。应使用 virtualenv 或容器化方案运行旧代码。
  3. 网络脚本:CentOS 7 的 /etc/sysconfig/network-scripts/ifcfg-* 文件在 Rocky Linux 9 中不再是标准配置方式。如果需要静态 IP,建议使用 nmclinmtui 进行修改,或者确保安装了 NetworkManager-config-server 并理解其配置逻辑。
  4. Firewalld:CentOS 7 有时允许直接操作 iptables,但在 Rocky Linux 9 中,直接操作 iptables 可能会绕过 firewalld 规则导致意外阻断。请务必通过 firewall-cmd 管理端口。
  5. 时间同步:CentOS 7 常用 ntpdate,而 Rocky Linux 9 推荐使用 chronyd(由 systemd-timesyncd 或 chrony 守护进程管理),ntpdate 已被移除或不推荐。

示例:迁移一个常见的运维场景

  • 场景:安装 Nginx 并设置为开机自启。
    • CentOS 7:
      yum install nginx -y
      chkconfig nginx on
      service nginx start
    • Rocky Linux 9:
      dnf install nginx -y
      systemctl enable nginx
      systemctl start nginx
      # 注意:如果提示找不到 nginx,可能需要先启用 EPEL 源或配置 AppStream/CoolStore

总的来说,Rocky Linux 9.4 的命令风格更接近标准的现代 Linux 发行版(如 Debian/Ubuntu 的 systemd 体系),而 CentOS 7.9 保留了许多早期的 SysV 习惯。适应 dnfsystemctl 是平滑过渡的关键。

未经允许不得转载:云知识CLOUD » Rocky Linux 9.4与centos7.9的命令区别?