内核日志查看:dmesg命令
dmesg
是 Linux 系统中用于 查看或控制内核环形缓冲区 的命令行工具。它主要用于显示系统启动时的硬件检测信息、内核日志以及运行时的硬件/驱动相关事件(如 USB 设备插拔、磁盘挂载等)。以下是 dmesg
的详细说明:
基本功能
- 查看内核日志:直接运行
dmesg
会输出内核环形缓冲区中的全部日志。 - 实时监控硬件事件:例如插入 U 盘、硬盘故障等事件会实时记录到内核日志中。
常用命令格式
dmesg [选项]
常用选项
选项 | 作用 |
---|---|
-d 或 --display | 显示可读的时间戳格式(如 [Mon Jan 1 12:00:00 2023] ) |
-H 或 --human | 以更友好的格式显示日志(自动分页,需配合 less ) |
-T 或 --ctime | 将时间戳转换为本地时间(需内核支持) |
-k | 仅显示内核消息(默认行为) |
-l <级别> | 按日志级别过滤(如 -l err 显示错误信息) |
-w 或 --follow | 实时监控新日志(类似 tail -f ) |
-C 或 --clear | 清空内核环形缓冲区 |
-s <大小> | 设置缓冲区大小(默认 16392 字节) |
示例
-
查看所有内核日志:
dmesg
-
显示可读时间戳并分页查看:
dmesg -H | less
-
过滤错误和警告信息:
dmesg -l err,warn
-
实时监控新日志:
dmesg -w
-
查找特定硬件信息(如 USB):
dmesg | grep -i usb
-
清空内核缓冲区(需 root 权限):
sudo dmesg -C
日志级别
内核日志按优先级分类,可通过 -l
过滤:
emerg
:系统不可用alert
:需要立即处理crit
:严重错误err
:一般错误warn
:警告notice
:普通但重要的事件info
:提示信息debug
:调试信息
应用场景
- 硬件故障排查:如硬盘错误、USB 设备无法识别。
- 驱动问题分析:驱动加载失败或兼容性问题。
- 系统启动问题:查看启动阶段的内核初始化日志。
- 性能监控:分析内核层面的性能事件(如中断、内存分配)。
注意事项
- 普通用户可能需要
sudo
权限才能执行某些操作(如清空缓冲区)。 - 内核环形缓冲区大小有限,旧日志会被新事件覆盖。
- 系统日志文件(如
/var/log/kern.log
)会持久化存储dmesg
内容,适合长期排查。
替代工具
journalctl
(Systemd 系统):journalctl -k # 等同于 dmesg journalctl --dmesg --follow # 实时监控
掌握 dmesg
能帮助你快速定位系统底层问题,尤其在无 GUI 环境的服务器场景中非常实用!