我需要获得Arch中的所有整数名。如果发出命令ifconfig,将得到以下响应:
[root@pi ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.154 netmask 255.255.255.0 broadcast 192.168.0.255
ether b8:27:eb:3c:03:fe txqueuelen 1000 (Ethernet)
RX packets 119099 bytes 96958556 (92.4 MiB)
RX errors 0 dropped 8 overruns 0 frame 0
TX packets 18304 bytes 5456443 (5.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 0 (Local Loopback)
RX packets 285 bytes 88221 (86.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 285 bytes 88221 (86.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0这一切都好,但我只需要界面名称。如何才能获得接口名称?
发布于 2014-12-10 23:27:15
您可以解析ifconfig的输出。这适用于许多unix变体。
ifconfig -a | sed -n 's/^\([[:alnum:]]*\):.*/\1/p'如果您不介意严格地只使用Linux,可以使用更简单的命令。
ls /sys/class/net/如果不想列出已关闭的接口,请使用ifconfig而不是ifconfig -a。对于/sys,它更难理解:您需要检查是否为该接口设置了IFF_UP标志。由于IFF_UP是最低阶位,所以需要测试flags是否为奇数。
grep -l '[13579bdf] /sys/class/net/*/flags | sed 's!.*/!!'https://unix.stackexchange.com/questions/172549
复制相似问题