dmesg(1) — Linux manual page


DMESG(1)                      User Commands                     DMESG(1)

NAME         top

       dmesg - print or control the kernel ring buffer

SYNOPSIS         top

       dmesg [options]

       dmesg --clear

       dmesg --read-clear [options]

       dmesg --console-level level

       dmesg --console-on

       dmesg --console-off

DESCRIPTION         top

       dmesg is used to examine or control the kernel ring buffer.

       The default action is to display all messages from the kernel
       ring buffer.

OPTIONS         top

       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. See -K instead.

       -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

       -J, --json
           Use JSON output format. The time output format is in
           "sec.usec" format only, log priority level is not decoded by
           default (use --decode to split into facility and priority),
           the other options to control the output format or time format
           are silently ignored.

       -K, --kmsg-file file
           Read the /dev/kmsg messages from the given file. Different
           record as expected to be separated by a NULL byte.

       -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

       -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.

           Appending a plus + to a level name also includes all higher
           levels. For example:

           dmesg --level=err+

           will print levels err, crit, alert and emerg.

           Prepending it will include all lower levels.

       -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.

           The unprintable and potentially unsafe characters (e.g.,
           broken multi-byte sequences, terminal controlling chars,
           etc.) are escaped in format \x<hex> for security reason by
           default. This option disables this feature at all. It’s
           usable for example for debugging purpose together with --raw.
           Be careful and don’t use it by default.

       -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. Supported is the
           subsecond granularity. 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. Supported is the
           subsecond granularity. 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 purpose
           of this format is to make the comparing of timestamps between
           two systems, and any other parsing, easy. The definition of
           the iso timestamp is:
           YYYY-MM-DD<T>HH:MM:SS,<microseconds>←+><timezone offset from

           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.

       -h, --help
           Display help text and exit.

       -V, --version
           Print version and exit.

COLORS         top

       The output colorization is implemented by terminal-colors.d(5)
       functionality. Implicit coloring can be disabled by an empty file


       for the dmesg command or for all tools by


       The user-specific $XDG_CONFIG_HOME/terminal-colors.d or
       $HOME/.config/terminal-colors.d overrides the global setting.

       Note that the output colorization may be enabled by default, and
       in this case terminal-colors.d directories do not have to exist

       The logical color names supported by dmesg are:

           The message sub-system prefix (e.g., "ACPI:").

           The message timestamp.

           The message timestamp in short ctime format in --reltime or
           --human output.

           The text of the message with the alert log priority.

           The text of the message with the critical log priority.

           The text of the message with the error log priority.

           The text of the message with the warning log priority.

           The text of the message that inform about segmentation fault.

EXIT STATUS         top

       dmesg can fail reporting permission denied error. This is usually
       caused by dmesg_restrict kernel setting, please see syslog(2) for
       more details.

AUTHORS         top

       Karel Zak <>

       dmesg was originally written by Theodore Ts’o

SEE ALSO         top

       terminal-colors.d(5), syslogd(8)

REPORTING BUGS         top

       For bug reports, use the issue tracker at

AVAILABILITY         top

       The dmesg command is part of the util-linux package which can be
       downloaded from Linux Kernel Archive
       <>. This page
       is part of the util-linux (a random collection of Linux
       utilities) project. Information about the project can be found at
       ⟨⟩. If you have
       a bug report for this manual page, send it to This page was obtained from the
       project's upstream Git repository
       ⟨git://⟩ on
       2023-12-22. (At that time, the date of the most recent commit
       that was found in the repository was 2023-12-14.) If you discover
       any rendering problems in this HTML version of the page, or you
       believe there is a better or more up-to-date source for the page,
       or you have corrections or improvements to the information in
       this COLOPHON (which is not part of the original manual page),
       send a mail to

util-linux 2.39.1041-8a7c      2023-12-22                       DMESG(1)

Pages that refer to this page: syslog(2)proc(5)systemd.exec(5)terminal-colors.d(5)babeltrace2-plugin-text(7)babeltrace2-source.text.dmesg(7)iptables-extensions(8)tc-bpf(8)wg(8)