Puede eliminar el alias de red usando ifconfig
comando:
/sbin/ifconfig eth0:100 down
De acuerdo con el manual para ip
comando, solo se requiere el nombre del dispositivo para la eliminación de la dirección IP. Los demás argumentos son opcionales. Si no se proporcionan argumentos, la primera dirección IP se eliminará de la interfaz. Pero realmente no pude reproducir este comportamiento.
Parece que la dirección IP también es necesaria.
El último comando que has mostrado funciona solo porque la expresión ip addr list label eth0:100 | awk '{ print $2 }'
da la dirección IP del alias de red e inserta esta IP en ip addr delete ...
comando.
Lo que tienes es la mejor ruta (aunque yo usaría grep
más de awk
, pero eso es preferencia personal). La razón es que puede tener varias direcciones por 'etiqueta'. Por lo tanto, debe especificar qué dirección desea eliminar.
# 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 ]
Tenga en cuenta el ip addr del
sintaxis que dice que los parámetros son IFADDR
y STRING
. IFADDR
se define debajo de eso, y dice PREFIX
es un parámetro requerido (cosas en []
son opcionales). PREFIX
es su combinación de IP/subred. Por lo tanto, no es opcional.
En cuanto a lo que quise decir sobre usar grep
, es esto:
ip addr del $(ip addr show label eth0:100 | grep -oP 'inet \K\S+') dev eth0 label eth0:100
La razón de esto es en caso de que cambie la posición del parámetro. Las posiciones de los campos en el ip addr
la salida puede cambiar según los campos opcionales. No creo que el inet
el campo cambia, pero es solo mi preferencia.