Linux系统之dmesg命令详解

dmesg 是一个用于查看和控制内核环形缓冲区的命令。默认情况下,它读取并显示所有来自内核环形缓冲区的消息,这些消息包括系统启动时的信息、硬件检测信息、驱动加载信息等。

基本语法

dmesg [选项]
dmesg --clear
dmesg --read-clear [选项]
dmesg --console-level 级别
dmesg --console-on
dmesg --console-off

核心功能选项

缓冲区操作

选项说明
-C, --clear清空环形缓冲区内容
-c, --read-clear显示后清空缓冲区内容
-w, --follow实时监控新消息(需内核3.5.0+支持)

输出控制

选项说明
-H, --human人性化显示(结合颜色、相对时间等)
-T, --ctime显示可读的时间戳(可能不精确)
-e, --reltime显示本地时间和消息间隔
-d, --show-delta显示时间戳和消息间隔
-t, --notime不显示时间戳
-L, --color高亮重要消息

过滤选项

选项说明
-k, --kernel只显示内核消息
-u, --userspace只显示用户空间消息
-l, --level 列表按级别过滤(如err,warn
-f, --facility 列表按设施过滤(如daemon

控制台设置

选项说明
-D, --console-off禁用消息打印到控制台
-E, --console-on启用消息打印到控制台
-n, --console-level 级别设置控制台日志级别

常用命令示例

基本查看

dmesg        # 查看所有内核消息
dmesg -H     # 人性化显示(带颜色、分页等)
dmesg -T     # 显示可读时间戳

过滤与诊断

dmesg -l err,crit,alert,emerg  # 只显示错误及以上级别消息
dmesg -f daemon                # 只显示系统守护进程消息
dmesg | grep -i usb            # 过滤USB相关消息
dmesg -d                       # 显示消息时间间隔

缓冲区操作

dmesg -c      # 查看后清空缓冲区
dmesg -C      # 直接清空缓冲区
dmesg -w      # 实时监控新内核消息

高级用法

dmesg --ctime --level=err  # 显示带时间戳的错误消息
dmesg -f kernel -l warn    # 只显示内核的警告消息
dmesg -x                   # 解码设施和级别为可读格式

输出格式说明

典型消息格式

[时间戳] <设施.级别> 消息内容

示例:

[ 3.456789] ACPI: BIOS _OSI(Linux) query ignored

常见日志级别

级别说明
emerg系统不可用
alert必须立即采取措施
crit严重情况
err错误条件
warn警告条件
notice正常但重要的情况
info信息性消息
debug调试级消息

实际应用场景

1. 诊断硬件问题

dmesg | grep -E 'memory|disk|usb|pci'

2. 查看系统启动信息

dmesg -H | less

3. 监控内核实时消息

dmesg -wH

4. 生成系统诊断报告

dmesg -xTl err,warn > system_errors.log

与其他命令结合

# 按频率统计错误类型
dmesg -l err | cut -d']' -f2- | sort | uniq -c | sort -nr

# 监控特定设备消息
dmesg -w | grep -i 'usb storage'

注意事项

  1. 需要root权限才能执行清空缓冲区等操作
  2. 时间戳选项(-T)在系统休眠/恢复后可能不准确
  3. 实时监控(-w)需要内核3.5.0+并支持/dev/kmsg
  4. 缓冲区大小默认为16392字节,可通过-s调整
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值