在本文中,我们将介绍Linux下dmesg命令的基础知识。Linux内核是操作系统的核心,它控制对系统资源(例如CPU、I/O设备、物理内存和文件系统)的访问,在引导过程中以及系统运行时,内核会将各种消息写入内核环形缓冲区,这些消息包括有关系统操作的各种信息。内核环形缓冲区是物理内存的一部分,用于保存内核的日志消息,它具有固定的大小,这意味着一旦缓冲区已满,较旧的日志记录将被覆盖。dmesg命令行实用程序用于在Linux和其他类似Unix的操作系统中打印和控制内核环形缓冲区,这对于检查内核启动消息和调试与硬件相关的问题很有用。

使用dmesg命令

dmesg命令的语法如下:

dmesg [OPTIONS]

在不带任何选项的情况下调用dmesg会将所有消息从内核环形缓冲区写入标准输出:

$ dmesg

默认情况下,所有用户都可以运行dmesg命令,但是,在某些系统上,非root用户可能会限制对dmesg的访问,在这种情况下,调用dmesg时,你将收到如下错误消息:

dmesg: read kernel buffer failed: Operation not permitted(dmesg:读取内核缓冲区失败:不允许操作)

内核参数kernel.dmesg_restrict指定无特权的用户是否可以使用dmesg查看来自内核日志缓冲区的消息,要删除限制,请将其设置为零:

$ sudo sysctl -w kernel.dmesg_restrict=0

通常,输出包含很多信息行,因此仅输出的最后一部分是可见的,要一次查看一页,请将输出通过管道传递到诸如less和more的pager实用程序:

$ dmesg --color=always | less

--color=always始终用于保留彩色输出。

如果要过滤缓冲区消息,请使用grep,例如,要仅查看与USB相关的消息,请键入:

$ dmesg | grep -i usb

dmesg从/proc/kmsg虚拟文件读取内核生成的消息,该文件提供了到内核环形缓冲区的接口,并且只能由一个进程打开,如果你的系统上正在运行syslog进程,并且你尝试使用cat(或更少)读取文件,该命令将挂起。

syslog守护程序将内核消息转储到/var/log/dmesg,因此也可以使用该日志文件:

$ cat /var/log/dmesg

格式化dmesg输出

dmesg命令提供了许多选项,可帮助你格式化和过滤输出。

dmesg最常用的选项之一是-H(-human),它使人可读的输出成为可能,此选项将命令输出通过管道传递到pager:

$ dmesg -H

要打印人类可读的时间戳,请使用-T(--ctime)选项:

$ dmesg -T

[Mon Oct 14 14:38:04 2019] IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready

时间戳格式也可以使用--time-format 选项设置,可以为ctime、reltime、delta、notime或iso,例如,要使用增量格式,请输入:

$ dmesg --time-format=delta

你还可以组合两个或多个选项:

$ dmesg -H -T

要实时观看dmesg命令的输出,请使用-w(--follow)选项:

$ dmesg --follow

过滤dmesg输出

你可以将dmesg输出限制为给定的设施和级别。

该功能代表创建消息的过程,dmesg支持以下日志功能:

kern-内核消息。

user-用户级别的消息。

mail-邮件系统。

daemon-系统守护程序。

auth-安全/授权消息。

syslog-内部syslogd消息。

lpr-行式打印机子系统。

news-网络新闻子系统。

-f(--facility )选项允许你将输出限制为特定的工具,该选件接受一个或多个逗号分隔的功能。

例如,要仅显示内核和系统守护程序消息,可以使用:

$ dmesg -f kern,daemon

每个日志消息都与一个显示消息重要性的日志级别相关联,dmesg支持以下日志级别:

emerg-系统无法使用。

alert-必须立即采取措施。

crit-关键条件。

err-错误条件。

warn-警告条件。

notice-正常但状况显着。

info-信息性。

debug-调试级别的消息。

-l(--level )选项将输出限制为定义的级别,该选项接受一个或多个逗号分隔的级别。

以下命令仅显示错误和严重消息:

$ dmesg -l err,crit

清除环形缓冲区

-C(--clear)选项允许你清除环形缓冲区:

$ sudo dmesg -C

只有root或具有sudo特权的用户才能清除缓冲区。

要在清除之前打印缓冲区内容,请使用-c(--read-clear)选项:

$ sudo dmesg -c

如果要在清除之前将当前dmesg日志保存在文件中,请将输出重定向到文件:

$ dmesg > dmesg_messages

结论

dmesg命令允许你查看和控制内核环形缓冲区,对内核或硬件问题进行故障排除时,此功能非常有用。

在你的终端中键入man dmesg以获取有关所有可用dmesg选项的信息。

