명령을 실행하면
ip link | awk '{print $2}'
Ubuntu 18.04에서는 다음과 같은 결과가 나타납니다.
lo:
00:00:00:00:00:00
wlp1s0:
2c:6e:85:bf:01:00
enp2s0:
14:18:77:a3:01:02
다음과 같이 형식을 지정하고 싶습니다. (없이 lo
)
wlp1s0: 2c:6e:85:bf:01:00
enp2s0: 14:18:77:a3:01:02
어떻게 해야 하나요?
답변1
MAC 주소는 다음에서 얻을 수 있습니다 /sys/class/net/<dev>/address
.
$ cat /sys/class/net/enp0s3/address
08:00:27:15:dc:fd
따라서 다음과 같습니다.
find /sys/class/net -mindepth 1 -maxdepth 1 ! -name lo -printf "%P: " -execdir cat {}/address \;
나에게주세요:
enp0s3: 08:00:27:15:dc:fd
docker0: 02:42:61:cb:85:33
또는 ip
한 줄 모드를 사용하면 스크립팅이 더 쉬워집니다.
$ ip -o link | awk '$2 != "lo:" {print $2, $(NF-2)}'
enp0s3: 08:00:27:15:dc:fd
docker0: 02:42:61:cb:85:33
답변2
IP 링크 사용
ip -o link | grep ether | awk '{ print $2" : "$17 }'
-o
각 인터페이스 에 대한 온라인 결과가 제공됩니다.grep ether
이더넷 주소가 할당된 인터페이스만 필터링합니다.awk
행의 2열과 17열을 인쇄하고 그 사이에 콜론을 넣습니다 .
또는
ip -br link | grep -v LOOPBACK | awk '{ print $1 " : " $3 }'
어디
-br
brief
인터페이스에 대한 정보를 제공합니다 .grep -v LOOPBACK
LOOPBACK
인터페이스에만 나타나는 단어는 무시하세요lo
.awk
첫 번째와 세 번째 열을 인쇄합니다 .
ifconfig 사용
ifconfig | grep HW | awk '{ print $1" : "$5 }'
grep HW
하드웨어 주소가 할당된 인터페이스 만 필터링됩니다.
해커 공격
grep HW
아니면 grep ether
실제로 무시되었습니다 lo
.
루프백 인터페이스하드웨어 주소 없음그것에 할당되었습니다.
답변3
논쟁의 여지가 없다매개변수모든 줄 바꿈, 탭 및 여러 공백을 단일 공백으로 바꿉니다. 증가시킴으로써-n 2두 번째 단어마다 줄을 자릅니다. 그래서:
ip link | awk '{print $2}' | xargs -n 2
답변4
[빠른 답변]:
인터페이스 이름을 모르고 MAC 주소를 얻는 방법:
cat /sys/class/net/$(ip route show default | awk '/default/ {print $5}')/address
다음 명령은 인터페이스 이름을 반환합니다.
ip route show default | awk '/default/ {print $5}'