Recuperar apenas o nome da interface de rede ativa [duplicado]

2

Como posso recuperar da linha de comando (ou de um script de shell) apenas o nome da interface de rede ativa no Linux? Se houver várias interfaces ativas, quero apenas uma (selecionada arbitrariamente).

    
por aurelien 15.03.2016 / 19:09

2 respostas

6

A maneira moderna de fazer isso é usar o comando ip . Por exemplo, no meu sistema com a minha conexão sem fio ativa, recebo:

$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 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
    link/ether c4:46:19:5f:dc:f5 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.4/24 brd 192.168.1.255 scope global wlp3s0b1                            
       valid_lft forever preferred_lft forever
    inet6 fe80::c646:19ff:fe5f:dcf5/64 scope link
       valid_lft forever preferred_lft forever
16: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 100
    link/none
    inet 123.167.217.2/24 brd 123.167.217.255 scope global tun0                            
       valid_lft forever preferred_lft forever

As interfaces ativas têm um endereço inet e um endereço de transmissão ( brd ). Você pode mostrar todas essas interfaces com:

$ ip addr show | awk '/inet.*brd/{print $NF}'
wlp3s0b1
tun0

Se você quiser apenas um, você pode obter o primeiro (somente) com:

$ ip addr show | awk '/inet.*brd/{print $NF; exit}'
wlp3s0b1

A instrução exit informa awk para parar de pesquisar depois de encontrar o primeiro jogo.

    
por 15.03.2016 / 19:16
1
ifconfig | sed 's/[ \t].*//;/^\(lo\|\)$/d'
    
por 15.03.2016 / 19:15