отображать только сетевой интерфейс и IP-адрес, используя ifconfig и awk

Меня не интересует вся информация о выводе ifconfig, я просто хочу знать сетевой интерфейс с соответствующим IP-адресом.

Я могу получить сетевой интерфейс из ifconfig с помощью команды:

ifconfig |grep "      L" |  awk '{ print $1}'
eth0
lo
tun0

и IP-адрес каждого интерфейса с помощью команды

ifconfig |grep "inet:" | cut -d: -f2 | awk '{ print $1}'
192.168.0.10
127.0.0.1
10.5.0.13

Как отобразить вместе данные, сетевой интерфейс и IP-адрес с помощью всего одной команды или сценария?

eth0 - 192.168.0.10
lo - 127.0.0.1
tun0 - 10.5.0.13

person Emilio Galarraga    schedule 26.06.2016    source источник
comment
Как насчет использования ip addr show вместо ifconfig?   -  person Mattias Åslund    schedule 26.06.2016
comment
То же самое, сетевой интерфейс и ip адрес отображаются в разных строках   -  person Emilio Galarraga    schedule 26.06.2016


Ответы (1)


Вместо этого вы можете использовать ip route show, чтобы получить нужную информацию. Фильтр с помощью этой команды, например:

ip r show|grep " src "|cut -d " " -f 3,12

выводит что-то вроде:

eth0 192.168.1.114
person Mattias Åslund    schedule 26.06.2016