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

Rocky Linux 9.4 与 CentOS 7.9 虽然都基于 Red Hat Enterprise Linux (RHEL) 生态,但由于底层架构、软件包管理器版本以及系统初始化方式的巨大差异,两者在命令使用上存在显著区别。

以下是核心差异的详细对比分析:

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

这是日常操作中最明显的变化。CentOS 7 使用 YUM (Yellowdog Updater, Modified),而 Rocky Linux 9 默认使用 DNF (Dandified YUM)。

  • 语法差异
    • 安装/更新/删除
      • CentOS 7: yum install <package>
      • Rocky 9: dnf install <package> (虽然 yum 命令通常作为 DNF 的软链接存在,但推荐使用 dnf)
    • 搜索
      • CentOS 7: yum search keyword
      • Rocky 9: dnf search keyword
    • 清理缓存
      • CentOS 7: yum clean all
      • Rocky 9: dnf clean all
    • 自动确认参数
      • CentOS 7: yum -y install ...
      • Rocky 9: dnf install ... -y (参数位置通常在命令后)
    • 依赖树查看
      • CentOS 7: yum deplist
      • Rocky 9: dnf repoquery --requires (旧版 deplist 在 DNF 中已废弃或行为不同)

注意:在 Rocky 9 中,如果直接输入 yum,通常会提示你切换到 dnf,因为 DNF 解决了 YUM 的性能和依赖解析问题。

2. 网络配置命令

两者的网络管理方式完全不同。CentOS 7 倾向于手动编辑配置文件或使用 ifconfig,而 Rocky 9 强制使用现代化的 NetworkManager 命令行工具。

功能 CentOS 7.9 Rocky Linux 9.4
查看 IP ip addrifconfig ip addr (推荐)
nmcli device show
修改 IP/网关 编辑 /etc/sysconfig/network-scripts/ifcfg-eth0
重启服务:systemctl restart network
推荐: nmcli connection modify "名称" ipv4.addresses ...
快捷: nmtui (文本界面)
应用:nmcli connection up "名称"
查看路由 route -n ip routenmcli connection show
DNS 配置 编辑 /etc/resolv.conf 编辑 /etc/resolv.conf (仅临时)
永久修改需通过 nmcli
防火墙状态 service iptables status firewall-cmd --state

3. 系统初始化与服务管理

  • Init 系统

    • CentOS 7: 使用 Systemd (较早期版本),服务控制命令为 systemctl
    • Rocky 9: 同样使用 Systemd,但版本更新,且部分服务名称或依赖逻辑有变化。
    • 通用命令systemctl start/stop/status/restart <service> 在两者中基本一致。
    • 自启设置systemctl enable/disable <service> 在两者中一致。
  • 用户管理

    • 基础命令 (useradd, passwd, usermod) 基本一致。
    • Sudo 配置:Rocky 9 对 sudo 的安全策略更严格,且默认可能未开启某些组权限。

4. 文件系统与存储

  • 文件系统类型
    • CentOS 7: 默认通常是 XFS (v5.x) 或 ext4。
    • Rocky 9: 默认是 XFS (v6.x),支持在线扩容和更高级的特性。
  • LVM 管理
    • 命令 (pvcreate, vgextend, lvextend) 基本一致,但 Rocky 9 对 LVM Thin Provisioning 的支持更好。
  • 挂载点
    • 两者都使用 mount/etc/fstab,但 Rocky 9 更倾向于使用 UUID 进行标识,且对加密卷(LUKS)的处理流程更标准化。

5. 安全与审计 (SELinux & Firewall)

  • SELinux
    • 两者默认都是 Enforcing 模式。
    • 检查状态:getenforce (通用)。
    • 临时关闭:setenforce 0 (通用)。
    • 区别:Rocky 9 的策略集更严格,某些在 CentOS 7 能运行的脚本可能在 Rocky 9 中被 SELinux 拦截,需要调整上下文 (chcon) 或策略模块。
  • 防火墙
    • CentOS 7: 默认使用 iptables (legacy) 或 firewalld (较新版本开始引入)。
    • Rocky 9: 默认且强制使用 Firewalld
    • 命令差异
      • CentOS 7 (若用 iptables): iptables -L -n
      • Rocky 9: firewall-cmd --list-all (必须掌握此命令)

6. 其他关键差异点

特性 CentOS 7.9 Rocky Linux 9.4
内核版本 3.10.x 5.14.x (较新,硬件支持更好)
Python 版本 Python 2.7 (默认), Python 3.6+ Python 3.9 (默认), 无 Python 2
SSH 协议 SSH 1/2 (兼容旧客户端) 仅支持 SSH 2 (丢弃了不安全的 SSH 1)
容器技术 Docker (原生) / Podman (需安装) Podman (默认集成,无需守护进程) / Docker
时间同步 ntpdate / chronyd chronyd (默认且唯一推荐)

迁移与适配建议

如果你正在从 CentOS 7 迁移到 Rocky 9,请注意以下几点:

  1. 脚本兼容性:任何包含 yum 的 Shell 脚本都需要替换为 dnf。同时,由于 Python 2 被移除,所有依赖 Python 2 的系统脚本将失效,必须重写为 Python 3。
  2. 网络配置自动化:不要尝试在 Rocky 9 上使用 ifcfg-eth0 文件来配置网络,应学习使用 nmclinmtui
  3. 防火墙规则:CentOS 7 中开放的端口如果是通过 iptables 规则添加的,在 Rocky 9 中不会生效,必须转换为 firewall-cmd 规则。
  4. 容器环境:如果之前习惯运行 docker run,在 Rocky 9 上建议直接使用 podman run,或者安装 docker-ce 并启动 docker 服务(但不如 Podman 原生)。

总结:Rocky Linux 9.4 代表了 RHEL 9 的现代标准,命令风格更加统一(全 systemd + 全 dnf + 全 firewall-cmd),安全性更高,但对旧有习惯(特别是 Python 2 和传统网络脚本)的兼容性较差。迁移时需要重点适应 DNFNMCLI 这两个新工具。

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