找不到 ifconfig 命令

找不到 ifconfig 命令

我刚刚在我的 mac 上安装了 CentOS7 作为虚拟机(osx10.9.3 + virtualbox)。运行ifconfig返回命令未找到。还运行sudo /sbin/ifconfig返回命令未找到。我是根。的输出 echo $PATH如下。

/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/robbert/.local/bin:/home/robbert/bin

我的路径正常吗?如果不是,我该如何改变它?

另外,我的虚拟机还没有互联网连接,也许这是一个因素。

答案1

TL/DR: ifconfig就是现在ip a。尝试ip -s -c -h a

您的路径看起来不错,但不包括/sbin,这可能是有意的。

您可能正在寻找该命令/sbin/ifconfig

如果此文件不存在(尝试ls /sbin/ifconfig),则可能未安装该命令。

它是 package 的一部分net-tools,默认情况下不安装,因为它是已弃用被取代通过命令 ip从包装中iproute2

不带选项的功能ifconfig被替换为ip指定目的 address

ifconfig

相当于

ip addr show

并且,因为目的论证可以缩写并且命令默认为show, 也为

ip a

输出格式有些不同:

$ ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:10553 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10553 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:9258474 (9.2 MB)  TX bytes:9258474 (9.2 MB)
[ ... ]

$ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
[ ... ]

请注意,输出更加简洁:它不显示以正常或其他方式处理的数据包计数。

为此,添加选项-s( -stats, -statistics):

$ ip -s addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
    RX: bytes  packets  errors  dropped overrun mcast
    74423      703      0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    74423      703      0       0       0       0

但你真正想看到的可能是这样的:

$ ip -stats -color -human addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
    RX: bytes  packets  errors  dropped overrun mcast
    74.3k      700      0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    74.3k      700      0       0       0       0

26.1M它显示带有或等后缀的计数,79.3k并为一些相关术语和地址着色。

如果您觉得命令太长,请使用简短的选项:
这是等价的:

ip -s -c -h a

答案2

(已验证)CENTOS 7默认最小安装不安装net-tools。

(已验证)“ifconfig”命令将在安装包 net-tools 时可用

-如何为不太懂 Linux 的专家通过 yum 安装 net-tools。

1) 拥有 root 权限 shell 或位于 sudo 列表中。

2a) 在 root shell 提示符下 (#)

yum install net-tools

2b) sudo 列表中的用户帐户

sudo yum install net-tools

如果该软件包已安装,它将显示此信息并退出 yum。 (那么听起来像是路径问题)。如果未安装,yum 将在几次本地/网络包检查后提示用户继续。安装将(应该)花费一点时间.. 现在 ifconfig 已安装。

如果你觉得冒险..相当于使用ifconfigip显示接口/地址信息

ip addr 

答案3

由于其他人已经提供了查找 ifconfig 或可用替代方案的答案,因此我将提供一些有关如何摆脱这种情况的通用提示,因为这不是第一次或最后一次需要掌握命令/包/他们系统上的实用程序(基本上我是在教一个人如何钓鱼:)。这些说明适用于 RHEL/CentOS。

场景 1:如果该命令已存在于另一个系统上:

  1. which ifconfig<- 找到 ifconfig 的位置。它可能会说 /usr/sbin/ifconfig
  2. rpm -qf /usr/sbin/ifconfig<- 这将为您提供 rpm 的名称(如 net-tools-2.0.0)
  3. sudo yum install net-tools<- 在您的系统上运行此命令以安装软件包。

场景 2:如果您没有其他参考系统,请运行命令yum whatprovides ifconfig。这将告诉您包含该命令的包名称,以及该命令的路径(如果它已存在于您的系统上)。如果该软件包不存在,您只需运行 sudo yum install 即可安装它,然后就可以开始安装了。

这些是查找和安装任何软件包的通用说明。我不会在这里详细介绍存储库/其他发行版和其他内容,以便您可以开始。

HTH。

相关内容