Linux dmesg commando uitleg voor beginners (5 voorbeelden)

Weet je dat de Linux kernel verschillende apparaatstuurprogramma’s laadt als het systeem opstart? In feite, als je systeem opgestart is en je sluit een hardware apparaat aan, dan wordt ook een bijbehorend apparaatstuurprogramma geladen. Natuurlijk doet de kernel ook een heleboel andere dingen. Wat als je info wilt weten met betrekking tot deze kernel activiteiten?

Wel, er bestaat een commando – dmesg genoemd – dat je kunt gebruiken als je toegang wilt krijgen tot berichten die door de kernel worden afgedrukt. In deze handleiding zullen we begrijpen hoe het gereedschap dmesg werkt aan de hand van enkele gemakkelijk te begrijpen voorbeelden.

Linux dmesg commando

Met het dmesg commando kun je de kernel ringbuffer afdrukken of controleren. Hierna volgt de syntaxis ervan:

dmesg [options]

En hier is hoe de man pagina van het gereedschap het uitlegt:

dmesg is used to examine or control the kernel ring buffer. The default action is to display all 
messages from the kernel ring buffer.

Hieronder volgen enkele vraag-antwoord-achtige voorbeelden die je een beter idee moeten geven over hoe het dmesg commando werkt.

Q1. Hoe gebruik je het commando dmesg?

Je kunt het dmesg commando zonder enige commandoregeloptie gaan gebruiken.

dmesg

Hier is bijvoorbeeld een klein deel van de uitvoer die het commando in mijn geval produceerde:

Hoe het commando dmesg te gebruiken

Q2. Hoe beperk je de uitvoer tot alleen fouten en waarschuwingen?

Als je dmesg op je systeem uitvoert, zul je merken dat het een overvloed aan informatie uitvoert. Afhankelijk van wat je zoekt, kun je de uitvoer willen filteren of beperken. Van zijn kant biedt dmesg je deze mogelijkheid via ‘levels’. Hieronder volgt de complete lijst van niveaus (samen met hun uitleg):

   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

Dus als je bijvoorbeeld de uitvoer wilt beperken tot alleen fouten en waarschuwingen, kun je dat op de volgende manier doen:

dmesg --level=err,warn

In mijn geval is hier een deel van de uitvoer die het bovenstaande commando produceerde:

Hoe beperk je de uitvoer tot alleen fouten en waarschuwingen

Q3. Hoe kan ik dmesg tijdstempels in de uitvoer laten produceren?

Soms wil je dat aan de berichten die dmesg produceert een tijdstempel wordt gekoppeld. Dit kan met de -T commandoregeloptie, die menselijk leesbare tijdstempels produceert.

dmesg -T

Hieronder volgt een voorbeeld uitvoer:

Hoe dmesg tijdstempels in de uitvoer te laten produceren

Zo zie je dat bij elk bericht een tijdstempel vooraf gezet wordt.

Q4. Hoe kan je dmesg info laten weergeven specifiek voor een apparaat?

Stel dat je wilt dat dmesg alleen info weergeeft die te maken heeft met de interface eth0. Hier staat hoe je dat kunt doen:

dmesg | grep -i eth0

Hieronder volgt een voorbeeld uitvoer:

Hoe dmesg info specifiek voor een apparaat te laten tonen

Q5. Hoe kan ik dmesg alleen userspace berichten laten weergeven?

Als je de uitvoer van dmesg alleen tot userspace berichten wilt beperken, gebruik dan de -u commandoregeloptie.

dmesg -u

Hoe dmesg alleen userpace berichten te laten tonen

Conclusie

Akkoord, dmesg is niet het soort commando dat je elke dag nodig zult hebben. Maar dit is het gereedschap waartoe je je wendt als iemand (die je om hulp over een bepaald onderwerp hebt gevraagd) je vraagt kernel boodschappen te geven. Ik heb dit geval meestal gezien op online gebruikersforums, waar ervaren gebruikers om kernel uitvoer vragen.

Hier, in deze zelfstudie, hebben we het dmesg commando besproken vanuit het oogpunt van beginners (gewoon om je op weg te helpen). Als je klaar bent met oefenen van alles wat we hier besproken hebben, ga dan naar de man pagina van het gereedschap.