📜  如何在 Linux 上使用 dmesg 命令

📅  最后修改于: 2022-05-13 01:57:34.752000             🧑  作者: Mango

如何在 Linux 上使用 dmesg 命令

dmesg是一个显示消息命令,用于在类 Unix 系统上显示与内核相关的消息。它用于控制内核环形缓冲区。输出包含设备驱动程序生成的消息。

dmesg 命令的使用:

当我们执行命令“dmesg”时,所有从内核环形缓冲区接收到的消息都会显示出来,这里只显示最新的消息。这用于检查存储在内核环形缓冲区中的消息。在非 root 用户的情况下,使用“sudo”在没有 root 的情况下运行 root 级别的命令。

$ sudo dmesg

虽然我们使用 dmesg 命令它会提供大量输出,但我们可以使用 tail、head 或 less 命令来逐页查看日志。在正斜杠“/”的帮助下搜索您选择的特定日志或术语以在更少范围内进行搜索

$ sudo dmesg | less

dmesg 默认提供彩色输出,如上所示,但如果您想对其进行着色以正确理解消息,则可以使用“L”命令对其进行着色



$ sudo dmesg -L

dmesg 使用以秒和纳秒为单位的时间戳,对于人性化的格式,使用“H”选项作为时间戳。同样显示在less中。在时间戳中,它显示日期和时间。每分钟发生的消息被标记为秒和纳秒。

$ sudo dmesg -H

我们使用-T (人类可读)选项,因为它们以标准日期和时间显示。在此选项中,分辨率降低一分钟

$ sudo dmesg -T

监控实时日志–follow选项与 dmesg 一起使用,它在终端底部显示最近的消息

$ sudo dmesg --follow

正如我们看到的 dmesg 给出了大量输出,我们可以使用 tail 或 head 选项列出特定数量的消息并查看它们。这里我们使用head 选项检查前 10 条消息



$ sudo dmesg | head -10

使用tail 选项显示最后 10 条消息

$ sudo dmesg | tail -10

在这里,我们将使用-i(忽略)选项通过扫描 dmesg 输出来搜索特定的字符串或模式或消息,但此选项将忽略字符串的大小写,并且只会关注我们搜索的字符串。在结果中,它将显示“USB”和“usb”组合的消息

$ sudo dmesg | grep -i usb

使用带有 dmesg 的 grep 命令搜索与内存、RAM、硬盘或 USB 驱动器相关的消息。这里 grep 与“sda”一起使用来检查内核检测到了哪些硬盘。 sda 命令用于检查硬盘,并将在列出 sda 的任何地方显示消息

$ sudo dmesg | grep -i sda

为记录到内核环形缓冲区的每条消息分配一个级别。级别代表信息在通信中的重要性。级别如下:

  • 紧急:系统无法使用。
  • 警告:必须立即采取行动。
  • crit:临界条件。
  • 错误:错误条件。
  • 警告:警告条件。
  • 注意:正常但重要的情况。
  • 信息:信息。
  • 调试:调试级别的消息。

使用带有 dmesg 的-l(级别)选项提取消息,后跟级别名称。在这里,我们使用级别“info”和 dmesg 命令列出所有信息性消息,它们将显示需要和重要的通知。

$ sudo dmesg -l info



要提取具有多个日志级别的消息,我们必须组合两个或多个日志级别。在这里,我们使用“调试和通知”日志级别来提取消息。

$ sudo dmesg -l debug,notice

组合多个日志级别的另一个示例是“err and warn” ,它将显示错误日志和警告日志

$ sudo dmesg --level=err,warn

显示eth0 用户界面的dmesg 消息使用 grep 选项后跟eth0

$ sudo dmesg | grep -i eth0

使用工具选项 -f过滤 dmesg 消息,它将显示特定工具“守护进程”的消息。

$ sudo dmesg -f daemon

-x(解码)选项用于以人类可读的格式将设施和级别显示为每一行的前缀。

$ sudo dmesg -x