Vous pouvez supprimer l'alias net en utilisant ifconfig
commande :
/sbin/ifconfig eth0:100 down
Selon le manuel pour ip
commande, seul le nom de l'appareil est requis pour la suppression de l'adresse IP. Les autres arguments sont facultatifs. Si aucun argument n'est donné, la première adresse IP sera supprimée de l'interface. Mais vraiment je ne pouvais pas reproduire ce comportement.
Il semble que l'adresse IP soit également requise.
La dernière commande que vous avez montrée fonctionne simplement parce que l'expression ip addr list label eth0:100 | awk '{ print $2 }'
donne l'adresse IP du net alias et insère cette IP dans ip addr delete ...
commande.
Ce que vous avez est le meilleur itinéraire (même si j'utiliserais grep
supérieur à awk
, mais c'est une préférence personnelle). La raison en est que vous pouvez avoir plusieurs adresses par 'étiquette'. Ainsi, vous devez spécifier quelle adresse vous souhaitez supprimer.
# 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 ]
Notez le ip addr del
syntaxe qui dit que les paramètres sont IFADDR
et STRING
. IFADDR
est défini en dessous et indique PREFIX
est un paramètre obligatoire (choses en []
sont facultatifs). PREFIX
est votre combinaison IP/sous-réseau. Ce n'est donc pas facultatif.
Quant à ce que je voulais dire à propos de l'utilisation de grep
, est-ce :
ip addr del $(ip addr show label eth0:100 | grep -oP 'inet \K\S+') dev eth0 label eth0:100
La raison en est que la position du paramètre change. Les positions des champs dans le ip addr
la sortie peut changer en fonction des champs optionnels. Je ne pense pas que le inet
le champ change, mais c'est juste ma préférence.