在Linux 操作系统中,dmesg命令来显示与内核相关的消息,dmesg 命令提供了许多不同的消息,比如与消息相关的存储、模块、中断等。作为提供信息的底层工具,dmesg 命令需要root 权限,sudo 命令应与 dmesg 命令一起使用。
列出所有 dmesg 消息
我们可以使用 dmesg 命令,如下所示,我们可以看到显示了很多不同类型的消息。
$ sudo dmesg
更少的消息分页
dmesg 命令提供了大量的消息,这些消息填满了终端并创建了很多页面,如果我们正在专门寻找我们需要正确导航或分页的东西,该less命令可以通过按键轻松用于导航Space。
$ sudo dmesg | less
着色 dmesg 消息
由于有很多消息阅读它们并不容易,但是着色可能有助于以更舒适的方式阅读信息,optin可-L用于为 dmesg 消息着色。
$ sudo dmesg -L
dmesg 人性化格式
dmesg 命令主要提供系统级消息,这些消息不便于阅读和理解,-H我们可以通过添加选项使这些消息更加人性化,-H 选项将时间戳显示为日期和时间。
$ sudo dmesg -H
dmesg 人类可读格式
我们还可以以更人性化的方式显示分钟信息,该-T选项还用于以人性化的方式显示每行的分钟。
$ sudo dmesg -T
dmesg 实时监控
dmesg 缓冲区是实时填充的,但是当我们运行 dmesg 命令时,只会显示最新消息,随着时间的推移,一些新消息可能会到达 dmesg 缓冲区,但它们不会实时显示,-follow我们可以使用该选项实时显示 dmesg 消息。
$ sudo dmesg --follow
前 10 条 dmesg 消息
我们可以使用如下head命令打印前 10 条 dmesg 消息。
$ sudo dmesg | head -10
最近 10 条 dmesg 消息
我们可以使用如下tail命令打印前 10 条 dmesg 消息。
$ sudo dmesg | tail -10
过滤特定字符串
由于有很多 dmesg 消息,我们可能希望针对特定字符串过滤它们,该grep命令可用于过滤特定字符串,在以下示例中,我们过滤包含“安全”的行。
$ sudo dmesg | grep -i "admin"
dmesg 消息级别
内核或 dmesg 消息设置有不同的级别来指定消息的重要性。
- emerg: 系统无法使用。
- alert: 必须立即采取行动。
- crit: 临界条件。
- err: 错误条件。
- warn: 警告条件。
- notice: 正常但重要的情况。
- info: 信息。
- debug: 调试级消息。
过滤特定的消息级别
我们可以过滤特定级别的 dmesg 消息,该-l选项用于过滤特定级别,-l 选项来自“级别”。
$ sudo dmesg -l warn
过滤多个消息级别
我们还可以过滤多个级别的 dmesg 消息,我们通过用逗号分隔它们来指定级别名称。
$ sudo dmesg -l warn,err
dmesg:读取内核缓冲区失败:不允许操作
一些新手用户可能会尝试在没有 sudo 命令的情况下运行 dmesg 命令,dmesg 命令需要 root 权限,如果没有提供,则会显示“ dmesg: read kernel buffer failed: Operation not allowed ”错误,我们可以通过添加如下所示的 sudo 命令来解决此错误。
$ sudo dmesg