El comando dmesg (display message) es una herramienta fundamental para cualquier administrador de sistemas que necesita analizar los mensajes del kernel de GNU/Linux.


El comando dmesg (display message) es una herramienta fundamental para cualquier administrador de sistemas que necesita analizar los mensajes del kernel de GNU/Linux. Estos mensajes contienen información clave sobre el hardware, controladores y eventos del sistema que pueden ser cruciales para la resolución de problemas.

¿Para qué se utiliza el comando?

El comando dmesg se utiliza para mostrar los mensajes generados por el kernel del sistema operativo. Estos mensajes se almacenan en un buffer de anillo (ring buffer) y registran eventos relacionados con:

  • Inicio del sistema.
  • Detectores de hardware.
  • Controladores y módulos cargados.
  • Errores del sistema y problemas con el hardware.

Es una herramienta útil para diagnosticar problemas de hardware, analizar errores del sistema y comprender cómo se está ejecutando el kernel.

Sintaxis básica del comando

La sintaxis general del comando es:

dmesg [OPCIONES]

Donde las opciones permiten filtrar o formatear la salida para facilitar su lectura. Algunas de las opciones más comunes son:

  • -T: Muestra las marcas de tiempo de los mensajes en un formato legible para humanos.
  • --level=[nivel]: Filtra los mensajes por nivel de severidad (por ejemplo, err, warn, info).
  • -k o --kernel: Muestra solo los mensajes del kernel.
  • --follow: Permite seguir los mensajes en tiempo real, similar a tail -f.
  • -c: Borra el buffer después de mostrar los mensajes.

Ejemplos prácticos del comando

A continuación os explicamos algunos ejemplos prácticos sobre el uso del comando.

Ver todos los mensajes del kernel

El uso básico de dmesg muestra todos los mensajes en el buffer del kernel:

$ dmesg
[    0.000000] Linux version 5.15.0 (gcc version 11.3.0)
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz root=/dev/sda1 ro
[    0.123456] Initializing cgroup subsys cpuset

Mostrar marcas de tiempo legibles para humanos

La opción -T convierte las marcas de tiempo en un formato fácil de entender:

$ dmesg -T
[Tue Jan 27 10:15:30 2025] Linux version 5.15.0 (gcc version 11.3.0)
[Tue Jan 27 10:15:30 2025] Command line: BOOT_IMAGE=/boot/vmlinuz root=/dev/sda1 ro
[Tue Jan 27 10:15:30 2025] Initializing cgroup subsys cpuset

Filtrar mensajes por nivel de severidad

Puedes mostrar solo mensajes específicos, como errores, con --level:

$ dmesg --level=err
[    1.234567] usb 2-1: device descriptor read/64, error -71

Seguir los mensajes en tiempo real

Con la opción --follow, puedes monitorear eventos nuevos a medida que ocurren:

$ dmesg --follow
[ 1234.567890] usb 2-1: USB disconnect, device number 5
[ 1234.890123] usb 2-1: new high-speed USB device number 6 using ehci-pci

Limpiar el buffer después de mostrar los mensajes

La opción -c borra los mensajes actuales del buffer después de mostrarlos:

$ dmesg -c
[    0.000000] Linux version 5.15.0 (gcc version 11.3.0)
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz root=/dev/sda1 ro

Buscar mensajes relacionados con hardware específico

Puedes combinar dmesg con grep para filtrar mensajes específicos. Por ejemplo, para encontrar mensajes sobre USB:

$ dmesg | grep usb
[    1.234567] usb 2-1: device descriptor read/64, error -71
[    2.345678] usb 2-1: new high-speed USB device number 6 using ehci-pci

Conclusión

El comando dmesg es una herramienta poderosa para cualquier administrador de sistemas, ya que proporciona una ventana al comportamiento del kernel y los eventos de hardware. Su dominio permite diagnosticar problemas, analizar el estado del sistema y solucionar errores de manera efectiva. Prueba los ejemplos mostrados y explora sus opciones para aprovechar al máximo esta utilidad indispensable.


¿Buscas otro comando?

¡Revisa nuestro "Diccionario de comandos para GNU/Linux"!

Diccionario de comandos para GNU/Linux
Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación