Com um script bash, posso ler o endereço mac do meu eth0 e imprimi-lo em um arquivo?
linux
shell
ethernet
mac-address
michelemarcon
fonte
fonte
ip
comando:/sbin/ip link show eth0
.LC_ALL=C ifconfig eth0 | awk '/HWaddr/ {print $NF}'
, porque a saída pode estar localizada, não corresponde a 'HWaddr'. LC_ALL = C usa o padrão internacional.awk '{print $NF; exit}'
também| head -n 1
então.Aqui está um método Linux moderno:
É moderno em que
ifconfig
tem longa foi preterido em favor deip
doiproute2
pacote, e quegrep
tem a-P
opção de expressões regulares perl para o de largura zero olhar-behind afirmação positiva .grep -o
é bom para extração de texto.sed
é tradicionalmente usado para isso, mas acho as asserções de largura zero no estilo perl mais claras do que um comando de substituição sed.Na verdade, você não precisa da
-o
opção (on-line)ip
, mas prefiro usá-la ao extrair informações da rede, pois acho mais limpo ter um registro por linha. Se você estiver fazendo correspondências ou extrações mais complicadas (geralmente comawk
),-o
é essencial para um script limpo, portanto, por uma questão de consistência e um padrão comum, eu sempre o uso.fonte
Existem outras ferramentas que poderiam cortar o endereço MAC da
ifconfig
saída de, é claro. Eu apenas gosto do Perl.fonte
Usar
ip -br link show eth0
imprimirá algo como isto:Você só precisa da 3ª coluna, portanto:
fonte