別の代替案は次のとおりです。
ip -o link show | awk -F': ' '{print $2}'
あるいは:
ls /sys/class/net
/sys/class/net を使用して、パスを取り除くだけです:
$ basename -a /sys/class/net/*
eth0
eth1
lo
ppp0
tun0
より現代的な方法は、次のような iproute json 出力とパーサーを使用することです:
$ ip -j link |jq -r '.[].ifname'
lo
wlp0s20f3
enp0s31f6
virbr0
virbr0-nic
これにより、ループバック インターフェースを除外できます:
$ ip -j link |jq -r '.[].ifname | select(. != "lo")'
wlp0s20f3
enp0s31f6
virbr0
virbr0-nic
これを試してみてください:
ifconfig -a | sed 's/[ \t].*//;/^$/d'
これは lo
を省略します :
ifconfig -a | sed 's/[ \t].*//;/^\(lo\|\)$/d'