dmesg 是 Linux/Unix 系统中非常常用的一个命令,全称 display message,主要作用是 查看内核环形缓冲区(kernel ring buffer)中的消息。这些消息通常是系统启动过程、硬件驱动加载、内核模块运行、错误信息、硬件检测等输出。
dmesg 命令就是去读取这个缓冲区,并按顺序打印出来。/var/log/kern.log、/var/log/messages 中的内容会有重叠(因为 syslog/rsyslog/systemd-journald 也会收集内核消息)。查看开机信息
系统刚启动时,内核初始化硬件(CPU、内存、磁盘、网卡、驱动)都会输出信息,可以用 dmesg 来回溯。
硬件检测
插拔 USB、加载驱动、磁盘报错时,dmesg 会显示相关日志。
例如插入 USB 后:
dmesg | tail
排查问题
性能调优
比如 thermal(温度监控)、CPU 频率调节器、NUMA 配置等信息都能看到。
dmesg # 打印全部日志
dmesg | less # 分页查看
dmesg | grep usb # 过滤关键词
dmesg -T # 把时间戳转换成人类可读的时间
dmesg -l err # 只显示 error 级别日志
dmesg -w # 实时跟踪新日志(类似 tail -f)
-T-T 会转成人类时间(例如 2025-09-05 10:31:22)。-l <level>
日志等级(内核定义了8个级别):
dmesg 直接读内核缓冲区,不依赖 syslog。/var/log/kern.log 或 journalctl -k 也能看内核日志,但它们是日志系统保存的。dmesg 更偏向实时调试,比如插 USB、加载模块。