文章目录

  • 1.命令简介
  • 2.命令格式
  • 3.选项说明
  • 4.常用示例
  • 参考文献

1.命令简介

dmesg(display message)打印或控制内核环形缓冲区。

dmesg 命令用于检查和控制内核的环形缓冲区。Kernel 会将开机信息存储在 ring buffer 中,我们可以从中获得诸如系统架构、CPU、挂载的硬件,RAM 等多个运行级别的大量的系统信息。可利用 dmesg 来查看系统的启动信息。开机信息也会保存在 /var/log/dmesg。

当计算机启动时,系统内核会被加载到内存中。在加载的过程中会显示很多的信息,在这些信息中我们可以看到内核检测硬件设备。因此我们可以利用 dmesg 进行设备故障的诊断。内核进行硬件的连接或断开连接操作时,在 dmesg 命令的帮助下,我们可以看到硬件的检测或者断开连接的信息。

2.命令格式

dmesg [<options>]
dmesg --clear
dmesg --read-clear [<options>]
dmesg --console-level <level>
dmesg --console-on
dmesg --console-off

3.选项说明

 -C, --clear清除内核环形缓冲区(ring butter)。
-c, --read-clear读取并清除所有消息。
-D, --console-off禁止向终端打印消息。-d, --show-delta显示打印消息之间的时间差。-e, --reltime以易读格式显示本地时间和时间差。-E, --console-on启用向终端打印消息。-F, --file <file>用文件代替内核日志缓冲区。-f, --facility <list>将输出限制为定义的设施。-H, --human易读格式输出。-k, --kernel显示内核消息。-L, --color显示彩色消息。-l, --level <list>限制输出级别。-n, --console-level <level>设置打印到终端的消息级别。-P, --nopager不将输出通过管道传递给分页程序。-r, --raw打印原生消息缓冲区。-S, --syslog强制使用系统调用 syslog(2) 而非 /dev/kmsg 去读取内核信息,因为从 kernel 3.5.0 开始,默认使用 /dev/kmsg。-s, --buffer-size <size>查询内核环形缓冲区所用的缓冲区大小。-T, --ctime显示易读的时间戳(如果您使用了 SUSPEND/RESUME 则可能不准)。-t, --notime不打印消息时间戳。-u, --userspace显示用户空间消息。-w, --follow等待新消息。-x, --decode将设施和级别解码为可读的字符串。-h, --help显示此帮助并退出。-V, --version输出版本信息并退出。

4.常用示例

(1)列出加载到内核中的所有驱动。

dmesg
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.10.0-1160.71.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Tue Jun 28 15:37:28 UTC 2022
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-3.10.0-1160.71.1.el7.x86_64 root=UUID=4b499d76-769a-40a0-93dc-4a31a59add28 ro net.ifnames=0 biosdevname=0 console=ttyS0,115200 console=tty0 panic=5 crashkernel=2G-8G:256M,8G-16G:512M,16G-:768M intel_idle.max_cstate=1 intel_pstate=disable processor.max_cstate=1 amd_iommu=on iommu=pt LANG=en_US.utf8
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
...

(2)列出所有被检测到的硬件。

比如要显示所有被内核检测到的磁盘设备,你可以使用 grep 命令搜索 sda 关键词。

dmesg | grep sda
[    3.051454] sd 0:0:0:0: [sda] 209715200 512-byte logical blocks: (107 GB/100 GiB)
[    3.051559] sd 0:0:0:0: [sda] Write Protect is off
[    3.051562] sd 0:0:0:0: [sda] Mode Sense: 61 00 00 00
[    3.051700] sd 0:0:0:0: [sda] Cache data unavailable
[    3.051702] sd 0:0:0:0: [sda] Assuming drive cache: write through
[    3.053408]  sda: sda1 sda2 sda3
[    3.054299] sd 0:0:0:0: [sda] Attached SCSI disk
[    3.558354] XFS (sda3): Mounting V5 Filesystem
[    4.188185] XFS (sda3): Ending clean mount
[   12.636995] Adding 4194300k swap on /dev/sda2.  Priority:-1 extents:1 across:4194300k FS
[   12.922553] XFS (sda1): Mounting V5 Filesystem
[   14.708567] XFS (sda1): Ending clean mount

(3)搜索包含特定字符串的被检测到的硬件。

由于 dmesg 命令的输出实在太长了,在其中搜索某个特定的字符串是非常困难的。因此,有必要过滤出一些包含 ‘usb’ ‘dma’ ‘tty’ ‘memory’ 等字符串的日志行。grep 命令 的 ‘-i’ 选项表示忽略大小写。

dmesg | grep -i usb
dmesg | grep -i dma
dmesg | grep -i tty
dmesg | grep -i memory

(4)清空 dmesg 缓冲区日志。

dmesg -c

我们可以使用如下命令来清空 dmesg 的日志。该命令会清空 dmesg 环形缓冲区中的日志。但是你依然可以查看存储在 /var/log/dmesg 文件中的日志。你连接任何的设备都会产生 dmesg 日志输出。

(5)实时监控 dmesg 日志输出。

