CentOS 7 和 CentOS 8 是基于 Red Hat Enterprise Linux(RHEL)的不同版本开发的,它们在命令行工具、系统架构和服务管理等方面有显著区别。以下是两者之间一些主要的命令和功能差异:
🧩 一、系统初始化与服务管理
| 功能 | CentOS 7 | CentOS 8 |
|---|
| 初始化系统 | SysVinit + systemd 混合使用 | 完全使用 systemd |
| 启动/停止服务 | service <servicename> start/stop | 推荐使用 systemctl 命令 |
| 管理服务 | systemctl start/stop/status servicename | 同样使用 systemctl,但部分服务名称或结构变化 |
| 默认运行级别设置 | systemctl set-default multi-user.target 或 graphical.target | 同上 |
| 查看运行级别 | runlevel | 同上 |
| 防火墙工具 | iptables, firewalld | 主要使用 nftables,默认仍用 firewalld |
🛠️ 二、软件包管理器
| 功能 | CentOS 7 | CentOS 8 |
|---|
| 包管理器 | yum | dnf(向下兼容 yum 命令) |
| 安装软件包 | yum install package_name | dnf install package_name 或 yum install |
| 升级系统 | yum update | dnf upgrade 或 yum update |
| 清除缓存 | yum clean all | 同上 |
| 列出已启用仓库 | yum repolist | dnf repolist |
| 模块化支持 | ❌ 不支持 | ✅ 支持 dnf module(用于选择不同版本的软件) |
🖥️ 三、网络配置工具
| 功能 | CentOS 7 | CentOS 8 |
|---|
| 网络配置工具 | ifconfig, net-tools 默认安装 | ip 命令为主,ifconfig 可通过安装 net-tools 使用 |
| 网络管理 | network.service | 使用 NetworkManager(推荐) |
| 修改 IP 地址 | 手动编辑 /etc/sysconfig/network-scripts/ifcfg-<interface> | 使用 nmcli 或 nmtui 工具更方便 |
| DNS 配置 | /etc/resolv.conf 可直接修改 | 推荐通过 NetworkManager 或 nmcli 设置 |
🔐 四、用户与权限管理
| 功能 | CentOS 7 | CentOS 8 |
|---|
| 用户添加 | useradd username | 同上 |
| 密码设置 | passwd username | 同上 |
| sudo 权限配置 | 编辑 /etc/sudoers 或添加文件到 /etc/sudoers.d/ | 同上 |
| 默认 Python 版本 | Python 2.x(可选安装 Python 3) | 默认 Python 3(Python 2 需手动安装) |
📁 五、文件系统与磁盘管理
| 功能 | CentOS 7 | CentOS 8 |
|---|
| 默认文件系统 | XFS(也支持 ext4) | XFS 为主 |
| LVM 工具 | 支持 | 支持 |
| 加密安装选项 | 支持 | 支持 |
| 磁盘分区工具 | fdisk, parted | 同上,还支持 lsblk, blkid 等 |
📦 六、容器与虚拟化支持
| 功能 | CentOS 7 | CentOS 8 |
|---|
| Docker 支持 | 社区版可用,需第三方源 | 更好的支持,内置容器工具如 podman, buildah |
| 虚拟化支持 | KVM/QEMU 基础支持 | 更完善的虚拟化支持,集成更好的工具链 |
| 容器工具 | 需要额外安装 Docker | 自带 podman, skopeo, cri-o 等工具 |
🧪 七、其他常见命令差异
| 功能 | CentOS 7 | CentOS 8 |
|---|
| Python 版本 | 默认 Python 2.7 | 默认 Python 3.6+ |
python 命令 | 直接可用 | 需要手动链接或安装 Python 2 |
firewall-cmd | 支持 | 支持,但底层由 nftables 实现 |
logind | 支持多会话管理 | 支持,功能更完善 |
chronyd vs ntpd | 推荐使用 chronyd | 更推荐使用 chronyd,默认安装 |
| SELinux 工具 | setsebool, getsebool 等 | 同上 |
✅ 总结对比表
| 项目 | CentOS 7 | CentOS 8 |
|---|
| 初始化系统 | SysVinit + systemd | 完全使用 systemd |
| 包管理器 | yum | dnf(兼容 yum) |
| 默认 Python | Python 2.x | Python 3.x |
| 网络配置 | ifconfig, network.service | ip, NetworkManager |
| 容器支持 | 第三方 Docker | 内建 Podman、Buildah 等 |
| 防火墙 | iptables/nftables | nftables(默认) |
| 模块化软件支持 | ❌ 不支持 | ✅ 支持 DNF Modules |
| 用户界面 | GNOME 3 Classic | GNOME 3(更新版本) |
💡 建议
- 如果你在做新项目,建议使用 CentOS Stream(或 Rocky Linux / AlmaLinux)8 或更高版本,以获得更好的安全性和现代特性。
- CentOS 7 的官方维护支持已于 2024 年 6 月 30 日结束,不建议继续用于生产环境。
- CentOS 8 的官方维护支持将持续到 2029 年。
如果你有具体的命令想知道在两个版本中的行为差异,可以告诉我,我可以详细说明某个命令的变化。