dmesg命令

  • 一个非常重要的命令,用于显示内核环缓冲区(kernel ring buffer)中的消息日志。

  • 它主要包含系统启动时和运行过程中内核产生的各种信息,比如设备驱动加载、硬件检测、错误警告等。

基本信息

  • 功能:查看内核日志,尤其是启动和硬件相关的信息

  • 应用场景

    • 查看系统启动过程的详细日志

    • 诊断硬件问题(如设备识别、驱动加载)

    • 追踪内核错误和警告

    • 监控设备状态变化

🔧 基本用法

dmesg

执行后,会打印出内核的所有日志信息,通常非常多,内容从系统开机开始一直到当前时刻。

📋 常用选项

命令

功能说明

dmesg

显示全部内核信息

dmesg -H

以可读性增强(高亮 + 分页)方式查看

dmesg -T

显示可读时间戳(而非内核启动时间)

`dmesg

grep usb`

`dmesg

grep error`

dmesg --level=err

只查看错误级别的内核信息

dmesg --level=warn

只查看警告及以上信息

dmesg -w

实时查看新产生的内核日志(watch 模式)

✅ 使用建议

  • 查看启动过程:当系统启动异常时,dmesg 可以帮助找到加载硬件或模块失败的原因。

  • 硬件检测:新插入设备后,查看 dmesg 输出判断是否识别及驱动是否正常加载。

  • 调试驱动:开发或测试驱动时,驱动产生的内核日志会被 dmesg 捕获。

  • 配合过滤:使用 grep 过滤关键字提高定位效率。


⚠️ 注意事项

  • 需要足够权限查看全部日志,通常使用 sudo dmesg

  • 日志会随着内核缓冲区大小限制被覆盖,最新信息在后面

  • 不是所有日志都直接反映问题,需要结合上下文判断


📦 示例输出

$ dmesg
[    0.000000] Linux version 6.8.0-21-generic (buildd@ubuntu) ...
[    0.045678] pci 0000:00:1f.2: SATA controller detected
[    1.234567] usb 1-1: new high-speed USB device number 2 using xhci_hcd
[    3.567890] snd_hda_intel 0000:00:1f.3: detected codec ...
... ...