社区编辑申请
注册/登录
分享 Linux 中容易被遗忘的故障排除工具
系统 Linux
dmesg 是一个显示消息命令,用于在 Linux系统上显示与内核相关的消息。它用于控制内核环形缓冲区。输出包含设备驱动程序产生的消息。

dmesg 命令的用法:

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg | less

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg -L

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg -H

我们使用-T(友好的显示)选项,因为它们以标准日期和时间显示。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg -T

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg --follow

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg | head -10

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg | tail -10

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg | grep -i usb

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg | grep -i sda

每个记录到内核环形缓冲区的消息都被分配一个级别。层次代表了信息在交流中的重要性。级别如下:

  • emerg:系统无法使用。
  • alert:必须立即采取行动。
  • crit:临界条件。
  • err:错误条件。
  • warn:警告条件。
  • notice:正常但重要的情况。
  • info:信息。
  • debug:调试级消息。

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg -l info

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg -l debug,notice

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg --level=err,warn

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg | grep -i eth0

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg -f daemon

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg -x

总结

Linux dmesg(英文全称:display message)命令用于显示开机信息。

kernel 会将开机信息存储在 ring buffer 中。您若是开机时来不及查看信息,可利用 dmesg 来查看。开机信息亦保存在 /var/log 目录中,名称为 dmesg 的文件里。

责任编辑:庞桂玉 来源: Linux公社
相关推荐

2022-06-20 22:37:25

Linux操作系统命令

2022-06-15 08:21:49

Linux运维工程师

2022-06-19 14:13:29

tmateLinux

2022-05-26 16:51:07

网络丢包网络故障网络

2022-05-05 09:27:31

Linux服务器优化

2022-06-06 08:37:13

Linux远程桌面工具

2022-06-17 09:47:04

Linux命令

2022-06-14 23:34:10

Linux安全服务器

2022-06-22 09:19:55

HDC鸿蒙ADB命令

2022-06-09 09:20:40

Linux语言编写代码

2022-05-09 08:55:58

Linuxdiff命令

2022-05-18 10:58:36

LinuxKali Linux

2022-06-28 10:03:56

CentOSLinux

2022-05-24 13:08:55

GNOMEKDELinux

2022-05-05 15:28:35

程序员Linux 发行版开发系统

2022-06-05 08:12:56

LinuxLinux Lite浏览器

2022-05-20 13:46:36

Linux激活Linux水印

2022-06-16 10:14:51

LinuxEmacs编辑器

2022-06-15 09:54:51

PythonIDELinux

2022-06-20 14:19:55

FedoraEPELLinux

同话题下的热门内容

用这些开源工具在 Linux 上编辑 PDF 文件Linux 网络性能的 15 个优化建议Docker Compose:搭建开发环境的好方式在 Linux 上玩电子游戏的三种方式为什么命令行在 Linux 生态系统中如此重要Docker 暴重大安全漏洞:外部网络可直接访问映射到 127.0.0.1 的本地服务Linux 之父发话:Rust 将合并到 Linux 5.20 内核中去CentOS 替代方案:AlmaLinux 构建系统向所有人开放

编辑推荐

Linux系统下安装MySQL的步骤详解CentOS与Ubuntu有什么不同?Linux下如何使用minicom USB串口为什么你可能想要略过Ubuntu 17.04?Linux中7个判断文件系统类型的方法
我收藏的内容
点赞
收藏

51CTO技术栈公众号