Linux
僅檢索活動網路介面的名稱
在 Linux 中,如何從命令行(或 shell 腳本)僅檢索活動網路介面的名稱?如果有多個活動介面,我只想要一個(任意選擇)。
這樣做的現代方法是使用
ip
命令。例如,在我的無線連接處於活動狀態的系統上,我得到:$ ip地址顯示 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 連結/環回 00:00:00:00:00:00 **brd** 00:00:00:00:00:00 **inet** 127.0.0.1/8 範圍主機 lo valid_lft 永遠首選_lft 永遠 **inet** 6 :: 1/128 範圍主機 valid_lft 永遠首選_lft 永遠 2: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000 連結/乙太 00:26:b9:dd:2c:28 **brd** ff:ff:ff:ff:ff:ff 3: wlp3s0b1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 連結/乙太 c4:46:19:5f:dc:f5 **brd** ff:ff:ff:ff:ff:ff **inet** 192.168.1.4/24 **brd** 192.168.1.255 範圍全域 wlp3s0b1 **←** valid_lft 永遠首選_lft 永遠 **inet** 6 fe80::c646:19ff:fe5f:dcf5/64 範圍連結 valid_lft 永遠首選_lft 永遠 16: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 100 連結/無 **inet** 123.167.217.2/24 **brd** 123.167.217.255 範圍全域 tun0 **←** valid_lft forever preferred_lft forever
活動介面既有
inet
條目也有廣播 (brd
) 地址。您可以通過以下方式顯示所有此類界面:$ ip addr show | awk '/inet.*brd/{print $NF}' wlp3s0b1 tun0
如果您只想要一個,您可以通過以下方式獲得第一個(僅):
$ ip addr show | awk '/inet.*brd/{print $NF; exit}' wlp3s0b1
該
exit
語句告訴awk
在找到第一個匹配項後停止搜尋。