/sbin/lspci -nnk | grep -EiA3 '3d|display|vga' n
Das ist eine Befehlskette von zwei Befehlen.
| bewirkt, dass die Ausgabe von lspci weitergeleitet wird und als Eingabe für grep verwendet wird.
Beide Befehle haben noch Optionen.
lspci ist LiSte alle geräte auf dem PCI bus.
-nn sagt dem Befehl, dass er die Vendor- und DeviceID ausgeben soll.
und -k gibt das vom Kernel für dieses Gerät verwendete Treibermodul mit aus.
Da es sehr viele Geräte gibt, wird das gefiltert. Dazu wird die riesige Ausgabe von lspci weitergeleitet | zu dem grep, dem GlobalRegularExpressionPrinter
Beide Befehle werden mit | verkettet. 'Damit wird die Ausgabe des lspci Befehls zur Verarbeitung an grep weitergeleitet.
Und beide Befehle werden mit Optionen aufgerufen. Optionen beginnen (fast) immer mit einem - oder mit --.
lspci heißt LiSte alle Geräte, die am PCI Bus angeschlossen sind.
-nn und gib bitte die Vendor- und Device IDs mit aus.
-k außerdem noch zusätzlich die Kernelmodule, die für diese Geräte jeweils verwendet werden.
Man kann oft die Optionen zusammenschreiben. -nn -k ist das gleiche, wie -nnk.
grep ist der GlobalRegularExpressionPrinter. Ein RegularExpression (regulärer Ausdruck) ist ein Textsuchmuster. Die können höllisch kompliziert die komplexesten Suchaufgaben erledigen. Es gibt davon unzählige Implementierungen. So ziemlich jede Programmiersprache kennt sie ebenfalls. Man sollte sie in jedem Falle lernen. Sie sind außerordentlich nützlich.
-E wählt die ExtendedRegEXmaschine von grep aus.
-i schaltet Groß- Kleinschreibung ab. Sie ist also egal, und egal ob "vga" oder "VGA" im Text steht, beide Schreibweisen führen zu einem Treffer.
Generell werden Texte zeilenweise verarbeitet. Es wird eine Zeile gelesen, die verarbeitet und dann ausgegeben. Danach wird die nächste gelesen, verarbeitet usw.
-A3 weist den grep Befehl an -After, also nachdem eine passende Zeile gefunden wurde noch 3 weitere Zeilen mit auszugeben.
Zuletzt kommt noch der Reguläre Ausdruck selbst.
'3d|display|vga' Der ist in zwei einfachen Hochkommata eingeschlossen, damit die Bash den Ausruck nicht selbst interpretiert. Der | wäre für die Bash ja der Befehlsverkettungsoperator. Alles, was innerhalb einfacher Hochkommata steht, wird von der ausführenden Shell (bei openSUSE ist das die Bash) nicht interpretiert. Das wird also buchstäblich an den Befehl weitergereicht.
Innerhalb eines RegExes bedeutet das | ein logisches ODER.
Wir lassen grep in der Ausgabe von lspci also nach Zeilen suchen, die ohne auf Groß- und Kleinschreibung zu achten, die entweder 3d ODER| display ODER| vga enthalten.
Wenn grep eine solche Zeile findet, wird sie mit den drei nachfolgenden Zeilen gedruckt.
Der Rest verschwindet im Nirvana.
Mit dieser Ausgabe wissen wir dann ganz genau welche Graphikkarte(n) bei dir verbaut sind.
Die Zeichenketten 3d, display, und vga gibt es nur bei Graphikkarten. Und mit der VendorID und der DeviceID ist jeder Chip eindeutig identifiziert. Und zwar der Chip selbst, nicht das Marketinggedöns drumrum.
Bitte bemühe dich hier anständig zu posten.
Verwende Code-Tags!
(Ich lese keine Posts, die nicht korrekt Code-Tags verwenden; ist mir zu mühsam)