위에 내 IP를 표시하고 싶지만 문제를 발견했습니다. eth0: 오류가 발생합니다. 누구든지 도와줄 수 있나요?
#!/bin/sh
echo "%{F#2495e7} %{F#ffffff}$(/usr/sbin/ifconfig eth0 | grep "inet " | awk '{print $2}')%{u-}"
답변1
다음 명령을 사용하여 IP 주소를 볼 수 있습니다 ip addr show
.
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: enxb827eb315364: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether b8:27:eb:31:53:64 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.18/24 brd 192.168.1.255 scope global noprefixroute enxb827eb315364
lo
여기에는 IPv4 주소가 있는 루프백 인터페이스 127.0.0.1
와 enxb827eb315364
IPv4 주소가 있는 이더넷 인터페이스라는 두 가지 인터페이스가 있습니다 192.168.1.18
. 이 시스템은 IPv6을 실행하지 않기 때문에 IPv6 주소가 나열되지 않습니다.
IP 주소 자체만 포함하는 목록을 원할 경우(예: 프로그래밍 방식으로 처리) 다음과 같이 사용할 수 있습니다.
ip --json addr show | jq -r '.[] | select(.ifname != "lo") | .addr_info[].local'
192.168.1.18
시스템에 외부 인터페이스가 하나만 있는 경우에도 IP 주소가 여러 개 있을 수 있습니다. 여러 주소(IPv4 또는 IPv6)가 한 줄에 하나씩 나열됩니다.