我在 ubuntu 中,当我编写 dmesg 时,错误消息显示为红色,我怎样才能在控制台中仅打印这些消息?
答案1
使用--level
中描述的选项man dmesg
:
-l, --level list Restrict output to the given (comma-separated) list of levels. For example: dmesg --level=err,warn will print error and warning messages only. For all supported levels see the --help output.
答案2
直接回答
dmesg --level=emerg,alert,crit,err
这是大多数人都会寻找的。从以下八个列表中添加或删除任何一个,按严重性排序。
emerg - system is unusable
alert - action must be taken immediately
crit - critical conditions
err - error conditions
warn - warning conditions
notice - normal but significant condition
info - informational
debug - debug-level messages
替代答案
我喜欢使用 grep 快速过滤 dmesg 输出结果,而且,您可以在许多 show 命令的末尾使用它。这-i
不区分大小写。参考:https://www.howtogeek.com/449335/how-to-use-the-dmesg-command-on-linux/。
dmesg | grep -i "error"
另外一个选择
journalctl -p 0..3
这会以不同的方式看待类似的信息。修改严重性过滤(0
through 3
),但只需使用数字 0 到 7 即可实现与 dmesg 相同的概念,而无需记住这些关键字。
信用:https://askubuntu.com/a/1245985/192800
兔子洞
另一种思考方法是使用您选择的任何方法查看实际的日志文件,而不是解决 dmesg 的限制。这可以广泛地应用于任何文件,并且使用正则表达式之类的东西具有无限的潜力。以下是显示最后条目数的两种方法的演示-n
。
tail -n 20 /var/log/dmesg
dmesg | tail -n 20
答案3
dmesg --level=warn+
它将输出所有警告和所有更高级别的日志。
还,
dmesg --level=+warn
它将输出所有级别低于 warn 的日志。