사용 가능한 모든 네트워크 인터페이스의 장치 이름 만 나열 RX packets:329 errors:0 dropped:0

Linux 서버에서 사용 가능한 모든 네트워크 장치 이름 목록을 얻고 싶습니다. 나는 그것을 알았다

ifconfig

ifconfig가 꽤 많은 출력을 생성합니다.

eth0      Link encap:Ethernet  Hardware Adresse 08:00:27:fc:5c:98
          inet Adresse:192.168.2.222  Bcast:192.168.2.255  Maske:255.255.255.0
          inet6-Adresse: fe80::a00:27ff:fefc:5c98/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:329 errors:0 dropped:0 overruns:0 frame:0
          TX packets:177 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX bytes:41496 (40.5 KiB)  TX bytes:32503 (31.7 KiB)

eth1      Link encap:Ethernet  Hardware Adresse 08:00:27:e9:35:7d
          [...]

eth2      Link encap:Ethernet  Hardware Adresse 08:00:27:ff:db:fe
          [...]

lo        Link encap:Lokale Schleife
          [...]

내가 달성하고자하는 것은

eth0
eth1
eth2
lo

또는 더 나은

eth0
eth1
eth2

“cat”, “sed”및 “grep”의 조합으로이 작업을 수행 할 수 있다고 가정하지만 불필요한 정보를 제거하는 방법에 대한 단서는 없습니다.



답변

이것을 시도하십시오 :

ifconfig -a | sed 's/[ \t].*//;/^$/d'

이것은 생략됩니다 lo:

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


답변

다른 대안은 다음과 같습니다.

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


답변

이 시도:

ifconfig | cut -c 1-8 | sort | uniq -u
  • cut -c 1-8 각 줄의 처음 8자를 추출합니다.
  • sort 줄을 정렬
  • uniq -u 고유 한 줄만 인쇄하여 처음 8 자에 공백 만있는 설명 줄의 빈 줄을 제거합니다.

이것은 내가 시도한 두 개의 Linux 컴퓨터에서 작동하지만 MacBookPro (OS X 10.6.4) ifconfig에서는 공백 대신 탭을 사용하므로 조금 더 복잡합니다.

ifconfig | expand | cut -c1-8 | sort | uniq -u | awk -F: '{print $1;}'
  • expand 탭을 공백으로 변환
  • awk -F: '{print $1;}' 콜론 앞의 첫 번째 필드를 인쇄합니다.

답변

ls /sys/class/net/
eth0  eth1  eth2  lo

또는 윤리가 필요한 경우 *

ls /sys/class/net/eth*
eth0
eth1
eth2


답변

/sys파일 시스템 사용하기 :

basename -a $(ls /sys/devices/**/net/* -d)

ip와 Perl 사용하기 :

ip -o l|perl -lane'$F[1]=~s/://g;print $F[1]'


답변

ifconfig출력 에서 인터페이스 이름을 추출하는 한 가지 방법이 있습니다 .

ifconfig -a | sed -n 's/^\([^ ]\+\).*/\1/p'

특정 이름을 제외하려면 한 가지 방법으로 다음을 사용하여 필터링하십시오 grep.

ifconfig -a | sed -n 's/^\([^ ]\+\).*/\1/p' | grep -Fvx -e lo

더 많은 이름을 제외 -e foo하려면 grep명령 에 더 많은 이름을 추가하십시오 .