Savez-vous que le noyau Linux charge plusieurs pilotes de périphériques lorsque le système démarre ? En fait, lorsque votre système est opérationnel et que vous connectez un périphérique matériel, un pilote de périphérique correspondant est également chargé. Bien sûr, le noyau fait aussi beaucoup d'autres choses. Et si vous voulez connaître les informations relatives à ces activités du noyau ?
Eh bien, il existe une commande - appelée dmesg - que vous pouvez utiliser si vous souhaitez accéder aux messages imprimés par le noyau. Dans ce didacticiel, nous allons comprendre le fonctionnement de l'outil dmesg à l'aide d'exemples faciles à comprendre.
Commande Linux dmesg
La commande dmesg vous permet d'imprimer ou de contrôler le tampon circulaire du noyau. Voici sa syntaxe :
dmesg [options]
Et voici comment la page de manuel de l'outil l'explique :
dmesg is used to examine or control the kernel ring buffer. The default action is to display all
messages from the kernel ring buffer.
Voici quelques exemples sous forme de questions-réponses qui devraient vous donner une meilleure idée du fonctionnement de la commande dmesg.
Q1. Comment utiliser la commande dmesg ?
Vous pouvez commencer à utiliser la commande dmesg sans aucune option de ligne de commande.
dmesg
Par exemple, voici une petite partie de la sortie de la commande produite dans mon cas :
Q2. Comment limiter la sortie uniquement aux erreurs et aux avertissements ?
Si vous exécutez dmesg sur votre système, vous constaterez qu'il génère une pléthore d'informations. Selon ce que vous recherchez, vous souhaiterez peut-être filtrer ou limiter la sortie. Pour sa part, dmesg vous offre cette possibilité à travers des « niveaux ». Voici la liste complète des niveaux (avec leur explication) :
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
Ainsi, par exemple, si vous souhaitez limiter la sortie aux seules erreurs et avertissements, vous pouvez le faire de la manière suivante :
dmesg --level=err,warn
Dans mon cas, voici une partie de la sortie produite par la commande ci-dessus :
Q3. Comment faire en sorte que dmesg produise des horodatages en sortie ?
Parfois, vous voudrez peut-être qu'un horodatage soit associé aux messages produits par dmesg. Cela peut être fait en utilisant l'option de ligne de commande -T, qui produit des horodatages lisibles par l'homme.
dmesg -T
Voici un exemple de sortie :
Ainsi, vous pouvez voir qu'un horodatage est préfixé avec chaque message.
Q4. Comment faire en sorte que dmesg affiche des informations spécifiques à un appareil ?
Supposons que vous souhaitiez que dmesg affiche uniquement les informations relatives à l'interface eth0. Voici comment procéder :
dmesg | grep -i eth0
Voici un exemple de sortie :
Q5. Comment faire en sorte que dmesg n'affiche que les messages de l'espace utilisateur ?
Si vous souhaitez limiter la sortie de dmesg uniquement aux messages de l'espace utilisateur, utilisez l'option de ligne de commande -u.
dmesg -u
Conclusion
D'accord, dmesg n'est pas le genre de commande dont vous aurez besoin tous les jours. Mais c'est l'outil vers lequel se tourner lorsque quelqu'un (à qui vous avez demandé de l'aide sur un certain sujet) vous demande de fournir des messages du noyau. J'ai surtout vu ce cas dans des forums d'utilisateurs en ligne, où des utilisateurs expérimentés demandent la sortie du noyau.
Ici, dans ce tutoriel, nous avons discuté de la commande dmesg du point de vue des débutants (juste pour vous aider à démarrer). Une fois que vous avez fini de pratiquer tout ce dont nous avons discuté ici, rendez-vous sur la page de manuel de l'outil.