Linux ifconfig - was macht ifconfig | grep -Po "HWaddr \ K. * $"

722
Mark Mills

Ich hatte gehofft, dass jemand Stück für Stück erklären könnte, was jeder Teil dieses Befehls bewirkt.

ifconfig | grep -Po "HWaddr \K.*$"

zB für was -Poist das?

0
Was haben Sie bisher dazu recherchiert? bertieb vor 7 Jahren 2
Ich fand, dass -P für "--perl-regexp" steht und bedeutet "Interpretiere das Muster als einen Perl-kompatiblen regulären Ausdruck (PCRE).". -o ist die Abkürzung für "--only matching" und bedeutet "Nur die übereinstimmenden (nicht leeren) Teile der übereinstimmenden Zeilen drucken ...". IQV vor 7 Jahren 1

1 Antwort auf die Frage

5
bertieb

Was macht dieser Befehl?

ifconfig | grep -Po "HWaddr \K.*$"

gibt die MAC- / Hardware-Adressen der aktiven Netzwerkschnittstellen in Ihrem System aus, sofern verfügbar.


Nebenbei können Sie in Linux im Allgemeinen etwas über Programme und deren Schalter erfahren, indem Sie sie nachschlagen man, zB:

$ man ifconfig

$ man grep

(etc) Andernfalls kann eine Suche nach " <program name>manuell" oder " <program name>Verwendung" diese Art von Fragen beantworten.

ifconfig

ifconfigdient zum Anzeigen und Konfigurieren von Netzwerkschnittstellen. Von man ifconfig:

Ifconfig wird zum Konfigurieren der im Kernel residenten Netzwerkschnittstellen verwendet. Es wird beim Booten verwendet, um Schnittstellen nach Bedarf einzurichten. Danach wird es normalerweise nur beim Debuggen oder bei der Systemoptimierung benötigt.

Wenn keine Argumente angegeben sind, zeigt ifconfig den Status der aktuell aktiven Schnittstellen an . Wenn ein einzelnes Schnittstellenargument angegeben ist, wird nur der Status der angegebenen Schnittstelle angezeigt. Wenn ein Argument -a angegeben wird, wird der Status aller Schnittstellen angezeigt, auch derjenigen, die nicht aktiv sind. Ansonsten wird eine Schnittstelle konfiguriert.

(Hervorhebung meines)

Hier ifconfigwird der Status Ihrer derzeit aktiven Schnittstellen gemeldet.

| (Rohr)

Das Pipe-Zeichen - leitet die Ausgabe von |hier um,ifconfig und anstatt es Ihnen angezeigt zu werden, geht es stattdessen zugrep

grep

grep wird für den Musterabgleich verwendet und (normalerweise) wird gedruckt, was einem Muster entspricht oder nicht.

Hier sind die Optionen -Pund-o

-P:

Interpretieren Sie PATTERN als regulären Perl-Ausdruck (PCRE, siehe unten). Dies ist äußerst experimentell und grep -P warnt vor nicht implementierten Funktionen.

Regexes sind ein langes Thema 1, aber im Grunde lassen sich grepeinige zusätzliche Muster anpassen .

-o:

Drucken Sie nur die übereinstimmenden (nicht leeren) Teile einer übereinstimmenden Zeile, wobei sich jeder dieser Teile in einer separaten Ausgabezeile befindet.

(beide Zitate aus der grep-Manpage)

Diese Option besagt, grepdass wir nur an dem Teil interessiert sind, der mit dem Muster übereinstimmt, im Gegensatz zu der gesamten Linie (wenn sie übereinstimmt).

"HWaddr \ K. * $"

Dieser Teil sagt uns, dass wir nach der HWaddrMAC- oder Hardwareadresse suchen . \KLegt den Startpunkt des Ausdrucks fest (für die -oOption oben). .*sagt grep, jedes Zeichen ( .) so oft wie möglich zu finden ( *), zumindest bis zum Ende der Zeile ( $).

Ausgabe / Ergebnis

Alles in allem entnimmt der Befehl Informationen von ifconfigund sucht nach den Teilen, die der MAC-Adresse der Netzwerkschnittstellen im System entsprechen, und druckt diese jeweils in einer neuen Zeile aus.


1 : "Manche Leute denken, wenn sie mit einem Problem konfrontiert sind:" Ich weiß, ich verwende reguläre Ausdrücke. " Jetzt haben sie zwei Probleme. " Jamie Zawinski, 1997 (obwohl das Zitat oft aus dem Zusammenhang gerissen wird )