Wissen Sie, dass der Linux-Kernel beim Booten des Systems mehrere Gerätetreiber lädt? Wenn Ihr System betriebsbereit ist und Sie ein Hardwaregerät anschließen, wird auch ein entsprechender Gerätetreiber geladen. Natürlich erledigt der Kernel auch viele andere Dinge. Was ist, wenn Sie Informationen zu diesen Kernel-Aktivitäten wissen möchten?
Nun, es gibt einen Befehl namens dmesg, den Sie verwenden können, wenn Sie auf Nachrichten zugreifen möchten, die vom Kernel ausgegeben werden. In diesem Tutorial werden wir anhand einiger leicht verständlicher Beispiele verstehen, wie das dmesg-Tool funktioniert.
Linux-dmesg-Befehl
Mit dem Befehl dmesg können Sie den Ringpuffer des Kernels drucken oder steuern. Es folgt die Syntax:
dmesg [options]
Und so erklärt es die Manpage des Tools:
dmesg is used to examine or control the kernel ring buffer. The default action is to display all
messages from the kernel ring buffer.
Im Folgenden finden Sie einige Beispiele im Q&A-Stil, die Ihnen eine bessere Vorstellung davon vermitteln sollen, wie der Befehl dmesg funktioniert.
Q1. Wie verwende ich den dmesg-Befehl?
Sie können beginnen, den dmesg-Befehl ohne jede Befehlszeilenoption zu verwenden.
dmesg
Hier ist zum Beispiel ein kleiner Teil der Ausgabe, die der Befehl in meinem Fall erzeugt hat:
Q2. Wie kann die Ausgabe nur auf Fehler und Warnungen beschränkt werden?
Wenn Sie dmesg auf Ihrem System ausführen, werden Sie feststellen, dass es eine Fülle von Informationen ausgibt. Je nachdem, wonach Sie suchen, möchten Sie möglicherweise die Ausgabe filtern oder einschränken. dmesg seinerseits bietet Ihnen diese Fähigkeit durch 'Ebenen' an. Es folgt die vollständige Liste der Ebenen (zusammen mit ihrer Erklärung):
emerg - system is unusable
alert - action must be taken immediately
crit - critical conditions
err - error conditions
warn - warning conditions
notice - normal but significant condition
info - informational
debug - debug-level messages
Wenn Sie beispielsweise die Ausgabe nur auf Fehler und Warnungen beschränken möchten, können Sie dies folgendermaßen tun:
dmesg --level=err,warn
In meinem Fall ist hier ein Teil der Ausgabe des obigen Befehls:
Q3. Wie bringt man dmesg dazu, Zeitstempel in der Ausgabe zu erzeugen?
Manchmal möchten Sie vielleicht, dass den Nachrichten, die dmesg erzeugt, ein Zeitstempel zugeordnet wird. Dies kann mit der Befehlszeilenoption -T erfolgen, die für Menschen lesbare Zeitstempel erzeugt.
dmesg -T
Es folgt eine Beispielausgabe:
Damit Sie sehen können, dass jeder Nachricht ein Zeitstempel vorangestellt ist.
Q4. Wie kann man dmesg dazu bringen, Informationen speziell für ein Gerät anzuzeigen?
Angenommen, Sie möchten, dass dmesg nur Informationen zur eth0-Schnittstelle anzeigt. So können Sie das tun:
dmesg | grep -i eth0
Es folgt eine Beispielausgabe:
F5. Wie kann man dmesg dazu bringen, nur Userspace-Nachrichten anzuzeigen?
Wenn Sie die Ausgabe von dmesg nur auf Userspace-Meldungen beschränken möchten, verwenden Sie die Befehlszeilenoption -u.
dmesg -u
Schlussfolgerung
Zugegeben, dmesg ist nicht die Art von Befehl, den Sie jeden Tag brauchen werden. Aber dies ist das Tool, an das Sie sich wenden sollten, wenn jemand (den Sie um Hilfe zu einem bestimmten Thema gebeten haben) Sie auffordert, Kernel-Nachrichten bereitzustellen. Ich habe diesen Fall meistens in Online-Benutzerforen gesehen, wo erfahrene Benutzer nach Kernel-Ausgabe fragen.
Hier, in diesem Tutorial, haben wir den Befehl dmesg aus Anfängersicht besprochen (nur um Ihnen den Einstieg zu erleichtern). Wenn Sie alles, was wir hier besprochen haben, geübt haben, gehen Sie zur Manpage des Tools.