Con un script bash, ¿puedo leer la dirección mac de mi eth0 e imprimirlo en un archivo?
linux
shell
ethernet
mac-address
michelemarcon
fuente
fuente
ip
comando:/sbin/ip link show eth0
.LC_ALL=C ifconfig eth0 | awk '/HWaddr/ {print $NF}'
, porque la salida podría estar localizada, no coincidir con 'HWaddr'. LC_ALL = C usa el estándar internacional.awk '{print $NF; exit}'
demasiado| head -n 1
entonces.Aquí hay un método moderno de Linux:
Es moderno en el que
ifconfig
ha sido durante mucho tiempo en desuso a favor de laip
deliproute2
paquete, y quegrep
tiene la-P
opción de expresiones regulares de Perl para la anchura cero positivo de observación detrás de la afirmación .grep -o
Es bueno para la extracción de texto.sed
se usa tradicionalmente para eso, pero las afirmaciones de ancho cero de estilo perl me parecen más claras que un comando de sustitución de sed.En realidad, no necesita la
-o
opción (en línea)ip
, pero prefiero usarla al extraer información de red, ya que me parece más limpio tener un registro por línea. Si está haciendo coincidencias o extracciones más complicadas (generalmente conawk
),-o
es esencial para un script limpio, por lo que, en aras de la coherencia y un patrón común, siempre lo uso.fuente
Hay otras herramientas que podrían cortar la dirección MAC de
ifconfig
la salida, por supuesto. Simplemente me gusta Perl.fuente
El uso
ip -br link show eth0
imprimirá algo como esto:Solo necesita la tercera columna, así que:
fuente