# man > dmesg(1)

---
type: CommandReference
command: dmesg
mode: man
section: 1
source: man-pages
---

## Quick Reference

- `sudo dmesg` — Show kernel messages
- `sudo dmesg -H` — Show kernel messages in human-readable format (with pager)
- `sudo dmesg -l err` — Show kernel error messages only
- `sudo dmesg -w` — Wait for new messages (like `tail -f`)
- `sudo dmesg --since "1 hour ago"` — Show messages from the last hour
- `sudo dmesg -e` — Show timestamps as differences from local time
- `sudo dmesg -T` — Show human-readable timestamps
- `sudo dmesg -L` — Colorize output

## Name

`dmesg` — print or control the kernel ring buffer

## Synopsis

`dmesg [options]`

`dmesg --clear`

`dmesg --read-clear [options]`

`dmesg --console-level level`

`dmesg --console-on`

`dmesg --console-off`

## Options

### General

- `-C, --clear` — Clear the ring buffer
- `-c, --read-clear` — Clear ring buffer after printing its contents
- `-D, --console-off` — Disable printing of messages to the console
- `-E, --console-on` — Enable printing messages to the console
- `-n, --console-level level` — Set console message level (level number or name)
- `-V, --version` — Display version information and exit
- `-h, --help` — Display help text and exit

### Output Control

- `-F, --file file` — Read syslog messages from a file (old syslog format only)
- `-f, --facility list` — Restrict output to comma-separated facility list (e.g., `daemon`)
- `-k, --kernel` — Print kernel messages only
- `-l, --level list` — Restrict output to comma-separated level list (e.g., `err,warn`)
- `-u, --userspace` — Print userspace messages only
- `-x, --decode` — Decode facility and level numbers to human-readable prefixes

### Formatting

- `-H, --human` — Enable human-readable output (implies pager, color, reltime)
- `-L, --color [when]` — Colorize output (auto/never/always)
- `-P, --nopager` — Do not pipe output into a pager
- `-r, --raw` — Print raw message buffer (do not strip log-level prefixes)
- `--noescape` — Disable escaping of unprintable characters (use with caution)
- `-p, --force-prefix` — Add facility/level/timestamp to each line of multi-line messages
- `-t, --notime` — Do not print kernel’s timestamps
- `--time-format format` — Print timestamps in given format: ctime, reltime, delta, or iso

### Timestamp Options

- `-d, --show-delta` — Display timestamp and time delta between messages
- `-e, --reltime` — Display local time and delta in human-readable format
- `-T, --ctime` — Print human-readable timestamps (may be inaccurate after suspend/resume)
- `--since time` — Display records since specified time (absolute or relative)
- `--until time` — Display records until specified time (absolute or relative)

### Miscellaneous

- `-S, --syslog` — Force use of syslog(2) kernel interface (default uses /dev/kmsg)
- `-s, --buffer-size size` — Use buffer of given size to query kernel ring buffer
- `-w, --follow` — Wait for new messages (requires /dev/kmsg, kernel 3.5.0+)
- `-W, --follow-new` — Wait and print only new messages

## Examples

- Show kernel messages:
  `sudo dmesg`

- Show kernel messages in human-readable format:
  `sudo dmesg -H`

- Show kernel error messages:
  `sudo dmesg -l err`

- Follow new messages (like `tail -f`):
  `sudo dmesg -w`

- Show messages from the last hour:
  `sudo dmesg --since "1 hour ago"`

- Show timestamps as differences from local time:
  `sudo dmesg -e`

- Show human-readable timestamps:
  `sudo dmesg -T`

- Colorize output:
  `sudo dmesg -L`

## See Also

- [terminal-colors.d(5)](https://www.chedong.com/phpMan.php/man/terminal-colors.d/5/markdown)
- [syslogd(8)](https://www.chedong.com/phpMan.php/man/syslogd/8/markdown)
- [syslog(2)](https://www.chedong.com/phpMan.php/man/syslog/2/markdown) (for kernel interface details)

## Exit Codes

`dmesg` may fail with a permission denied error if the `dmesg_restrict` kernel setting is enabled. See [syslog(2)](https://www.chedong.com/phpMan.php/man/syslog/2/markdown) for more information.