Skip to content

Finding Documentation

Documentation sources

Linux documentation exists at multiple levels. When you don’t know how to use something, check these in order:

  1. man pages - in-depth reference for commands, config files, syscalls, library functions
  2. --help / -h - quick summary, always at your fingertips
  3. help - for bash built-in commands (cd, echo, read, etc.)
  4. GNU Info - hyperlinked, comprehensive documentation; often more thorough than man
  5. /usr/share/doc/ - package-specific documentation installed alongside software
  6. Online resources - distro wikis, official docs, community forums

The man (manual) pages are the most-used Linux documentation source. They are present on every Linux system, and cover:

  • Programs and shell commands
  • System calls (kernel APIs)
  • Library functions
  • Configuration file formats (/etc/passwd, /etc/fstab)
  • Special files and devices

The man pages infrastructure dates to the early UNIX versions of the 1970s. They are formatted text, pipe through less for paging, and support search.

Terminal window
man ls # open the ls manual page
man 8 useradd # section 8 (admin commands) specifically
man -a socket # show all pages named 'socket' across all sections
# Equivalent pairs:
man -f sysctl # = whatis sysctl → list sections available
man -k sysctl # = apropos sysctl → search all pages for keyword
man -w ls # show path to the man page file
SectionContents
1Executable programs and shell commands
2System calls (kernel-provided functions)
3Library calls (within program libraries)
4Special files (usually in /dev)
5File formats and conventions (e.g., /etc/passwd)
6Games
7Miscellaneous (macro packages, conventions)
8System administration commands (typically root only)
9Kernel routines (non-standard)

Some sections have a letter suffix - for example, chapter 3X covers X Window API functions.

Terminal window
# intro pages exist in every section:
man -f intro
# intro (1) - introduction to user commands
# intro (2) - introduction to system calls
# ...
man 1 intro # user commands intro
man 5 intro # file formats intro
Terminal window
man -k password # all pages mentioning "password" = apropos password
man -k "^ls" # pages whose name starts with ls (regex)

Terminal window
whatis ls
# ls (1) - list directory contents
whatis sysctl
# sysctl (2) - read/write system parameters
# sysctl (8) - configure kernel parameters at runtime
apropos sysctl
# proc (5) - process information, system information...
# sysctl (2) - read/write system parameters
# sysctl (8) - configure kernel parameters at runtime
# sysctl.d (5) - Configure kernel parameters at boot

Most commands support --help (or -h) for a brief usage summary. This is faster than opening a full man page when you just need a syntax reminder:

Terminal window
man --help
tar --help | less
grep --help

When run inside a bash shell, commands like echo and cd are actually bash built-in versions - more efficient than the external binaries under /bin because they require fewer resources and no subprocess fork.

To get documentation for these built-ins:

Terminal window
help # list all bash built-ins
help cd # usage for the cd built-in
help echo # usage for the echo built-in
help read # usage for the read built-in

For built-ins, help does what -h does for standalone programs.


The GNU Info system is the GNU Project’s standard documentation format. It’s an alternative to man and preferred by GNU projects. Info pages:

  • Are free-form (not divided into fixed sections like man pages)
  • Support linked subsections (nodes) - similar in concept to hyperlinks
  • Are often more comprehensive and tutorial-like than man pages
Terminal window
info # browse the index of all topics
info ls # Info page for ls
info coreutils # full GNU coreutils documentation
info bash # very detailed bash reference

Each topic in info is called a node. Nodes are sections and subsections of the documentation. Items that act as links are marked with * at the start of their name (in menus) or :: at the end (inline references).

KeyFunction
nGo to next node
pGo to previous node
uMove up one level in the index
EnterFollow a menu link
qQuit
hHelp (key reference)
sSearch within info

Software installed via your package manager often ships with additional documentation under /usr/share/doc/:

Terminal window
ls /usr/share/doc/ # all packages' doc directories
ls /usr/share/doc/openssh-client/ # example: openssh docs
less /usr/share/doc/bash/README

Content varies by package - may include README files, changelogs, example configs, and upstream documentation.


Desktop environments also include graphical help browsers:

DesktopTool
GNOMEgnome-help (Yelp)
KDEkhelpcenter

These typically contain custom desktop help plus graphically-rendered info and man pages.


Other documentation sources

ResourceURL
Arch Wiki (excellent for all distros)wiki.archlinux.org
Ubuntu Documentationhelp.ubuntu.com
RHEL Documentationaccess.redhat.com/documentation
Gentoo Handbookwiki.gentoo.org/wiki/Handbook
Linux man pages onlineman7.org/linux/man-pages
TLDR pages (short examples)tldr.sh