dmesg - print or control the kernel ring buffer
| Use Case | Command | Description |
|---|---|---|
| ๐ View all kernel messages | dmesg | Display all messages from the kernel ring buffer |
| ๐๏ธ Human-readable output | dmesg -H | Enable human-readable output with timestamps and pager |
| ๐ Follow new messages | dmesg -w | Wait for new messages (requires /dev/kmsg) |
| ๐งน Clear ring buffer | dmesg -C | Clear the ring buffer |
| ๐ Read & clear | dmesg -c | Print then clear the ring buffer |
| ๐ Console off | dmesg -D | Disable printing of messages to console |
| ๐ Console on | dmesg -E | Enable printing of messages to console |
| ๐จ Colorized output | dmesg -L always | Colorize the output |
| โฑ๏ธ Human-readable timestamps | dmesg -T | Print human-readable timestamps (may be inaccurate) |
| ๐ Read from file | dmesg -F file | Read syslog messages from a file (old format only) |
| ๐ Filter by level | dmesg --level=err,warn | Show only error and warning messages |
| ๐ Filter by facility | dmesg --facility=daemon | Show only daemon messages |
dmesg [options]
dmesg --clear
dmesg --read-clear [options]
dmesg --console-level level
dmesg --console-on
dmesg --console-off
dmesg is used to examine or control the kernel ring buffer.
The default action is to display all messages from the kernel ring buffer.
The --clear, --read-clear, --console-on, --console-off, and --console-level options are mutually exclusive.
-C, --clear ๐งน Clear the ring buffer.-c, --read-clear ๐ Clear the ring buffer after first printing its contents.-D, --console-off ๐ Disable the printing of messages to the console.-d, --show-delta โฑ๏ธ Display the timestamp and the time delta spent between messages. If used together with --notime then only the time delta without the timestamp is printed.-E, --console-on ๐ Enable printing messages to the console.-e, --reltime โฒ๏ธ Display the local time and the delta in human-readable format. Be aware that conversion to the local time could be inaccurate (see -T for more details).-F, --file file ๐ Read the syslog messages from the given file. Note that -F does not support messages in kmsg format. The old syslog format is supported only.-f, --facility list ๐ Restrict output to the given (comma-separated) list of facilities. For example: dmesg --facility=daemon will print messages from system daemons only. For all supported facilities see the --help output.-H, --human ๐ค Enable human-readable output. See also --color, --reltime and --nopager.-k, --kernel ๐ฅ๏ธ Print kernel messages.-L, --color[=when] ๐จ Colorize the output. The optional argument when can be auto, never or always. If the when argument is omitted, it defaults to auto. The colors can be disabled; for the current built-in default see the --help output. See also the COLORS section below.-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.-n, --console-level level ๐๏ธ Set the level at which printing of messages is done to the console. The level is a level number or abbreviation of the level name. For all supported levels see the --help output. For example, -n 1 or -n emerg prevents all messages, except emergency (panic) messages, from appearing on the console. All levels of messages are still written to /proc/kmsg, so syslogd(8) can still be used to control exactly where kernel messages appear. When the -n option is used, dmesg will not print or clear the kernel ring buffer.--noescape โ ๏ธ Disable escaping of unprintable and potentially unsafe characters. By default they are escaped in format \x<hex> for security. Use with caution, typically for debugging with --raw.-P, --nopager ๐ Do not pipe output into a pager. A pager is enabled by default for --human output.-p, --force-prefix ๐ท๏ธ Add facility, level or timestamp information to each line of a multi-line message.-r, --raw ๐ Print the raw message buffer, i.e., do not strip the log-level prefixes, but all unprintable characters are still escaped (see also --noescape). Note that the real raw format depends on the method how dmesg reads kernel messages. The /dev/kmsg device uses a different format than syslog(2). For backward compatibility, dmesg returns data always in the syslog(2) format. It is possible to read the real raw data from /dev/kmsg by, for example, the command dd if=/dev/kmsg iflag=nonblock.-S, --syslog ๐ Force dmesg to use the syslog(2) kernel interface to read kernel messages. The default is to use /dev/kmsg rather than syslog(2) since kernel 3.5.0.-s, --buffer-size size ๐ Use a buffer of size to query the kernel ring buffer. This is 16392 by default. (The default kernel syslog buffer size was 4096 at first, 8192 since 1.3.54, 16384 since 2.1.113.) If you have set the kernel buffer to be larger than the default, then this option can be used to view the entire buffer.-T, --ctime ๐ Print human-readable timestamps. Be aware that the timestamp could be inaccurate! The time source used for the logs is not updated after system SUSPEND/RESUME. Timestamps are adjusted according to current delta between boottime and monotonic clocks, this works only for messages printed after last resume.--since time โช Display record since the specified time. The time is possible to specify in absolute way as well as by relative notation (e.g. '1 hour ago'). Be aware that the timestamp could be inaccurate and see --ctime for more details.--until time โฉ Display record until the specified time. The time is possible to specify in absolute way as well as by relative notation (e.g. '1 hour ago'). Be aware that the timestamp could be inaccurate and see --ctime for more details.-t, --notime ๐ซ Do not print kernel's timestamps.--time-format format โฑ๏ธ Print timestamps using the given format, which can be ctime, reltime, delta or iso. The first three formats are aliases of the time-format-specific options. The iso format is a dmesg implementation of the ISO-8601 timestamp format. The definition of the iso timestamp is: YYYY-MM-DD<T>HH:MM:SS,<microseconds>โ+><timezone offset from UTC>. The iso format has the same issue as ctime: the time may be inaccurate when a system is suspended and resumed.-u, --userspace ๐ค Print userspace messages.-w, --follow ๐ Wait for new messages. This feature is supported only on systems with a readable /dev/kmsg (since kernel 3.5.0).-W, --follow-new ๐ Wait and print only new messages.-x, --decode ๐ Decode facility and level (priority) numbers to human-readable prefixes.-V, --version โน๏ธ Display version information and exit.-h, --help โ Display help text and exit.Implicit coloring can be disabled by an empty file /etc/terminal-colors.d/dmesg.disable. See terminal-colors.d(5) for more details about colorization configuration.
The logical color names supported by dmesg are:
subsys ๐ท๏ธ The message sub-system prefix (e.g., "ACPI:").time โฑ๏ธ The message timestamp.timebreak โณ The message timestamp in short ctime format in --reltime or --human output.alert ๐จ The text of the message with the alert log priority.crit ๐ด The text of the message with the critical log priority.err โ The text of the message with the error log priority.warn โ ๏ธ The text of the message with the warning log priority.segfault ๐ฅ The text of the message that inform about segmentation fault.dmesg can fail reporting permission denied error. This is usually caused by dmesg_restrict kernel setting, please see syslog(2) for more details.
Karel Zak <kzak@redhat.com>
dmesg was originally written by Theodore Ts'o <tytso@athena.edu>.
For bug reports, use the issue tracker at https://github.com/karelzak/util-linux/issues.
The dmesg command is part of the util-linux package which can be downloaded from Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.
util-linux 2.37.2 2021-07-20 DMESG(1)
Generated by phpman v4.9.26-5-g7740029 Author: Che Dong Under GNU General Public License
2026-08-16 09:45 @2600:1f28:365:80b0:7cb9:fb:26c1:e368
CrawledBy CCBot/2.0 (https://commoncrawl.org/faq/)