Linux

僅檢索活動網路介面的名稱

  • March 16, 2016

在 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在找到第一個匹配項後停止搜尋。

引用自:https://unix.stackexchange.com/questions/270008