So verwenden Sie den dmesg-Befehl unter Linux

Fatmawati Achmad Zaenuri/Shutterstock
Die |_+_| -Befehl können Sie in die verborgene Welt der Linux-Startprozesse blicken. Überprüfen und überwachen Sie Hardwaregeräte- und Treibernachrichten aus dem Kernel-eigenen Ringpuffer mit dem Freund des Fehlersuchers.
So funktioniert der Ringpuffer von Linux
Bei Linux- und Unix-ähnlichen Computern sind Booten und Starten zwei unterschiedliche Phasen der Abfolge von Ereignissen, die beim Einschalten des Computers stattfinden.
Der Bootprozesse ( BIOS oder UEFA , MBR , und RODEN ) Führen Sie die Initialisierung des Systems bis zu dem Punkt durch, an dem der Kernel in den Speicher geladen und mit der ursprünglichen Ramdisk verbunden wird ( initrd oder initramfs ), und System ist gestartet.
Der Startup-Prozesse Nehmen Sie dann den Taktstock und schließen Sie die Initialisierung des Betriebssystems ab. In den sehr frühen Stadien der Initialisierung werden Logging-Daemons wie z syslogd oder rsyslogd sind noch nicht in Betrieb. Um zu vermeiden, dass bemerkenswerte Fehlermeldungen und Warnungen aus dieser Phase der Initialisierung verloren gehen, enthält der Kernel a Ringpuffer die es als Nachrichtenspeicher verwendet.
Ein Ringpuffer ist ein für Nachrichten reservierter Speicherplatz. Es hat ein einfaches Design und eine feste Größe. Wenn es voll ist, überschreiben neuere Nachrichten die ältesten Nachrichten. Konzeptionell kann man es sich vorstellen als Ringpuffer .
AnzeigeDer Kernel-Ringpuffer speichert Informationen wie die Initialisierungsnachrichten von Gerätetreibern, Nachrichten von der Hardware und Nachrichten von Kernelmodulen. Da er diese Startmeldungen auf niedriger Ebene enthält, ist der Ringpuffer ein guter Ort, um eine Untersuchung von Hardwarefehlern oder anderen Startproblemen zu starten.
Aber gehen Sie nicht mit leeren Händen. Nimm |_+_| mit dir.
Der dmesg-Befehl
Die |_+_| Befehl erlaubt dir um die im Ringpuffer gespeicherten Nachrichten zu überprüfen . Standardmäßig müssen Sie |_+_| . verwenden um |_+_| zu verwenden.
dmesg
Alle Meldungen im Ringpuffer werden im Terminalfenster angezeigt.
Das war eine Flut. Was wir natürlich tun müssen ist Rohr es durch |_+_|:
dmesg
Jetzt können wir durch die Nachrichten scrollen und nach interessanten Elementen suchen.
Sie können die Suchfunktion innerhalb von |_+_| . verwenden um die für Sie interessanten Artikel und Begriffe zu finden und hervorzuheben. Starten Sie die Suchfunktion, indem Sie den Schrägstrich / in |_+_| drücken.
VERBUNDEN: So verwenden Sie den less-Befehl unter Linux
Entfernen der Notwendigkeit von sudo
Wenn Sie vermeiden möchten, |_+_| . verwenden zu müssen Jedes Mal, wenn Sie |_+_| verwenden, können Sie diesen Befehl verwenden. Aber seien Sie sich bewusst: Jeder mit einem Benutzerkonto auf Ihrem Computer kann |_+_| . verwenden ohne |_+_| verwenden zu müssen.
dmesg
Farbausgabe erzwingen
Standardmäßig ist |_+_| wird wahrscheinlich so konfiguriert sein, dass eine farbige Ausgabe erzeugt wird. Wenn nicht, können Sie |_+_| . erkennen um seine Ausgabe mit dem |_+_| . einzufärben (Farbe) Option.
sudo
Um |_+_| . zu erzwingen Um immer eine farbige Anzeige zu verwenden, verwenden Sie diesen Befehl:
dmesg
Menschliche Zeitstempel
Standardmäßig ist |_+_| Verwenden Sie eine Zeitstempelnotation von Sekunden und Nanosekunden seit dem Kernel gestartet. Um dies in einem benutzerfreundlicheren Format darzustellen, verwenden Sie das |_+_| (menschliche) Option.
less
Dies führt dazu, dass zwei Dinge passieren.
- Die Ausgabe wird automatisch in |_+_| angezeigt.
- Die Zeitstempel zeigen einen Zeitstempel mit Datum und Uhrzeit in Minutenauflösung. Die Nachrichten, die in jeder Minute aufgetreten sind, sind mit den Sekunden und Nanosekunden seit Beginn dieser Minute gekennzeichnet.
Von Menschen lesbare Zeitstempel
Wenn Sie keine Nanosekunden-Genauigkeit benötigen, aber Zeitstempel haben möchten, die leichter zu lesen sind als die Standardeinstellungen, verwenden Sie |_+_| (für Menschen lesbare) Option. (Es ist ein wenig verwirrend. |_+_| ist die menschliche Option, |_+_| ist die menschenlesbare Option.)
less
Die Zeitstempel werden als Standarddaten und -zeiten gerendert, die Auflösung ist jedoch auf eine Minute reduziert.
Alles, was innerhalb einer Minute passiert ist, hat denselben Zeitstempel. Wenn Sie sich nur um die Abfolge der Ereignisse kümmern, ist dies gut genug. Beachten Sie auch, dass Sie an der Eingabeaufforderung zurückgeladen werden. Diese Option ruft |_+_| nicht automatisch auf.
Live-Events ansehen
Um Nachrichten beim Eintreffen im Kernel-Ringpuffer anzuzeigen, verwenden Sie |_+_| (auf Nachrichten warten) Option. Dieser Satz mag ein wenig seltsam erscheinen. Wenn der Ringpuffer verwendet wird, um Meldungen von Ereignissen zu speichern, die während der Startsequenz stattfinden, wie können dann Live-Meldungen im Ringpuffer ankommen, wenn der Computer hochgefahren ist?
Alles, was eine Änderung der an Ihren Computer angeschlossenen Hardware verursacht, führt dazu, dass Nachrichten an den Kernel-Ringpuffer gesendet werden. Aktualisieren oder fügen Sie ein Kernel-Modul hinzu, und Sie sehen Ringpuffer-Meldungen zu diesen Änderungen. Wenn Sie ein USB-Laufwerk anschließen oder ein Bluetooth-Gerät anschließen oder trennen, werden Meldungen im |_+_| . angezeigt Ausgang. Auch virtuelle Hardware führt dazu, dass neue Nachrichten im Ringpuffer erscheinen. Starten Sie eine virtuelle Maschine, und Sie sehen, wie neue Informationen im Ringpuffer ankommen.
less
Beachten Sie, dass Sie nicht zur Eingabeaufforderung zurückkehren. Wenn neue Nachrichten erscheinen, werden sie durch |_+_| . angezeigt unten im Terminalfenster.
Sogar das Mounten einer CD-ROM wird als Änderung angesehen, da Sie den Inhalt der CD-ROM in den Verzeichnisbaum gepfropft haben.
Um den Echtzeit-Feed zu verlassen, drücken Sie |_+_|.
Abrufen der letzten zehn Nachrichten
Verwenden Sie den Schwanzbefehl die letzten zehn abrufen Kernel-Ringpuffernachrichten. Natürlich können Sie beliebig viele Nachrichten abrufen. Zehn ist nur unser Beispiel.
sudo
Die letzten zehn Nachrichten werden abgerufen und im Terminalfenster aufgelistet.
Nach bestimmten Begriffen suchen
Pipe die Ausgabe von |_+_| bis |_+_| nach bestimmten Zeichenfolgen oder Mustern suchen . Hier verwenden wir die |_+_| (Groß-/Kleinschreibung ignorieren) Option, damit die Groß-/Kleinschreibung von übereinstimmenden Zeichenfolgen ignoriert wird. Unsere Ergebnisse umfassen USB und USB sowie jede andere Kombination aus Klein- und Großbuchstaben.
dmesg
Die hervorgehobenen Suchergebnisse werden in Groß- und Kleinbuchstaben angezeigt.
Wir können die Nachrichten isolieren, die Verweise auf die erste enthalten SCSI Festplatte auf dem System |_+_|. (Eigentlich wird |_+_| heutzutage auch für die erste SATA-Festplatte , und für USB-Laufwerke.)
dmesg
Alle Nachrichten, die |_+_| . erwähnen werden abgerufen und im Terminalfenster aufgelistet.
Um |_+_| . zu machen Suchen Sie nach mehreren Begriffen gleichzeitig, verwenden Sie die |_+_| (regulären Ausdruck erweitern) Option. Sie müssen die Suchbegriffe innerhalb einer Zeichenfolge in Anführungszeichen mit Pipe | . angeben Trennzeichen zwischen den Suchbegriffen:
sudo
Jede Nachricht, die einen der Suchbegriffe erwähnt, wird im Terminalfenster aufgelistet.
Verwenden von Protokollebenen
Jeder Nachricht, die im Kernel-Ringpuffer protokolliert wird, ist eine Ebene angehängt. Die Ebene stellt die Bedeutung der Informationen in der Nachricht dar. Die Level sind:
- Verwenden Sie |_+_| um Nachrichten von den höchsten zu überprüfen eben nach unten durch jede niedrigere Ebene und suchen Sie nach Fehlern oder Warnungen, die das Hardwareelement erwähnen oder einen Einfluss auf das Problem haben könnten.
- Verwenden Sie |_+_| nach einer Erwähnung des entsprechenden suchen Einrichtung um zu sehen, ob sie nützliche Informationen enthalten.
- Rohr |_+_| bis |_+_| und suche verwandte Zeichenfolgen oder Bezeichner wie Produkthersteller oder Modellnummern.
- Rohr |_+_| bis |_+_| und suche nach allgemeine Begriffe wie GPU oder Speicher, oder Begriffe wie Fehler, fehlgeschlagen oder nicht möglich.
- Verwenden Sie die |_+_| Option und ansehen |_+_| Nachrichten in Echtzeit.
- & rsaquo; So überprüfen Sie die Linux-Kernel- und Betriebssystemversion
- & rsaquo; So verwenden Sie den Bildschirmbefehl von Linux
- › 5 Websites, die jeder Linux-Benutzer mit einem Lesezeichen versehen sollte
- & rsaquo; Cyber Monday 2021: Die besten Tech-Deals
- › Funktionen vs. Formeln in Microsoft Excel: Was ist der Unterschied?
- & rsaquo; Cyber Monday 2021: Die besten Apple-Angebote
- › So finden Sie Ihr Spotify Wrapped 2021
- › Der Computerordner ist 40: Wie Xerox Star den Desktop erstellte
Wir können |_+_| . machen Extrahieren Sie Nachrichten, die einem bestimmten Level entsprechen, indem Sie |_+_| . verwenden (level) und übergeben den Namen des Levels als Befehlszeilenparameter. Verwenden Sie diesen Befehl, um nur Nachrichten auf Informationsebene anzuzeigen:
dmesg
Alle aufgelisteten Nachrichten sind Informationsnachrichten. Sie enthalten keine Fehler oder Warnungen, sondern nur nützliche Benachrichtigungen.
Kombinieren Sie zwei oder mehr Protokollebenen in einem Befehl, um Nachrichten mehrerer Protokollebenen abzurufen:
dmesg
Die Ausgabe von |_+_| ist eine Mischung aus Nachrichten jeder Log-Ebene:
Die Anlagenkategorien
Die |_+_| Nachrichten werden in Kategorien gruppiert, die als Einrichtungen bezeichnet werden. Die Liste der Einrichtungen lautet:
Wir können |_+_| . fragen um seine Ausgabe so zu filtern, dass nur Nachrichten in einer bestimmten Einrichtung angezeigt werden. Dazu müssen wir |_+_| . verwenden (Einrichtung) Option:
-L
|_+_| listet alle Meldungen zu Daemons im Terminalfenster auf.
Wie bei den Levels können wir |_+_| . fragen um Nachrichten von mehr als einer Einrichtung gleichzeitig aufzulisten:
dmesg
Die Ausgabe ist eine Mischung aus Syslog- und Daemon-Log-Meldungen.
Kombination von Einrichtung und Ebene
Die |_+_| (dekodieren) Option macht |_+_| zeigen die Einrichtung und die Ebene als lesbare Präfixe für jede Zeile an.
dmesg
Die Einrichtung und das Niveau sind am Anfang jeder Zeile zu sehen:
Der erste hervorgehobene Abschnitt ist eine Nachricht von der Kernel-Einrichtung mit einer Benachrichtigungsstufe. Der zweite hervorgehobene Abschnitt ist eine Nachricht von der Kernel-Einrichtung mit einer Informationsebene.
Das ist toll, aber warum?
Kurz gesagt, Fehlersuche.
Wenn Sie Probleme damit haben, dass eine Hardware nicht erkannt wird oder sich nicht richtig verhält, |_+_| kann etwas Licht auf das Problem werfen.
Fröhliches Jagen.
VERBUNDEN: Beste Linux-Laptops für Entwickler und Enthusiasten
WEITER LESEN
Dave McKay benutzte zum ersten Mal Computer, als Lochstreifen in Mode waren, und programmiert seitdem. Nach über 30 Jahren in der IT-Branche ist er heute hauptberuflich Technologiejournalist. Im Laufe seiner Karriere war er als freiberuflicher Programmierer, Leiter eines internationalen Softwareentwicklungsteams, Projektleiter für IT-Services und zuletzt als Datenschutzbeauftragter tätig. Sein Schreiben wurde von howtogeek.com, cloudavvyit.com, itenterpriser.com und opensource.com veröffentlicht. Dave ist ein Linux-Evangelist und Open-Source-Verfechter.
Vollständige Biografie lesen