Linux man pages
Linux manual pages, often called man pages are the documentation available in command line. Even we have much information in Google nowadays, those still are very useful because they are accessible from the command line straight away. Typically include details about specific program options, rather than answers on more general questions, why some thing does not work as expected.
Sections
Man pages are structured and divided into sections, to make your life a little bit easier:
Section | Contents ---------------------------------------------- 1 | User-level commands and applications 2 | System calls and kernel error codes 3 | Library calls 4 | Device drivers and network protocols 5 | Standard file formats 6 | Games and demonstrations 7 | Miscellaneous files and documents 8 | System administration commands 9 | Obscure kernel specs and interfaces
man
command sends a specific manual page to your terminal through more
, less
or any other editor specified in PAGER
environment variable.
Usage
To get all of the information just type man <program_name>
$ man systemctl SYSTEMCTL(1) systemctl SYSTEMCTL(1) NAME systemctl - Control the systemd system and service manager SYNOPSIS systemctl [OPTIONS...] COMMAND [UNIT...] [...]
To dive into specific version, eg system calls, type man 2 sync
Searching
man -k <keyword>
or apropos <keyword>
searches man pages that have <keyword>
in their synopses, eg:
$ man -k ssh man: can't set the locale; make sure $LC_* and $LANG are correct scp (1) - OpenSSH secure file copy sftp (1) - OpenSSH secure file transfer sftp-server (8) - OpenSSH SFTP server subsystem ssh (1) - OpenSSH remote login client ssh-add (1) - adds private key identities to the OpenSSH authentication agent ssh-agent (1) - OpenSSH authentication agent [...]
Those search results can be outdated. If you add some packages or man pages itself, you need to rebuild the database with mandb
command.
The current search path can be found with manpath
command. If necessary, this path can be overriden by setting MANPATH
environment variable
$ manpath /usr/local/man:/usr/local/share/man:/usr/share/man $ export MANPATH=/some/other/source $ manpath /some/other/source