Linux dmesg 命令初学者教程(5 个示例)
在此页
- Linux dmesg 命令
- Q1。如何使用 dmesg 命令?
- Q2。如何将输出仅限于错误和警告?
- Q3。如何让 dmesg 在输出中产生时间戳?
- Q4。如何使 dmesg 显示特定于设备的信息?
- Q5。如何让 dmesg 只显示用户空间消息?
- 结论
您知道 Linux 内核在系统启动时会加载多个设备驱动程序吗?事实上,当你的系统启动并运行时,你连接了一个硬件设备,相应的设备驱动程序也会被加载。当然,内核还做了很多其他的事情。如果您想了解与这些内核活动相关的信息怎么办?
好吧,有一个命令 - 称为 dmesg - 如果你想访问内核打印的消息,你可以使用它。在本教程中,我们将使用一些易于理解的示例来了解 dmesg 工具的工作原理。
Linux dmesg 命令
dmesg 命令可让您打印或控制内核环形缓冲区。以下是它的语法:
dmesg [options]
以下是工具手册页对其的解释:
dmesg is used to examine or control the kernel ring buffer. The default action is to display all
messages from the kernel ring buffer.
以下是一些 Q&A 风格的示例,可以让您更好地了解 dmesg 命令的工作原理。
Q1。如何使用 dmesg 命令?
您可以开始使用没有任何命令行选项的 dmesg 命令。
dmesg
例如,这是在我的案例中生成的命令的一小部分输出:

Q2。如何将输出仅限于错误和警告?
如果您在系统上运行 dmesg,您会观察到它输出过多的信息。根据您要查找的内容,您可能希望过滤或限制输出。就其本身而言,dmesg 通过关卡为您提供这种能力。以下是完整的级别列表(及其说明):
emerg - system is unusable
alert - action must be taken immediately
crit - critical conditions
err - error conditions
warn - warning conditions
notice - normal but significant condition
info - informational
debug - debug-level messages
因此,例如,如果你想将输出限制为仅错误和警告,你可以通过以下方式进行:
dmesg --level=err,warn
在我的例子中,这是上面命令产生的输出的一部分:

Q3.如何让 dmesg 在输出中产生时间戳?
有时,您可能希望将时间戳与 dmesg 生成的消息相关联。这可以使用 -T 命令行选项来完成,它会生成人类可读的时间戳。
dmesg -T
以下是示例输出:

所以你可以看到每条消息都预先固定了时间戳。
Q4.如何使 dmesg 显示特定于设备的信息?
假设您希望 dmesg 仅显示与 eth0 接口相关的信息。你可以这样做:
dmesg | grep -i eth0
以下是示例输出:

Q5.如何让 dmesg 只显示用户空间消息?
如果您想将 dmesgs 输出限制为用户空间消息,请使用 -u 命令行选项。
dmesg -u

结论
同意,dmesg 不是您每天都需要的那种命令。但这是当某人(您已就某个主题向其寻求帮助)要求您提供内核消息时求助的工具。我主要是在在线用户论坛上看到这种情况,有经验的用户会要求提供内核输出。
在本教程中,我们从初学者的角度讨论了 dmesg 命令(只是为了让您入门)。练习完我们在这里讨论的所有内容后,请转到工具手册页。