Verwendung von lshw unter Linux (mit einem praktischen Beispiel)

0
13

Was wäre, wenn es einen Befehl gäbe, mit dem Sie auf einfache Weise to-read-Format, die gesamte Hardware in Ihrem Linux-System anzeigen? Willkommen bei lshw, dem großartigen Tool, das selbst von erfahrenen Linux-Profis oft übersehen wird.

Was ist lshw?

< p>lshw, Ein Dienstprogramm oder besseres Tool, das standardmäßig bei der Installation von Linux installiert wird, bietet Ihnen eine Liste der Hardware, die in Ihrem System gefunden wird. Man kann sich lshw merken, indem man an ls (der Befehl zum Auflisten von Verzeichnisinhalten) und hw für Hardware denkt.

Das Tool hat zwar eine ganze Reihe von Formatierungsoptionen, liefert aber eine detaillierte Ausgabe für die gefundenen Geräte und kann eine solide Anzahl von Gerätetypen erkennen, selbst erfahrene Linux-Profis haben möglicherweise noch nichts davon gehört. Vielleicht haben andere Tools zu viel Front-Posting in Suchmaschinen und ähnlichem in Anspruch genommen.

Derzeit kann das Tool DMI (x86 und IA-64), OpenFirmware-Gerätebaum (PowerPC), PCI/AGP, CPUID (x86), IDE/ATA/ATAPI, PCMCIA, SCSI und USB-Geräte erkennen.

< p>Sie können sogar eine grafische Version desselben Tools mit einem separaten Paket installieren, nämlich lshw-gtk. Während lshw nicht installiert werden muss und standardmäßig von Linux enthalten ist, installieren Sie lshw-gtk:

Installieren von lshw-gtk

So installieren Sie lshw-gtkFühren Sie auf Ihrer Debian/Apt-basierten Linux-Distribution (wie Ubuntu und Mint) den folgenden Befehl in Ihrem Terminal aus:

sudo apt install lshw-gtk

Werbung

Zur Installation < i>lshw-gtk auf Ihrer RedHat/Yum-basierten Linux-Distribution (wie RHEL, Centos und Fedora), führen Sie den folgenden Befehl in Ihrem Terminal aus:

sudo yum install lshw-gtk

Wenn Sie lshw-gtk installieren, beachten Sie bitte, dass dieses Tool einige Besonderheiten aufweist, die möglicherweise nicht zu erwarten sind. Für den Anfang wird empfohlen, dass Sie sudo lshw-gtk an der Eingabeaufforderung Ihres Terminals verwenden, um lshw-gtk zu starten, da sonst möglicherweise nicht alle Hardwareinformationen verfügbar sind.

Als Nächstes, wenn Sie das Tool gestartet haben, werden Sie die Schaltfläche Aktualisieren oben drücken möchten, da lshw-gtk standardmäßig keine Hardware scannt, sondern nur bei Bedarf.

Endlich, wenn Ihre Hardware ein paar Sekunden später gescannt wird , scheint die Ausgabe bis auf einen einzelnen Desktop-Computer zu fehlenin der Spalte ganz links. Doppelklicken Sie darauf, dann doppelklicken Sie zum Beispiel auf Motherboard in der zweiten Spalte und so weiter. Nach meiner eigenen Erfahrung habe ich festgestellt, dass dieses spezielle GUI-Tool während der Arbeit etwas eingeschränkt ist.

Kennen Sie den Unterschied zwischen einem Absturz und einem Fehler und einem Assert? Unser Artikel zu Asserts, Errors und Crashes erklärt den Unterschied.

Erkunden von lshw am Linux-Terminal

Wenn Sie lshw auf Ihrem Linux-Terminal ausführen (was normalerweise durch Drücken der Windows-Taste + T auf Ihrer Tastatur oder durch Drücken des Hauptsymbols des Betriebssystems (wie der grüne Kreis in Linux Mint) und Eingabe von Terminal) sehen Sie eine lange und ausführliche Ausgabe der Hardware. lshw tat, was ihm aufgetragen wurde; alle Hardware auflisten.

Werbung

Lassen Sie uns diese Arbeit etwas verbessern, indem wir die Ausgabe auf das beschränken, was uns interessiert. Zuerst sollten wir die Hardware-Ausgabeklassen untersuchen, die uns zur Verfügung stehen.

Wir können dies mit lshw -short tun , die gleichzeitig eine kürzere und deutlich lesbarere Übersicht unserer Hardware ermöglicht. Die Ausgabeliste kann jedoch je nach Terminaleinstellungen 1-2 Seiten lang sein.

Wir sollten an dieser Stelle auch daran denken, immer lshw mit sudo zu verwenden. Dadurch wird sichergestellt, dass die Ausgabe nicht unvollständig oder ungenau ist. Das Ausführen von lshw als sudo sollte sicher sein (berühmte letzte Worte!), da lshw standardmäßig in den Kernverteilungsdateien des Linux-Betriebssystems enthalten ist; man würde hoffen, dass es gründlich evaluiert wurde.

