您不应再使用的已弃用 Linux 命令(及其替代品)

信不信由你,您可能正在使用已弃用的 Linux 命令。

或者至少尝试使用它。

这真的不是你的错。 您要么习惯于使用这些命令,要么通过网络上过时的旧教程学习它们。

对于网络命令尤其如此,因为其中一些命令已被替换或将被更新的命令替换。

在本文中,我将列出一些这样的 Linux 命令。 您可能仍会在您的发行版中找到其中的一些。 您的发行版可能仍在提供它以实现向后兼容性,或者在下面创建了新的实现,或者计划在较新的版本中将其删除。

但作为一个知情的 Linux 用户了解他们是件好事。 开始了!

scp – 可能已弃用

scp 命令是安全复制的缩写,它使用 SSH 协议在两台 Linux 机器之间复制文件。 它最大的 USP 是它严格遵循正常的 cp 命令语法。

这就是为什么 scp 在 Linux 用户中非常受欢迎的原因。 您知道用于将文件从本地计算机的一个位置复制到另一个位置的 cp 命令。 您使用类似的语法在机器之间复制文件。

但是,那 scp 命令似乎有问题. SCP 协议已有数十年历史, 尚未更新且存在许多安全漏洞,抱怨OpenSSH。

这就是为什么发行版提倡将它弃用为另一个命令,如 rsync,或者创建一个新版本的 scp,它在下面使用 sftp 协议。 红帽和 Fedora 已经创建了一个 scp的新实现.

对于其他发行版,使用 scp 仍然存在争议。 考虑到迫在眉睫的不确定性,明智的做法是开始转向 rsync。

建议的替代方法:rsync 和 sftp 命令。

egrep 和 fgrep – 由 grep 标志替换

grep、egrep 和 fgrep. 它们听起来都很相似,对吧? 因为它们彼此相似。

grep 是第一个也是最古老的,它是几十年前创建的。

egrep 和 fgrep 命令是稍后创建的,用于扩展 grep 命令的功能。

  • egrep 命令允许使用扩展的正则表达式。
  • fgrep 命令适用于固定字符串而不是正则表达式(默认 grep 行为)。

但是,当它们可以是原始命令下的选项时,为什么还要有单独的命令。

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

但不幸的是,egrep 和 fgrep 的遗产直到今天仍在继续。 许多教程、网站和书籍仍然提到它们。 发行版仍然包含这些命令。

建议的替代方法:grep -E 用于 egrep 和 grep -F 用于 fgrep。

netstat – 使用其他工具进行网络统计

netstat 命令是用于高级和低级网络分析的出色工具。

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

这是一部分 网络工具包. 由于 net-tools 包在 2010 年左右被弃用,发行版停止添加 netstat 命令。

建议的替代方案:使用 ss 命令。

ifconfig – 将被错过

真的。 这是检查 Linux 系统中的 IP 地址和有关网络接口的其他信息的首选命令。

您仍然会在旧论坛帖子和教程中看到它。 该命令已被 net-tools 命令弃用。

它的功能现在可以在 ip 命令中找到。 事实上,许多流行的网络 Linux 命令是 net-tools 包的一部分,它们已被弃用。

arp, route, iptunnel, nameif – 他们都被 net-tools 搞砸了

如果您阅读 2010 年之前的旧 Linux 书籍,您会发现您的 Linux 系统中不再存在 arp、route 和其他此类网络命令。 你甚至不能安装它们。

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

  • arp – 替换为 ip n
  • iptunnel – 替换为 ip 隧道
  • nameif – 替换为 ip 链接
  • route – 替换为 ip route

iwconfig – 它还存在吗?

虽然不是 net-tools 包的一部分,但 iwconfig 类似于 ifconfig 命令,但仅用于无线接口。

我仍然可以在 Ubuntu 22.04 中看到它,但我已经阅读它的弃用已有一段时间了。 它已经 从红帽移除 和许多其他发行版。

建议的替代方法:使用 iw 命令。

iptables – 被自己的开发者取代

iptables 命令是配置 NAT 路由和防火墙包过滤时的首选命令。

许多 Linux 用户仍在使用它。 然而,它的起源项目, 网络过滤器,创建了一个名为 nftables 的替换命令。

为什么? 因为“iptables 框架已经变得有点复杂,iptables、ip6tables、arptables 和 ebtables 都提供了不同但相似的功能。”

因此,一个新工具可以将它们全部组合在 nftables 下。 你可以阅读这个 iptables 和 nftables 命令的比较.

您仍然会在几乎所有 Linux 发行版中找到 iptables。 但是考虑到它自己的开发人员已经创建了它的替代品,开始转向新工具是明智的。

建议的替代方法:使用 nftables 命令。

结论

我并不是说要立即放弃仍然可用但即将弃用的 Linux 命令。 你已经通过努力学会了它们,它们现在是你肌肉记忆的一部分。

但是由于它们可能很快就会消失(或已经消失),因此最好让自己保持面向未来的状态,并查看您的自定义脚本和注释,并在您有足够的空闲时间时更新它们。

由于我们正在讨论替换命令,所以让我分享我上个月写的一篇有趣的文章。 它是关于流行的遗留 Linux 命令的现代替代品。 bat 用于 cat,duf 用于 du 和 df 等等。

现在轮到你了。

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

或者你已经放弃了哪些并搬到了他们的替代品?

评论区都是你的。