在 Debian(以及其他 Linux 发行版)中,dmesg 用于显示内核环形缓冲区的信息。你可以通过以下几种方式过滤 dmesg 输出,根据需求不同方法也不同。
grep 过滤关键字最常见的做法:
dmesg | grep usb
忽略大小写:
dmesg | grep -i error
显示关键字及其前后行:
dmesg | grep -C 3 "nvme"
只显示某个设备:
dmesg | grep eth0
dmesg 本身支持按日志级别过滤。
dmesg -l help
常见级别:
emergalertcriterrwarnnoticeinfodebugdmesg -l err,crit,alert,emerg
dmesg -l warn,err
dmesg -T --color=always
结合 grep:
dmesg -T | grep -i "fail"
journalctl(systemd 系统)Debian 若使用 systemd(默认),dmesg 信息也在 journal 中:
journalctl -k
按优先级(0–3 为严重错误):
journalctl -k -p err
按时间:
journalctl -k --since "2024-01-01" --until "2024-01-02"
dmesg -w
过滤实时输出:
dmesg -w | grep usb
dmesg | grep -i e1000
dmesg | grep -i "sda\|nvme\|md"
dmesg | grep -i "memory"
dmesg > dmesg.txt
less dmesg.txt
如果你能说明具体想过滤什么类型的信息(如 USB、网卡、崩溃、启动错误等),我可以给你更精确的命令示例。