这些 Linux 命令已被弃用,别再用了(附替代方案)

这些 Linux 命令已被弃用,别再用了(附替代方案)

你是否还在使用那些早已过时的 Linux 命令?也许是时候寻找它们的替代方案了。

信不信由你,你可能正在使用一个已被弃用的 Linux 命令,或者至少尝试过使用它。

这并非你的错。要么是习惯使然,要么是你从网上那些陈旧过时的教程中学到了它们。

在网络管理命令方面尤其如此,其中许多命令已被或即将被新的命令所取代。

本文将列出一些这样的 Linux 命令。你或许仍然能在自己的发行版中找到它们,这通常是为了向后兼容,或是底层已采用了新的实现,又或是计划在未来版本中移除。但无论如何,作一名有见识的 Linux 用户,了解这些信息总是有益的。

scp – 可能将被弃用

scp 命令,即 secure copy(安全复制)的缩写,使用 SSH 协议在两台 Linux 机器之间复制文件。其最大的卖点在于,它的语法与熟悉的 cp 命令高度一致。

这正是 scp 在 Linux 用户中广受欢迎的原因。你知道 cp 命令用于在本地机器上复制文件,而使用相似的语法就能在机器之间复制文件。

然而,scp 命令似乎存在一些问题。OpenSSH 团队指出,SCP 协议已经存在数十年,不仅未曾更新,还存在许多安全洞

因此,各大发行版正倡导弃用它,转而使用 rsync 等命令,或者创建底层使用 SFTP 协议的新版 scp。Red Hat 和 Fedora 已经创建了 scp 的新实现

对于其他发行版,是否继续使用 scp 仍存在争议。考虑到这种不确定性,逐步转向 rsync 无疑是明智之举。

📋推荐替代方案:rsyncsftp 命令。

egrep 和 fgrep – 已被 grep 的参数取代

grepegrepfgrep,听起来很像,对吧?因为它们的功能确实很相近。

grep 是其中最早也是最古老的命令,诞生于几十年前。

egrepfgrep 命令则是在稍晚些时候创建的,用于扩展 grep 命令的功能。

  • egrep 命令允许使用扩展正则表达式。
  • fgrep 命令则处理固定字符串,而非正则表达式(grep 的默认行为)。

但是,如果这些功能可以作为原始命令的选项来实现,又何必设置单独的命令呢?

而这正是后来发生的事情。grep 命令经过修改,增加了新的选项,提供了与 egrep(使用 grep -E)和 fgrep(使用 grep -F)相同的功能。

但遗憾的是,**许多用户和教程仍在沿用 egrepfgrep**。各发行版也默认包含这些命令。

📋推荐替代方案:用 grep -E 替代 egrep,用 grep -F 替代 fgrep

netstat – 使用其他工具查看网络状态

netstat 命令曾是一款出色的网络分析工具,能胜任从高层次到底层的各种诊断任务

你可以用它来监控 TCP/UDP 数据包、套接字,查看网络接口等等。

它曾是 net-tools 软件包的一部分。自 2010 年左右 net-tools 软件包被弃用以来,各大发行已不再默认包含 netstat 命令。

📋推荐替代方案:使用 ss 命令。

ifconfig – 一个时代的告别

这曾是在 Linux 系统中查看 IP 地址和网络接口其他信息的首选命令。

在旧的论坛帖子和教程中,你仍会看到它的身影。该命令随着 net-tools 软件包一同被弃用。

如今,它的所有功能都已由 ip 命令承载。事实上,许多曾是 net-tools 包一部分的流行网络管理命令,都已被弃用。

arp, route, iptunnel, nameif – 与 net-tools 一同被淘汰

如果你阅读一本 2010 年前的旧 Linux 书籍,你会发现 arproute 等网络命令,但它们在你的 Linux 系统上早已不复存在,甚至无法安装。

它们中的大多数现在都被 ip 命令的各种子命令所取代:

  • arp – 由 ip n 取代
  • iptunnel – 由 ip tunnel 取代
  • nameif – 由 ip link 取代
  • route – 由 ip route 取代

iwconfig – 它还存在吗?

iwconfig

虽然 iwconfig 不属于 net-tools 软件包,但它类似于 ifconfig 命令,只是专门用于无线网络接口。

在 Ubuntu 22.04 中我仍能看到它,但关于其将被弃用的讨论已持续了一段时间。它已经从 Red Hat 和许多其发行版中移除。

📋推荐替代方案:使用 iw 命令。

iptables – 被其开发者亲自取代

iptables 命令是配置防火墙的 NAT(网络地址转换)和包过滤规则时的首选工具。

至今仍有许多 Linux 用户在使用它。然而,其起源项目 netfilter 已经创建了名为 nftables 的替代命令。

为什么?因为“iptables 框架变得有些臃肿复杂,iptablesip6tablesarptablesebtables 都提供了不同但相似的功能。”

于是,一个新工具应运而生,旨在将它们统一到 nftables 之下。你可以阅读这篇关于 iptablesnftables 命令的对比文章

你几乎可以在所有 Linux 发行版中找到 iptables。但考虑到其开发者亲自创造了替代品,开始转向新工具是明智的选择。

📋推荐替代方案:使用 nftables 命令。

结论

我并不是建议你立即抛弃那些仍可用但即将被弃用的命令。你曾努力学习它们,它们已成为你的肌肉记忆。

但考虑到它们可能很快就会消失(或已经消失),让自己与时俱进,避免未来措手不及,才是更好的选择。在有空闲时间时,不妨检查并更新你的自定义脚本和笔记。

既然我们正在讨论替代命令,我想分享一篇上月写的有趣文章。它是关于一些经典 Linux 命令的现代替代品的。例用 bat 替代 cat,用 duf 替代 dudf 等等。

现代替代品:一些经典的 Linux 命令
自认为是现代 Linux 用户?你试过这些经典 Linux 命令的现代替代品吗?

现在,轮到你了。

告诉我,上面提到的旧 Linux 命令中,你还在使用哪些?

或者,你已经抛弃了哪些,并转向了它们的替代品?

评论区交给你了。

这些 Linux 命令已被弃用,别再用了(附替代方案)

https://blog.wty.cool/2025/12/03/deprecated-linux-commands-you-should-not-use-anymore/

作者

孤独小狼

发布于

2025-12-03

更新于

2025-12-03

许可协议

评论