信不信由你,您可能正在使用已弃用的 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 命令你还在使用?
或者你已经放弃了哪些并搬到了他们的替代品?
评论区都是你的。