首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Arch linux获取网络接口名称

问Arch linux获取网络接口名称
EN

Unix & Linux用户
提问于 2014-12-10 14:10:31
回答 1查看 9.5K关注 0票数 2

我需要获得Arch中的所有整数名。如果发出命令ifconfig,将得到以下响应:

代码语言:javascript
复制
[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

这一切都好,但我只需要界面名称。如何才能获得接口名称?

EN

回答 1

Unix & Linux用户

发布于 2014-12-10 23:27:15

您可以解析ifconfig的输出。这适用于许多unix变体。

代码语言:javascript
复制
ifconfig -a | sed -n 's/^\([[:alnum:]]*\):.*/\1/p'

如果您不介意严格地只使用Linux,可以使用更简单的命令。

代码语言:javascript
复制
ls /sys/class/net/

如果不想列出已关闭的接口,请使用ifconfig而不是ifconfig -a。对于/sys,它更难理解:您需要检查是否为该接口设置了IFF_UP标志。由于IFF_UP是最低阶位,所以需要测试flags是否为奇数。

代码语言:javascript
复制
grep -l '[13579bdf] /sys/class/net/*/flags | sed 's!.*/!!'
票数 5
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/172549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档