我使用的是以下 CentOS:
$ cat /etc/centos-release
CentOS Linux release 7.0.1406 (Core)
CentOS7 上找不到命令nmap
、netstat
和。lsof
为什么?
$ type -a nmap
bash: type: nmap: not found
$ type -a netstat
bash: type: netstat: not found
$ type -a lsof
bash: type: lsof: not found
我应该做什么才能让它们发挥作用?
答案1
该软件包net-tools
在 CentOS7 中已被弃用,取而代之的是该iproute2
套件。您可以手动安装它或查看此博客文章以获取替换命令:
编辑
以下是 Red Hat 针对 RHEL7 的 Bugzilla 的 URL,netstat
其中更详细地介绍了弃用的内容:https://bugzilla.redhat.com/show_bug.cgi?id=1119297
如前所述,网络工具已被弃用,因此除非必要,否则不应使用。 RHEL 7 中的行为与 Fedora 中的行为相同 - 最小安装中缺少 net-tools,但 @base(Fedora 中 ~= @standard)中存在 net-tools,该工具安装在所有非最小配置中。
还有其他处理此问题的票证,例如 ID 682308 和 687920。请注意,它们已分配给 Fedora 项目并且相当旧。
答案2
做就是了:
yum install net-tools
答案3
每当您在基于 Red Hat 的发行版上找不到可执行文件并且您知道它们的名称时,您应该执行以下 2 件事中的 1 件事。
使用repoquery
您可以使用命令搜索系统可用的 YUM 存储库repoquery
。如果未安装,则执行yum install yum-utils
.
$ repoquery -qf */nmap
nmap-2:6.40-4.el7.x86_64
从这里您可以看到哪些包具有具有这些名称的可执行文件。这是所有的。
$ repoquery -qf */netstat */lsof */nmap
net-tools-0:2.0-0.17.20131004git.el7.x86_64
ctdb-tests-0:2.5.1-2.el7.x86_64
lsof-0:4.87-4.el7.x86_64
nmap-2:6.40-4.el7.x86_64
ctdb-tests-0:2.5.1-2.el7.x86_64
现在只需执行sudo yum install lsof
或sudo yum install nmap
即可安装这些缺少的软件包。
使用 yum 搜索
您还可以使用 进行类似的搜索yum search <executable>
。
$ yum search netstat
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.advancedhosters.com
* extras: mirror.cisp.com
* updates: centos-mirror.jchost.net
================================================================== Matched: netstat ==================================================================
dstat.noarch : Versatile resource statistics tool
net-snmp.x86_64 : A collection of SNMP protocol tools and libraries
net-tools.x86_64 : Basic networking tools
使用这种方法,您需要进行一些挖掘以确认生成的包包含您正在寻找的可执行文件。我通常会在其中查找我想要的文件,但为此您必须使用repoquery
.
$ repoquery -ql net-tools.x86_64 | grep netstat
/bin/netstat
/usr/share/man/de/man8/netstat.8.gz
/usr/share/man/fr/man8/netstat.8.gz
/usr/share/man/man8/netstat.8.gz
/usr/share/man/pt/man8/netstat.8.gz
因此,使用我的第一种方法可以节省额外的步骤。
netstat 的弃用
显然在 CentOS 7 中netstat
,该软件包的一部分net-tools
已被正式弃用,因此您应该ss
继续使用(软件包 iproute2 的一部分)。
答案4
看来您根本没有安装这些工具。在 CentOS 上,您应该能够使用yum
.尝试这个:
$ yum install nmap netstat