相关主题

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

  1. python os模块安装方法_基于python中pygame模块的Linux下安装过程(详解)

    一.使用pip安装Python包 大多数较新的Python版本都自带pip,因此首先可检查系统是否已经安装了pip.在Python3中,pip有时被称为pip3. 1.在Linux和OS X系统中检查 ...

  2. python中pygame模块下载_基于python中pygame模块的Linux下安装过程(详解)

    pyhthon中pygame模块怎么安装?pyhthon中pygame模块怎么安装?鄙人为初二一名学生,闲来无事 钻研起电这句话还是建议问一下你们代课老师吧,因为你们老师是这方面专家,诺儿那边的话肯定 ...

  3. linux替换jar包目录,Linux下用jar命令替换war包中的文件【转】

    问题背景:在Linux环境上的weblogic发布war包,有时候只是修改了几个文件,也要上传整个war包,这样很费时间,因此整理了一下Linux环境,更新单个文件的方法. 1.如果要替换的文件直接在 ...

  4. linux中ftp如何使用,linux下ftp如何使用

    linux下ftp可以上传.下载文件 centos7环境: 1.检查是否安装过ftp服务 rpm -qa|grep vsftpd 如果没有输出则表示没有安装过 安装ftp yum -y install ...

  5. linux替换jar的文件,Linux下用jar命令替换war包中的文件【转】

    问题背景:在Linux环境上的weblogic发布war包,有时候只是修改了几个文件,也要上传整个war包,这样很费时间,因此整理了一下Linux环境,更新单个文件的方法. 1.如果要替换的文件直接在 ...

  6. linux命令输入错误怎么弄,Linux下用shopt命令来帮我们自动纠错输入cd 错误

    下面是关于shopt命令的一些参数的用法 选项 含义 cdable_vars 如果给cd内置命令的参数不是一个目录,就假设它是一个变量名,变量的值是将要转换到的目录 cdspell 纠正cd命令中目录 ...

  7. Linux下使用mail命令发送邮件

    因为需要经常备份网站的数据,所以了解并学习了下linux下如何通过shell来发送邮件,这里以CentOS为例,使用mail命令来进行外部邮件的发送.mail命令的语法如下: Usage: mail ...

  8. linux格式化大于2t硬盘分区,linux下大于2tb硬盘格式化及挂载,linux下大于2t的分区方法,linux gpt分区表 管理 自动挂载分区...

    linux下大于2tb硬盘格式化及挂载,linux下大于2t的分区方法,linux gpt分区表 管理 自动挂载分区 (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找 ...

  9. linux 下的vi命令汇总

    linux 下的vi命令汇总 linux 下的vi 主要作用是什么? Vi是Unix及Linux系统bai下标准的编辑器,由美国加州大学伯克利分校的Bill Joy所创立. 基本上vi可以分为三种状态 ...

最新文章

  1. hpacucli查看HP服务器硬盘状态
  2. matlab降低视频帧数,如何更改视频的帧速率
  3. Til the Cows Come Home (最短路问题, 模板)
  4. 哈,你猜一个 TCP 连接上面能发多少个 HTTP 请求?
  5. PlentyOfFish.com .NET网站的又一传奇
  6. LeetCode刷题记录(2)
  7. 不同浏览器css引入外部字体的方式
  8. P4320-道路相遇,P5058-[ZJOI2004]嗅探器【圆方树,LCA】
  9. 0-安装Vagrant和使用
  10. E: 无法获得锁 /var/lib/apt/lists/lock - open (11: 资源暂时不可用) E: 无法对目录 /var/lib/apt/lists/ 加锁 问题解决方法
  11. poj2280--Amphiphilic Carbon Molecules(扫描线+极角排序+转换坐标)
  12. 【Java】 归并排序的非递归实现
  13. 风险管理那些事:当你身边有头“熊
  14. 军用设备环境试验GJB150A-2009检测报告机构
  15. matlab导出prn文件怎么打开,prn文件介绍及打印方法
  16. 【算法01】—动态规划
  17. 云计算发展现状及未来趋势
  18. R语言编程环境的安装和运行
  19. 通俗易懂奈奎斯特定理和香农定理
  20. 上云利器,K8S应用编排设计器之快到极致

热门文章

  1. python解包操作_python基础篇笔记02 文件操作 序列解包**星号语法
  2. ajax局部刷新 php,PHP中ajax的局部刷新
  3. 淘宝热门类目如何获得免费流量?
  4. 运维墨菲定律,值得每天读一遍
  5. ubuntu16.04中文乱码空格+fabric.js生成图片跨域问题
  6. 在python中数据的输出用哪个函数名_在Python中,数据的输出用哪个函数名
  7. css 背景色透明但是内容图片不透明
  8. CDMA 1xRTT的分组数据业务(转)
  9. 使用ASP.NE+VUE开发一款简单记账WebAPP之七(vue.js构建记账统计页面)
  10. 将GUI添加到Windows Server Core和Hyper-V Core