Networking
我如何僅從活動介面獲取介面名稱、ip 和 mac(lo 除外)
我使用這個命令來獲取我的網路介面的名稱和它們的 mac 地址
ip -o link | awk '$2 != "lo:" {print $2, $(NF-2)}' | sed 's_: _ _'
出去:
enp2s0 XX:XX:XX:XX:XX:XX wlp1s0 YY:YY:YY:YY:YY
而這個獲得IP:
ip addr show $lan | grep 'inet ' | cut -f2 | awk '{ print $2}'
出去:
127.0.0.1/8 192.168.1.23/24
或者這個:
ifconfig | grep "inet " | grep -Fv 127.0.0.1 | awk '{print $2}'
或另一個:
ifconfig | grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" | grep -v 127.0.0.1 | awk '{ print $2 }' | cut -f2 -d: | head -n1
出去:
192.168.1.23
我可以使用什麼命令來知道(順序不相關):
介面名稱 | IPv4 地址 | MAC地址
例子:
enp2s0 192.168.1.23 XX:XX:XX:XX:XX:XX
在一行中,但僅來自活動介面(lo 除外)(對於 ubuntu 20.04)?
我已經嘗試過這個解決方案,但它對我不起作用
在
bash
這個作品中:paste <(ip -o -br link) <(ip -o -br addr) | awk '$2=="UP" {print $1,$7,$3}'
但它依賴於 和 的輸出
ip
順序相同。可以肯定的是,您可以使用with代替:link``addr``join``sort
join <(ip -o -br link | sort) <(ip -o -br addr | sort) | awk '$2=="UP" {print $1,$6,$3}'
在
sh
命令替換不可用,所以它不能這麼簡潔。