tail -f /var/log/dmesg

或者

watch "dmesg | tail"

参考文献

dmesg(1) - Linux manual page - man7.org

Linux 命令(160)—— dmesg 命令相关推荐

  1. linux dmesg信息哪来的,linux中的dmesg命令简介

    今天, 我们来介绍一个linux中的dmesg命令,事实上, 我们之前用过, 但是没有单独介绍过. 看一下dmesg命令的用途吧: dmesg命令用会把开机信息存到ring bufer中, 形成一个缓 ...

  2. Linux日常运维管理技巧(四)文件同步工具-rsync、Linux系统日志、dmesg命令、lastb命令查看登录失败的用户、screen工具虚拟屏幕

    目录 Linux文件同步工具-rsync Linux系统日志 dmesg命令 lastb命令 screen工具 Linux文件同步工具-rsync rsync命令是一个远程数据同步工具,可通过LAN/ ...

  3. linux命令 dmesg_如何在Linux上使用dmesg命令

    linux命令 dmesg Fatmawati Achmad Zaenuri/Shutterstock Fatmawati Achmad Zaenuri / Shutterstock The dmes ...

  4. 图解Linux命令之--dmesg命令

    dmesg命令-->用来显示开机信息, kernel会将开机信息存储在ring buffer中.开机时来不及查看信息,可利用dmesg来查看.开机信息亦保存在/var/log/dmesg [dm ...

  5. 如何在 Linux 上使用 dmesg 命令

    看到一篇讲解 dmesg 很好的英文文章,这里翻译一下,以下是译文. dmesg 命令可以让你更深入的了解 Linux 启动的潜在过程,可以从内核的环形缓冲区(ring buffer)查看并监视硬件设 ...

  6. linux系统dmesg日志,Linux系统中dmesg命令使用详解

    Linux数据中心服务器一般很少被黑.但也有出故障的时候,没有十全十美的,当服务器连接到网络时,你永远不知道什么时候会出现问题,会出现什么样问题.当不可避免出现了错误的时,您应该知道如何解决问题,以及 ...

  7. 在dmesg中打印_讲解Linux下的Dmesg命令:格式化及过滤dmesg输出、清除环形缓冲区...

    在本文中,我们将介绍Linux下dmesg命令的基础知识.Linux内核是操作系统的核心,它控制对系统资源(例如CPU.I/O设备.物理内存和文件系统)的访问,在引导过程中以及系统运行时,内核会将各种 ...

  8. 【Linux】Linux下的dmesg命令

    在嵌入式Linux的开发过程或桌面端Linux发行版的使用过程中我们经常使用dmesg这一命令进行Linux内核日志的打印. dmesg 是通过读取kernel中ring buffer的数据,然后将其 ...

  9. Linux命令之dmesg命令

    一.命令简介   Linux dmesg(英文全称:display message)命令用于显示开机信息.kernel 会将开机信息存储在 ring buffer 中.您若是开机时来不及查看信息,可利 ...

  10. 【Linux】一步一步学Linux——dmesg命令(74)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 附录 01. 命令概述 dmesg命令被用于检查和控制内核的环形缓冲区.kerne ...

最新文章

  1. 客快物流大数据项目(十四):DockerFile介绍与构建过程解析
  2. stm32实际运用中遇到的问题
  3. 影子卫士和影子系统哪个好用_门店管理营销系统哪个好用,营销系统排名
  4. 集群(三)——haproxy+nginx搭建web集群
  5. Mapreduce自定义数据类型
  6. Error starting static Resources caused by project facet
  7. OpenSSL漏洞补救办法详解(转)
  8. 8、play框架中持久层操作
  9. java判断tcp是否阻塞_connect()调用在TCP堆栈中是非阻塞的(java)是什么意思
  10. 浅谈HR谈薪水的技巧
  11. 分布式内存文件系统Alluxio
  12. Bootstrap 输入框组中控件的尺寸
  13. 精通RPM之--制作篇(rpmbuild)
  14. Shell学习:关于替换命令-tr-ROT13法则
  15. WinCE6.0+ S3C6410 IIC驱动源码学习
  16. 小黑相关预搞书籍杂志等
  17. pyqt5转pyqt6需要注意的事项
  18. python写Bicubic方法,跑数据集Set5和Set14,保存PSNR和SSIM的值
  19. 用户体验设计师(UE)职务描述。
  20. 自定义notepad++ --添加插件SourceCookifier

热门文章

  1. android videoview 播放之前短暂黑屏
  2. 在线客服系统模式提高效率
  3. 怎么把pdf转换成word?介绍两种方法
  4. 202109335卢滕阳第一周
  5. Pycharm、IDEA、WebStorm 工具使用过程中出现 Server‘s certificate is not trusted 提示框的问题
  6. 【ppt幻灯片制作】Focusky教程 | 交互触发器– 点击式触发器实例
  7. [笔记]python对FASTA文件的处理
  8. 事件冒泡机制和如何阻止冒泡
  9. 最长公共子序列c++实现
  10. rust腐蚀 木制窗户怎么修_腐蚀RUST一些实用技巧介绍