Linux系统启动详解 [LinuxCast视频教程]
目录:
Linux内核是操作系统的核心,它控制对系统资源(例如CPU,I / O设备,物理内存和文件系统)的访问。 在引导过程中以及系统运行时,内核会将各种消息写入内核环形缓冲区。 这些消息包括有关系统操作的各种信息。
内核环形缓冲区是物理内存的一部分,用于保存内核的日志消息。 它具有固定的大小,这意味着一旦缓冲区已满,较旧的日志记录将被覆盖。
dmesg
命令行实用程序用于在Linux和其他类似Unix的操作系统中打印和控制内核环形缓冲区。 这对于检查内核启动消息和调试与硬件相关的问题很有用。
在本教程中,我们将介绍
dmesg
命令的基础知识。
使用
dmesg
命令
dmesg
命令的语法如下:
dmesg
在不带任何选项的情况下调用
dmesg
会将所有消息从内核环形缓冲区写入标准输出:
dmesg
默认情况下,所有用户都可以运行
dmesg
命令。 但是,在某些系统上,非root用户可能会限制对
dmesg
的访问。 在这种情况下,调用
dmesg
您将收到如下错误消息:
dmesg: read kernel buffer failed: Operation not permitted
内核参数
kernel.dmesg_restrict
指定无特权的用户是否可以使用
dmesg
查看来自内核日志缓冲区的消息。 要删除限制,请将其设置为零:
sudo sysctl -w kernel.dmesg_restrict=0
通常,输出包含很多信息行,因此仅输出的最后一部分是可见的。 要一次查看一页,请将输出通过管道传递给pager实用程序,例如
less
或
more
:
dmesg --color=always | less
--color=always
用于保留彩色输出。
dmesg | grep -i usb
dmesg
从
/proc/kmsg
虚拟文件
/proc/kmsg
内核生成的消息。 该文件提供了到内核环形缓冲区的接口,并且只能由一个进程打开。 如果
syslog
正在运行
syslog
进程,并且您尝试使用
cat
或
less
cat
读取文件,则命令将挂起。
syslog
守护程序将内核消息转储到
/var/log/dmesg
,因此您也可以使用该日志文件:
格式化
dmesg
输出
dmesg
命令提供了许多选项,可帮助您格式化和过滤输出。
dmesg
的最常用的选项之一是
-H
(--
--human
),它使人可读的输出。 此选项将命令输出通过管道传递到寻呼机:
dmesg -H
要打印人类可读的时间戳,请使用
-T
(--
--ctime
)选项:
dmesg -T
IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready
时间戳格式也可以使用
--time-format
dmesg --time-format=delta
您还可以组合两个或多个选项:
dmesg -H -T
要实时观看
dmesg
命令的输出,请使用
-w
(--
--follow
)选项:
过滤
dmesg
输出
您可以将
dmesg
输出限制为给定的设施和级别。
该功能代表创建消息的过程。
dmesg
支持以下日志功能:
- 内核-内核消息
user-用户级消息mail-邮件系统daemon-系统守护程序auth安全/授权消息syslog内部syslogd消息lpr线路打印机子系统news-网络新闻子系统
-f
(--
--facility
)选项可让您将输出限制为特定的设施。 该选件接受一个或多个逗号分隔的功能。
例如,要仅显示内核和系统守护程序消息,可以使用:
dmesg -f kern, daemon
每个日志消息都与一个显示消息重要性的日志级别相关联。
dmesg
支持以下日志级别:
-
emerg系统无法使用alert-必须立即采取措施严重-紧急情况err错误情况warn-警告情况notice-正常但重要的情况info-信息性debug-调试级消息
-l
(--
--level
)选项将输出限制为定义的级别。 该选项接受一个或多个逗号分隔的级别。
以下命令仅显示错误和严重消息:
清除环形缓冲区
-C
(--
--clear
)选项允许您清除环形缓冲区:
sudo dmesg -C
只有root或具有sudo特权的用户才能清除缓冲区。
要在清除之前打印缓冲区内容,请使用
-c
(
--read-clear
)选项:
sudo dmesg -c
结论
dmesg
命令允许您查看和控制内核环形缓冲区。 对内核或硬件问题进行故障排除时,此功能非常有用。
在您的终端中键入
man dmesg
以获取有关所有可用
dmesg
选项的信息。







