eth0의 IP 주소를 환경 변수(예: $ip)에 최대한 쉽게 할당하려면 어떻게 해야 합니까?
업데이트: 배포판은 Ubuntu Server 12.04 LTS입니다.
답변1
더 짧고 더 깔끔한 방법은 hostname -i
ipconfig, ip, sed, awk 등을 사용하는 번거로움이 없습니다.
답변2
사용하는 ip address show
것이 방법입니다. 특히 최신 Linux 시스템에서는 쿼리하는 인터페이스에 ifconfig
알 수 없는 주소가 여러 개 있을 수 있습니다.
$ ip a s eth0 | awk '/inet / {print$2}'
10.13.211.83/24
192.168.17.21/16
물론, 넷마스크가 필요하지 않다면 다음과 같이 원하는 대로 파이프하면 됩니다.
cut -d/ -f1
참고: 동일한 시스템에서 ifconfig는 다음을 표시합니다.
$ ifconfig em1 | awk '/inet / {print $2}'
10.13.211.83
답변3
정의된 인터페이스에 IP를 할당하기를 원하기 때문에 특정 질문에 대답하지 않지만 나중에 사용할 수 있도록 여기에 외부 IP(NAT 이후에도)를 얻는 방법을 나열하는 것이 유용할 것이라고 생각했습니다.
ip=`wget -qO- ipecho.net/plain`
답변4
또한 확인해 보세요:
ifconfig eth0 | awk '/inet /{print $2}' | cut -f2 -d':'
Solaris 및 HP-UX에서도 작동합니다(대신 적절한 net dev 사용 eth0
).
hostname -i
명령 의 경우 hostname -I
구성된 인터페이스(루프백 제외)가 있는 경우 시도해 보십시오.