# dmesg命令 * 一个非常重要的命令,用于显示内核环缓冲区(kernel ring buffer)中的消息日志。 * 它主要包含系统启动时和运行过程中内核产生的各种信息,比如设备驱动加载、硬件检测、错误警告等。 ## 基本信息 * **功能**:查看内核日志,尤其是启动和硬件相关的信息 * **应用场景**: * 查看系统启动过程的详细日志 * 诊断硬件问题(如设备识别、驱动加载) * 追踪内核错误和警告 * 监控设备状态变化 ### 🔧 基本用法 ```bash dmesg ``` 执行后,会打印出内核的所有日志信息,通常非常多,内容从系统开机开始一直到当前时刻。 ### 📋 常用选项 | 命令 | 功能说明 | | -------------------- | ---------------------- | | `dmesg` | 显示全部内核信息 | | `dmesg -H` | 以可读性增强(高亮 + 分页)方式查看 | | `dmesg -T` | 显示可读时间戳(而非内核启动时间) | | `dmesg | grep usb` | 查看 USB 插拔、识别情况 | | `dmesg | grep error` | 查看内核错误日志 | | `dmesg --level=err` | 只查看错误级别的内核信息 | | `dmesg --level=warn` | 只查看警告及以上信息 | | `dmesg -w` | 实时查看新产生的内核日志(watch 模式) | ### ✅ 使用建议 * **查看启动过程**:当系统启动异常时,`dmesg` 可以帮助找到加载硬件或模块失败的原因。 * **硬件检测**:新插入设备后,查看 `dmesg` 输出判断是否识别及驱动是否正常加载。 * **调试驱动**:开发或测试驱动时,驱动产生的内核日志会被 `dmesg` 捕获。 * **配合过滤**:使用 `grep` 过滤关键字提高定位效率。 --- ### ⚠️ 注意事项 * 需要足够权限查看全部日志,通常使用 `sudo dmesg` * 日志会随着内核缓冲区大小限制被覆盖,最新信息在后面 * 不是所有日志都直接反映问题,需要结合上下文判断 --- ## 📦 示例输出 ```bash $ 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 ... ... ... ```