您不应再使用的已弃用 Linux 命令(及其替代命令)
不管你相信与否,您可能正在使用已弃用的 Linux 命令。
或者至少尝试使用它。
这真的不是你的错。您要么习惯使用这些命令,要么通过网络上旧的、过时的教程学习它们。
对于网络命令尤其如此,因为其中一些命令已被替换或将被更新的命令替换。
在本文中,我将列出一些此类 Linux 命令。您可能仍会在您的发行版中找到其中一些。您的发行版可能仍在提供它以实现向后兼容性,或者在下面创建了新的实现,或者计划在较新的版本中删除它。
但作为一名消息灵通的 Linux 用户了解他们是件好事。开始了!
scp – 可能已弃用
scp 命令是安全复制的缩写,它使用 SSH 协议在两台 Linux 计算机之间复制文件。它最大的 USP 是它严格遵循正常的 cp 命令语法。
这就是 scp 在 Linux 用户中非常受欢迎的原因。您知道 cp 命令用于将文件从本地计算机中的一个位置复制到另一个位置。您可以使用类似的语法在计算机之间复制文件。
但是,scp命令似乎有问题。 OpenSSH 抱怨称,SCP 协议已有数十年历史,尚未更新,并且存在许多安全漏洞。
这就是为什么发行版提倡对 rsync 等其他命令弃用它,或者创建一个使用 sftp 协议的新版本 scp。 Red Hat 和 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 包的一部分。由于 net-tools 软件包在 2010 年左右被弃用,发行版停止添加 netstat 命令。
建议的替代方案:使用 ss 命令。
ifconfig – 将会被错过
确实。这是检查 Linux 系统中的 IP 地址和有关网络接口的其他信息的首选命令。
您仍然会在旧的论坛帖子和教程中看到它。该命令已随 net-tools 命令一起弃用。
现在可以在 ip 命令中找到它的功能。事实上,net-tools 包中的许多流行的网络 Linux 命令已被弃用。
arp、route、iptunnel、nameif – 它们都因网络工具而崩溃
如果你读过一本 2010 年之前的 Linux 旧书,你会发现你的 Linux 系统中不再存在 arp、route 和其他此类网络命令。您甚至无法安装它们。
其中大部分现在已被 ip 命令的各种选项所取代:
arp – 替换为 ip n
iptunnel – 被 ip 隧道取代
nameif – 替换为 ip 链接
路由 – 替换为 ip 路由
iwconfig – 它还存在吗?
虽然 iwconfig 不是 net-tools 软件包的一部分,但它与 ifconfig 命令类似,但仅适用于无线接口。
我仍然可以在 Ubuntu 22.04 中看到它,但我已经阅读有关它已弃用一段时间了。它已从红帽和许多其他发行版中删除。
建议的替代方案:使用 iw 命令。
iptables – 被自己的开发者取代
iptables 命令是配置 NAT 路由和防火墙数据包过滤时的首选命令。
许多 Linux 用户仍在实践它。然而,其原始项目 netfilter 创建了一个名为 nftables 的替代命令。
为什么?因为“iptables 框架已经变得有点复杂,iptables、ip6tables、arptables 和 ebtables 都提供不同但相似的功能。”
因此,这是一个将它们全部组合在 nftables 下的新工具。您可以阅读 iptables 和 nftables 命令的比较。
您仍然会在几乎所有 Linux 发行版中找到 iptables。但考虑到它自己的开发人员已经创建了它的替代品,开始转向新工具是明智的。
建议的替代方案:使用 nftables 命令。
结论
我并不是说立即放弃仍然可用但即将弃用的 Linux 命令。你已经通过努力学会了它们,它们现在已经成为你肌肉记忆的一部分。
但由于它们可能很快就会消失(或已经消失),因此最好让自己面向未来,研究您的自定义脚本和注释,并在有足够的空闲时间时更新它们。
既然我们正在讨论替换命令,那么让我分享一下我上个月写的一篇有趣的文章。它是关于流行的传统 Linux 命令的现代替代品。 bat 代表 cat,duf 代表 du 和 df 等。
现在轮到你了。
告诉我您仍在使用上述哪些旧 Linux 命令?
或者您已经放弃了哪些并转移到了替代品?
评论区都是你的。