Linux内核是操作系统的核心,它控制对系统资源(例如CPU,I/O设备,物理内存和文件系统)的访问,内核在引导进程和系统运行时将各种消息写入内核环缓冲区,这些消息包括有关系统操作的各种信息。
内核环缓冲区是保存内核消息日志的物理内存的一部分,它有一个固定的大小,这意味着一旦缓冲区已满,旧的日志记录会被覆盖。
dmesg命令行程序用于在Linux和其他类unix操作系统中打印和控制内核环缓冲区,这对于检查内核启动消息和调试硬件相关问题很有用。
在本教程中,介绍dmesg命令的基本知识。
使用dmesg命令
dmesg命令的语法如下所示:dmesg [OPTIONS]
在没有选项的情况下调用dmesg将内核环缓冲区中的所有消息写入标准输出:dmesg
默认情况下,所有用户都可以运行dmesg命令,但是,在某些系统上,非root用户可能会被限制对dmesg的访问。在这种情况下,在调用dmesg时,你会得到如下所示的错误消息:dmesg: read kernel buffer failed: Operation not permitted
内核参数kernel.dmesg_restrict指定无特权的用户是否可以使用dmesg查看来自内核日志缓冲区的消息。要删除限制,将它设置为零:sudo sysctl -w kernel.dmesg_restrict=0
通常,输出包含大量信息行,因此只有输出的最后部分是可视的,要一次查看一页,请将输出通过管道传递给pager实用程序,例如less或more:dmesg --color=always | less