sudo lshw -short | head -n6

Hier haben wir eine kurze Liste aller Hardware angefordert, die lshw verwendet – short, als Root-Superuser mit sudo ausgeführt und mit head -n6 auf die ersten sechs Ausgabezeilen beschränkt. Wir pfeifendie Ausgabe von lshw nach head mithilfe einer Linux-Pipe | Dies ist eine sehr praktische Methode zum nachträglichen Parsen von Informationen, die von einem Tool in fast jedes andere erforderliche Format gerendert wurden.

Wenn wir dies in VirtualBox ausführen, sehen wir sofort eine interessante Information: lshw ist sich bewusst, dass das System und Bus basiert auf VirtualBox. Wir sehen auch, dass dieser VM (Virtual Machine) 8 GiB Arbeitsspeicher zugewiesen wurden.

Werbung

Wichtig ist auch, dass wir die aufgelistete Geräteklasse sehen können, die wir in unserem nächsten lshw-Beispiel verwenden werden. Die in lshw verwendeten Geräteklassennamen sind einfach und leicht zu merken; Es gibt System, Bus, Speicher, Bridge, Generic, Multimedia, Disk, Input, Volume, Display, Network, Processor und möglicherweise noch einige andere.

Verwenden einer Geräteklasse zum Abfragen mit lshw

Nachdem wir nun die Geräteklassennamen kennen, verwenden wir dasselbe in Kombination mit der Option -class (die mit -C abgekürzt werden kann), um nur nach bestimmten Geräten abzufragen, an denen wir interessiert sind. Was wäre zum Beispiel, wenn wir ein einfache Möglichkeit zu erkennen, ob das von uns verwendete System eine virtualisierte Maschine ist, die speziell unter VirtualBox läuft?

sudo lshw -short -C system sudo lshw -short -C system 2>/dev/null | grep -o 'VirtualBox' if [ “$(sudo lshw -short -C system 2>/dev/null | grep -o 'VirtualBox')” == 'VirtualBox' ]; dann echo 'Wir verwenden VirtualBox!'; else echo 'Dies ist keine VirtualBox-VM!'; fi

Hier haben wir mehrere Befehle ausgeführt, wobei der Befehl jedes Mal komplexer wurde. Im ersten Befehl fragen wir einfach wie zuvor lshw ab, diesmal jedoch mit der zusätzlichen Systemoption -C, um nur Geräte aus der Systemklasse aufzulisten.

Nach kurzem Scannen (im Screenshot nicht zu sehen) , da die Ausgabe nach Abschluss des Scanvorgangs verschwindet), werden die Geräte der Systemklasse angezeigt, in diesem Fall das VirtualBox-System.

Im nächsten Befehl grep (select) nur für (dank der Option -o) das Wort ‘VirtualBox’. Wenn die Ausgabe kein ‘VirtualBox’ enthält, liefert der Befehl keine Ausgabe.

Wir haben auch eine stderr (Standardfehlerausgabe) Umleitung zu/hinzugefügt. dev/null mit 2>/dev/null für den seltenen Fall, in dem sudo lshw einen Fehler ausgeben würde. Dies ist eine häufig verwendete Skripttechnik, wenn Informationen von einem Befehl zu einem anderen weitergeleitet werden, obwohl hier vielleicht nur eine geringe Möglichkeit eines Fehlers besteht (aber nicht unmöglich).

Werbung

Im letzten Befehl fügen wir diesen Code in eine Subshell ($(…)) und dann in eine if-Anweisung ein. Im Grunde bitten wir den Bash-Interpreter zu überprüfen, ob die Ausgabe des zweiten Befehls mit ‘VirtualBox’ übereinstimmt.

Wenn ja, können wir ziemlich sicher sagen Wir verwenden VirtualBox! . Wenn Sie diesen Code auf Ihrem Computer ausführen, vorausgesetzt, Sie verwenden Bash als Befehlszeileninterpreter/Shell und verwenden nicht VirtualBox, sollte die Ausgabe stattdessen Dies ist keine VirtualBox-VM! sein .

Zusammenfassung

In diesem Artikel haben wir lshw und lshw-gtk untersucht, die Linux-Tools zum Erhalt detaillierter Hardware und Systeme Informationen von der Befehlszeile und von einer GUI auf Ihrem Desktop aus. Nachdem wir lshw-Geräteklassen untersucht haben, haben wir uns auch direkt mit den lshw-Informationen befasst, um festzustellen, ob wir in VirtualBox ausgeführt werden oder nicht.

Wenn Ihnen das Lesen dieses Artikels gefallen hat, möchten Sie vielleicht lesen How to Use strace to Trace Als nächstes Systemaufrufe und Signale!