나는 사용한다이 명령내 네트워크 인터페이스의 이름과 해당 MAC 주소를 가져옵니다.
ip -o link | awk '$2 != "lo:" {print $2, $(NF-2)}' | sed 's_: _ _'
나가:
enp2s0 XX:XX:XX:XX:XX:XX
wlp1s0 YY:YY:YY:YY:YY
IP를 얻는 방법은 다음과 같습니다.
ip addr show $lan | grep 'inet ' | cut -f2 | awk '{ print $2}'
나가:
127.0.0.1/8
192.168.1.23/24
또는이것:
ifconfig | grep "inet " | grep -Fv 127.0.0.1 | awk '{print $2}'
또는다른:
ifconfig | grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" | grep -v 127.0.0.1 | awk '{ print $2 }' | cut -f2 -d: | head -n1
나가:
192.168.1.23
어떤 명령을 사용하여 알 수 있나요(순서는 중요하지 않음):
인터페이스 이름 | IPv4 주소 |
예:
enp2s0 192.168.1.23 XX:XX:XX:XX:XX:XX
한 줄에 있지만 활성 인터페이스에서만 가능합니다(lo 제외)(우분투 20.04의 경우)?
나는 열심히 노력했다이 솔루션하지만 이건 나한테는 안 맞는다
답변1
bash
이 작품 에서는 :
paste <(ip -o -br link) <(ip -o -br addr) | awk '$2=="UP" {print $1,$7,$3}'
그러나 그것은 출력 순서에 의존 ip
하며 동일합니다. 물론 다음과 같이 사용할 수도 있습니다.link
addr
join
sort
join <(ip -o -br link | sort) <(ip -o -br addr | sort) | awk '$2=="UP" {print $1,$6,$3}'
명령 sh
대체를 사용할 수 없으므로 이렇게 간결하게 설명할 수는 없습니다.