Kann ich mit einem Bash-Skript die Mac-Adresse meines eth0 lesen und in eine Datei drucken?
linux
shell
ethernet
mac-address
michelemarcon
quelle
quelle
ip
Befehl verwenden :/sbin/ip link show eth0
.LC_ALL=C ifconfig eth0 | awk '/HWaddr/ {print $NF}'
, dass die Ausgabe möglicherweise lokalisiert ist und nicht mit 'HWaddr' übereinstimmt. LC_ALL = C verwendet den internationalen Standard.awk '{print $NF; exit}'
auch| head -n 1
dann bevorzugen .Hier ist eine moderne Linux-Methode:
Es ist modern, dass
ifconfig
hat mich lange als veraltet zu Gunstenip
von demiproute2
Paket, und dasgrep
hat die-P
Option für Perl reguläre Ausdrücke für die Null-Breite positiven Blick hinter Behauptung .grep -o
ist schön für die Textextraktion.sed
wird traditionell dafür verwendet, aber ich finde die Behauptungen im Perl-Stil mit der Nullbreite klarer als einen sed-Substitutionsbefehl.Sie brauchen die
-o
(Online-) Option eigentlich nichtip
, aber ich bevorzuge es, sie beim Extrahieren von Netzwerkinformationen zu verwenden, da ich finde, dass sie sauberer ist und einen Datensatz pro Zeile enthält. Wenn Sie kompliziertere Übereinstimmungen oder Extraktionen (normalerweise mitawk
) durchführen,-o
ist dies für ein sauberes Skript unerlässlich. Aus Gründen der Konsistenz und eines gemeinsamen Musters verwende ich es immer.quelle
Es gibt
ifconfig
natürlich auch andere Tools, die die MAC-Adresse aus der Ausgabe herausschneiden könnten . Ich mag nur Perl.quelle
Mit
ip -br link show eth0
wird so etwas gedruckt:Sie brauchen nur die 3. Spalte, also:
quelle