1、dmesg 命令简介
dmesg命令对于设备故障的诊断是非常重要的。在dmesg命令的帮助下进行硬件的连接或断开连接操作时,我们可以看到硬件的检测或者断开连接的信息。dmesg命令在多数基于Linux和Unix的操作系统中都可以使用。
语法格式
1 | # dmesg [options...] |
2、dmesg 命令示例
2.1 列出加载到内核中的所有驱动
我们可以使用如more。 tail, less 或者grep文字处理工具来处理dmesg命令的输出。由于dmesg日志的输出不适合在一页中完全显示,因此我们使用管道(pipe)将其输出送到more或者less命令单页显示。
1 | [root@localhost ~]# dmesg | more |
2.2 列出所有被检测到的硬件
要显示所有被内核检测到的硬盘设备,你可以使用grep命令搜索sda关键词
1 | [root@localhost ~]# dmesg | grep sda |
注解: sda表示第一块 SATA硬盘,sdb表示第二块SATA硬盘。若想查看IDE硬盘搜索hda或hdb关键词。
2.3 输出dmesg命令的前20行日志
在dmesg命令后跟随head命令来显示开始几行,dmesg | head -20命令将显示开始的前20行。
1 | [root@localhost ~]# dmesg | head -20 |
2.4 输出dmesg命令最后20行日志
在dmesg命令后跟随tail命令,dmesg | tail -20来输出dmesg命令的最后20行日志,当你插入可移动设备时它是非常有用的。
1 | [root@localhost ~]# dmesg | tail -20 |
2.5 搜索包含特定字符串的被检测到的硬件
由于dmesg命令的输出实在太长了,在其中搜索某个特定的字符串是非常困难的。因此,有必要过滤出一些包含usb dma tty memory等字符串的日志行。grep 命令 的 -i 选项表示忽略大小写。
1 | [root@localhost log]# dmesg | grep -i usb |
2.6 清空dmesg缓冲区日志
我们可以使用如下命令来清空dmesg的日志。该命令会清空dmesg环形缓冲区中的日志。但是你依然可以查看存储在/var/log/dmesg文件中的日志。你连接任何的设备都会产生dmesg日志输出。
1 | [root@localhost log]# dmesg -c |
2.7 实时监控dmesg日志输出
在某些发行版中可以使用命令tail -f /var/log/dmesg来实时监控dmesg的日志输出。
1 | [root@localhost log]# watch "dmesg | tail -20" |
结论:dmesg命令在系统dmesg记录实时更改或产生的情况下是非常有用的。你可以使用man dmesg来获取更多关于dmesg的信息。