六、淘汰命令和替代应用
RHEL 9+ 运维常用命令现代化替代指南
本指南总结了 Red Hat Enterprise Linux(RHEL)9+(包括 RHEL 9.0-9.4)中运维管理员常用的已被弃用或不推荐的命令及其现代替代工具,聚焦网络管理、文件传输、服务管理、防火墙、容器和日志管理等领域。内容筛选了 ifconfig、netstat 等高频命令的替代,补充了运维核心工具(如 journalctl),澄清了 mount -a 与 systemctl daemon-reload 的误解,提供操作步骤、实践脚本和故障排查。指南适合 RHEL 运维工程师、RHCE 考生和系统管理员,帮助快速适应 RHEL 9+ 环境。
目标受众:Linux 运维工程师、RHCE 考生、系统管理员 适用版本:RHEL 9+(含 CentOS Stream 9、AlmaLinux 9、Rocky Linux 9) 更新日期:2025-05-16
命令速查表
ifconfig
ip address / ip addr / ip a
查看/配置网络接口
netstat
ss -t / ss -l / ss -tulnp
查看网络连接和监听端口
netstat -r
ip route show
查看路由表
netstat -i
ip -s link
查看接口统计
route
ip route
管理路由表
arp
ip neighbor / ip n
管理 ARP 表
scp
rsync / sftp
安全文件传输
egrep
grep -E
扩展正则表达式搜索
fgrep
grep -F
固定字符串搜索
service
systemctl
服务管理
chkconfig
systemctl enable / disable
服务启停配置
iptables
nftables / firewall-cmd
防火墙规则管理
docker
podman
容器管理
logger
journalctl
日志记录与查看
useradd -p
useradd + passwd
用户创建与密码设置
init / telinit
systemctl
系统初始化与运行级别
📖 目录
🧰 背景与弃用原因
🌐 网络管理
2.1 从
ifconfig到ip2.2 从
netstat到ss2.3 从
route到ip route2.4 从
arp到ip neighbor
📁 文件传输:从
scp到rsync/sftp🔍 文本搜索:从
egrep/fgrep到grep -E/grep -F⚙️ 服务管理:从
service/chkconfig到systemctl🔥 防火墙管理:从
iptables到nftables/firewall-cmd🐳 容器管理:从
docker到podman📜 日志管理:从
logger到journalctl👤 用户管理:从
useradd -p到useradd+passwd🔧 系统初始化:从
init/telinit到systemctl⚠️ 澄清:
mount -a与systemctl daemon-reload🛠️ 实践实验室与每日任务
🔍 故障排查
💡 RHEL 9+ 运维提示
🧰 1. 背景与弃用原因
用途:传统命令(如 ifconfig、netstat)因功能有限、性能较低,在 RHEL 9+ 中被现代工具取代。
RHCE 相关性:高(考试要求掌握 ip、ss、nftables、podman)。
背景:RHEL 9 基于 CentOS Stream 9,内核 5.14,强调 NetworkManager、Systemd 和 Podman。
1.1 弃用原因
功能限制:
ifconfig、netstat不支持现代网络(如容器网络、IPv6)。性能问题:传统工具解析慢,输出复杂。
维护停滞:
net-tools、iptables维护减少,iproute2、nftables更活跃。RHEL 9 默认:移除
net-tools,优先iproute2、ss、podman。
1.2 替代工具优势
iproute2:统一管理接口、路由、ARP,支持复杂网络。
ss:高效 socket 解析,输出清晰。
nftables:统一 IPv4/IPv6,规则简洁。
podman:无守护进程,兼容 Docker,集成 SELinux。
journalctl:集中化日志管理,适合运维。
场景示例:在 RHEL 9 服务器上配置网络和服务,使用 nmcli 和 systemctl。
每日一题:为什么 net-tools 被弃用?
答案:功能有限,维护停滞,
iproute2更高效。
🌐 2. 网络管理
2.1 从 ifconfig 到 ip
ifconfig 到 ip用途:查看和配置网络接口。
弃用原因:ifconfig 不支持 VLAN、IPv6,输出冗长。
替代:ip address/ip addr/ip a。
示例:
优势:支持复杂网络,与 nmcli 集成。
RHCE 任务:配置静态 IP 并验证连通性。
2.2 从 netstat 到 ss
netstat 到 ss用途:监控网络连接和监听端口。
弃用原因:netstat 性能低,输出复杂。
替代:ss -t/ss -l/ss -tulnp。
示例:
优势:快速解析 socket,支持过滤,输出清晰。 RHCE 任务:检查 HTTP 服务(80 端口)是否监听。
2.3 从 route 到 ip route
route 到 ip route用途:管理路由表。
弃用原因:route 不支持策略路由。
替代:ip route。
示例:
优势:支持动态路由,与 nmcli 集成。
RHCE 任务:配置默认网关。
2.4 从 arp 到 ip neighbor
arp 到 ip neighbor用途:管理 ARP 表(IP-MAC 映射)。
弃用原因:arp 功能单一。
替代:ip neighbor/ip n。
示例:
优势:统一在 iproute2,支持脚本化。
RHCE 任务:排查 ARP 表问题。
📁 3. 文件传输:从 scp 到 rsync/sftp
scp 到 rsync/sftp用途:安全传输文件到远程服务器。
弃用原因:scp 协议安全性较低,功能单一。
替代:rsync/sftp。
示例:
优势:rsync 支持增量同步,sftp 提供交互式安全传输。
RHCE 任务:备份日志到远程服务器。
🔍 4. 文本搜索:从 egrep/fgrep 到 grep -E/grep -F
egrep/fgrep 到 grep -E/grep -F用途:搜索日志或配置文件中的文本。
弃用原因:egrep/fgrep 是 grep 别名,冗余。
替代:grep -E(扩展正则表达式)/grep -F(固定字符串)。
示例:
优势:统一 grep 工具,减少学习成本。
RHCE 任务:分析服务日志中的错误信息。
⚙️ 5. 服务管理:从 service/chkconfig 到 systemctl
service/chkconfig 到 systemctl用途:管理服务启停和开机自启。
弃用原因:service/chkconfig 基于 SysVinit,不适应 Systemd。
替代:systemctl。
示例:
优势:Systemd 提供强大服务管理和依赖处理。 RHCE 任务:配置服务开机自启。
🔥 6. 防火墙管理:从 iptables 到 nftables/firewall-cmd
iptables 到 nftables/firewall-cmd用途:配置防火墙规则,控制网络访问。
弃用原因:iptables 性能低,规则复杂。
替代:nftables(推荐)或 firewall-cmd(firewalld 管理)。
示例:
优势:nftables 统一 IPv4/IPv6,firewall-cmd 简化管理。
RHCE 任务:开放服务端口。
注意:RHEL 9 支持 iptables 兼容模式,但推荐 nftables。
🐳 7. 容器管理:从 docker 到 podman
docker 到 podman用途:部署和管理容器化应用。
弃用原因:docker 需守护进程,RHEL 9 默认不支持。
替代:podman 4.x。
示例:
优势:无守护进程,兼容 Docker,集成 SELinux。 RHCE 任务:部署 Nginx 容器。
📜 8. 日志管理:从 logger 到 journalctl
logger 到 journalctl用途:记录和查看系统/服务日志。
弃用原因:logger 仅记录,功能单一,Systemd 日志更全面。
替代:journalctl。
示例:
优势:集中化日志管理,支持过滤和持久化。 RHCE 任务:排查服务日志。
👤 9. 用户管理:从 useradd -p 到 useradd + passwd
useradd -p 到 useradd + passwd用途:创建用户并设置密码。
弃用原因:useradd -p 使用明文密码,不安全。
替代:useradd + passwd。
示例:
优势:更安全,符合运维规范。 RHCE 任务:创建用户并配置登录。
🔧 10. 系统初始化:从 init/telinit 到 systemctl
init/telinit 到 systemctl用途:管理系统初始化和运行级别。
弃用原因:init/telinit 是 System V 工具,RHEL 9 使用 Systemd。
替代:systemctl。
示例:
advantage:Systemd 提供现代初始化和运行级别管理。 RHCE 任务:更改系统运行级别。
⚠️ 11. 澄清:mount -a 与 systemctl daemon-reload
mount -a 与 systemctl daemon-reload误解:systemctl daemon-reload 不替代 mount -a。
功能:
mount -a:挂载/etc/fstab中定义的所有文件系统。systemctl daemon-reload:重新加载 Systemd 配置文件。用途:
mount -a用于验证fstab,systemctl daemon-reload用于更新服务配置。 RHCE 任务:验证挂载点或重载服务。
🛠️ 12. 实践实验室与每日任务
用途:通过实践巩固 RHEL 9 常用工具。 RHCE 相关性:高(模拟考试场景)。
12.1 实践实验室
任务 1:网络与防火墙:
使用
nmcli配置静态 IP。使用
firewall-cmd开放 80 端口。
任务 2:服务与容器:
使用
systemctl配置httpd开机自启。使用
podman运行 Nginx 容器。
任务 3:日志与用户:
使用
journalctl排查httpd日志。使用
useradd和passwd创建用户。
12.2 每日任务
Day 1:
运行
ip addr和ss -tulnp,替换ifconfig和netstat。
Day 2:
使用
podman部署容器,检查日志:journalctl -u podman。
每日一题:如何查看服务日志?
答案:
journalctl -u <service>。
实践脚本:
🔍 13. 故障排查
用途:解决 RHEL 9 运维常见问题。 RHCE 相关性:高(考试排障)。
问题 1:
ip addr无输出:排查:检查 NetworkManager。
解决:重启服务。
问题 2:防火墙规则未生效:
排查:检查规则。
解决:重新加载。
问题 3:
podman容器启动失败:排查:检查日志。
解决:检查 SELinux(临时)。
场景示例:ss 未显示 80 端口,检查 httpd 服务。
每日一题:如何调试 SSH 连接?
答案:
ssh -v user@host。
💡 14. RHEL 9+ 运维提示
用途:提升 RHEL 9 运维效率。 RHCE 相关性:高(实战能力)。
NetworkManager 集成:
实时监控:
Ansible 自动化:
SELinux 兼容:
场景示例:自动化配置网络和服务。 每日一题:如何开放防火墙端口?
答案:
firewall-cmd --add-port=80/tcp --permanent; firewall-cmd --reload。
使用说明
下载:保存为
rhel9-common-commands-guide.md。查看:使用 VS Code、Typora 或文本编辑器。
实践:在 RHEL 9 虚拟机上运行脚本,替换传统命令。
RHCE 提示:重点掌握
nmcli、ss、nftables、podman,考试高频。备注:如需旧工具,安装:
最后更新于