다음을 사용하여 만든 별칭을 삭제하고 싶습니다.
ip addr add 192.168.1.1 dev eth0 label eth0:100
IP 주소를 알 필요가 없습니다. 기본적으로 내가 하고 싶은 건
ip addr del dev eth0 label eth0.100
그 중에 따르면문서유효해야 하지만 다음을 제공합니다.
ip: RTNETLINK answers: Operation not supported
그 와중에 사용해 보니
ip addr del $(ip addr list label eth0:100 | awk '{ print $2 }') dev eth0 label eth0.100
답변1
다음 명령을 사용하여 네트워크 별칭을 삭제할 수 있습니다 ifconfig
.
/sbin/ifconfig eth0:100 down
명령 매뉴얼에 따르면 ip
IP 주소를 삭제하려면 장치 이름만 필요합니다. 나머지 매개변수는 선택사항입니다. 인수가 제공되지 않으면 첫 번째 IP 주소가 인터페이스에서 제거됩니다. 하지만 실제로는 이 동작을 재현할 수 없습니다.
IP 주소도 필요한 것 같습니다.
표시된 마지막 명령은 표현식이 ip addr list label eth0:100 | awk '{ print $2 }'
네트워크 별칭의 IP 주소를 제공하고 해당 IP를 ip addr delete ...
명령에 삽입하기 때문에 작동합니다.
답변2
당신이 가지고 있는 것이 가장 좋은 경로입니다(비록 나는 grep
over 를 사용하겠지만 awk
그것은 개인적인 선호입니다). 그 이유는 각 "태그"가 여러 주소를 가질 수 있기 때문입니다. 따라서 삭제할 주소를 지정해야 합니다.
# ip addr help
Usage: ip addr {add|change|replace} IFADDR dev STRING [ LIFETIME ]
[ CONFFLAG-LIST ]
ip addr del IFADDR dev STRING
ip addr {show|save|flush} [ dev STRING ] [ scope SCOPE-ID ]
[ to PREFIX ] [ FLAG-LIST ] [ label PATTERN ]
ip addr {showdump|restore}
IFADDR := PREFIX | ADDR peer PREFIX
[ broadcast ADDR ] [ anycast ADDR ]
[ label STRING ] [ scope SCOPE-ID ]
및 ip addr del
와 같은 매개변수의 구문을 참고하세요 . 매개변수는 아래에 정의되어 있으며 필수입니다(해당 내용 은 선택사항임). IP/서브넷 조합입니다. 그러므로 선택사항이 아닙니다.IFADDR
STRING
IFADDR
PREFIX
[]
PREFIX
사용법에 대해 내가 의미하는 바는 grep
다음과 같습니다.
ip addr del $(ip addr show label eth0:100 | grep -oP 'inet \K\S+') dev eth0 label eth0:100
그 이유는 매개변수의 위치가 변경되는 것을 방지하기 위함입니다. 출력의 필드 위치는 ip addr
선택적 필드에 따라 변경될 수 있습니다. 이 부분은 바뀔 것 같지는 않지만 inet
그건 내 취향일 뿐이다.
답변3
ip
명령에는 -o
구문 분석에 적합한 출력을 생성하는 플래그가 있습니다. 예를 들어:
# ip -o addr show label wlp2s0:1|awk '{print $4}'
172.16.127.5/24
명령 대체로 포장하는 것으로 충분합니다 $(...)
. 다음이 있습니다.
# ip addr del $(ip -o addr show label wlp2s0:1|awk '{print $4}') dev wlp2s0
동일한 주제에 대한 변형이지만 다음을 사용합니다 xargs
.
# ip -o a show label wlp2s0:1|awk '{print $4}'|xargs -I% ip a del % dev wlp2s0
더 짧은 명령 addr
으로 대체할 수 있습니다.a
참고 사항:
명령 의 경우 ip
이는 2011 매뉴얼 페이지의 필수 구문입니다.IP 주소(8)
ip address del IFADDR dev IFNAME
따라서 접두사가 붙은 주소가 따라와야 하며 del
필수 dev IFNAME
입니다.