활성 네트워크 인터페이스의 이름만 검색합니다.

활성 네트워크 인터페이스의 이름만 검색합니다.

Linux에서는 명령줄(또는 셸 스크립트)에서 활성 네트워크 인터페이스의 이름만 검색하려면 어떻게 해야 합니까? 활성 인터페이스가 여러 개 있는 경우 하나만 선택하면 됩니다(임의로 선택됨).

답변1

현대적인 접근 방식은 명령을 사용하는 것입니다 ip. 예를 들어 무선 연결이 활성화된 시스템에서는 다음과 같은 결과가 나타납니다.

$ IP 주소 표시
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue 상태 UNKNOWN 그룹 기본값
    링크/루프백00:00:00:00:00:00넓은00:00:00:00:00:00
    인트라넷127.0.0.1/8 범위 호스트 lo
       항상 valid_lft 항상 선호_lft
    인트라넷6::1/128 범위 호스트
       항상 valid_lft 항상 선호_lft
2: eno1: <캐리어 없음, 브로드캐스트, 멀티캐스트, up> mtu 1500 qdisc fq_codel 상태 DOWN 그룹 기본값 qlen 1000
    링크/ether00:26:b9:dd:2c:28넓은ff:ff:ff:ff:ff:ff
3: wlp3s0b1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq 상태 UP 그룹 기본 qlen 1000
    링크/etherc4:46:19:5f:dc:f5넓은ff:ff:ff:ff:ff:ff
    인트라넷192.168.1.4/24넓은192.168.1.255 범위 전역 wlp3s0b1                            
       항상 valid_lft 항상 선호_lft
    인트라넷6 fe80::c646:19ff:fe5f:dcf5/64 범위 링크
       항상 valid_lft 항상 선호_lft
16: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue 상태 알 수 없는 그룹 기본값 qlen 100
    링크/없음
    인트라넷123.167.217.2/24넓은123.167.217.255 범위 전역 tun0                            
       항상 valid_lft 항상 선호_lft

활성 인터페이스에는 inet항목과 브로드캐스트( brd) 주소가 있습니다. 다음 명령을 사용하여 이러한 인터페이스를 모두 표시할 수 있습니다.

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

하나만 원하는 경우 다음을 사용하여 첫 번째 항목만 얻을 수 있습니다.

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

exit명령문은 awk첫 번째 일치 항목을 찾은 후 검색을 중지하도록 지시합니다.

답변2

ifconfig | sed 's/[ \t].*//;/^\(lo\|\)$/d'

관련 정보