MAN(1) manual page
Table of Contents
man - an interface to the on-line reference manuals
man [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L locale] [-m system[,...]]
[-M path] [-S list] [-e extension] [-i|-I] [--regex|--wildcard] [--names-only] [-a] [-u]
[--no-subpages] [-P pager] [-r prompt] [-7] [-E encoding] [--no-hyphenation] [--no-justification]
[-p string] [-t] [-T[device]] [-H[browser]] [-X[dpi]] [-Z] [[section] page ...] ...
man -k [apropos options] regexp ...
man -K [-w|-W] [-S list] [-i|-I] [--regex] [section] term ...
man -f [whatis options] page ...
man -l [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L locale] [-P
pager] [-r prompt] [-7] [-E encoding] [-p string] [-t] [-T[device]] [-H[browser]]
[-X[dpi]] [-Z] file ...
man -w|-W [-C file] [-d] [-D] page ...
man -c [-C file] [-d] [-D] page ...
man [-hV]
man is the system’s manual pager. Each page argument
given to man is normally the name of a program, utility or function. The
manual page associated with each of these arguments is then found and displayed.
A section, if provided, will direct man to look only in that section of
the manual. The default action is to search in all of the available sections,
following a pre-defined order and to show only the first page found, even
if page exists in several sections.
The table below shows the section numbers
of the manual followed by the types of pages they contain.
1 | Executable
programs or shell commands |
2 | System calls (functions provided by the kernel)
|
3 | Library calls (functions within program libraries) |
4 | Special files (usually
found in /dev) |
5 | File formats and conventions eg /etc/passwd |
6 | Games |
7 | Miscellaneous
(including macro packages and conventions), e.g. man(7)
, groff(7)
|
8 | System
administration commands (usually only for root) |
9 | Kernel routines [Non standard]
|
A manual page consists of several sections.
Conventional section names
include NAME, SYNOPSIS, CONFIGURATION, DESCRIPTION, OPTIONS, EXIT STATUS,
RETURN VALUE, ERRORS, ENVIRONMENT, FILES, VERSIONS, CONFORMING TO, NOTES,
BUGS, EXAMPLE, AUTHORS, and SEE ALSO.
The following conventions apply to
the SYNOPSIS section and can be used as a guide in other sections.
bold
text | type exactly as shown. |
italic text | replace with appropriate argument. |
[-abc] | any
or all arguments within [ ] are optional. |
-a|-b | options delimited by | cannot
be used together. |
argument ... | argument is repeatable. |
[expression] ... | entire expression within
[ ] is repeatable. |
Exact rendering may vary depending on the output device.
For instance, man will usually not be able to render italics when running
in a terminal, and will typically use underlined or coloured text instead.
The command or function illustration is a pattern that should match all
possible invocations. In some cases it is advisable to illustrate several
exclusive invocations as is shown in the SYNOPSIS section of this manual
page.
- man ls
- Display the manual page for the item (program) ls.
- man -a intro
- Display, in succession, all of the available intro manual pages contained
within the manual. It is possible to quit between successive displays or
skip any of them.
- man -t alias | lpr -Pps
- Format the manual page referenced
by ‘alias’, usually a shell manual page, into the default troff or groff
format and pipe it to the printer named ps. The default output for groff
is usually PostScript. man --help should advise as to which processor is bound
to the -t option.
- man -l -Tdvi ./foo.1x.gz > ./foo.1x.dvi
- This command will decompress
and format the nroff source manual page ./foo.1x.gz into a device independent
(dvi) file. The redirection is necessary as the -T flag causes output to
be directed to stdout with no pager. The output could be viewed with a program
such as xdvi or further processed into PostScript using a program such
as dvips.
- man -k printf
- Search the short descriptions and manual page names
for the keyword printf as regular expression. Print out any matches. Equivalent
to apropos -r printf.
- man -f smail
- Lookup the manual pages referenced by smail
and print out the short descriptions of any found. Equivalent to whatis -r smail.
Many options are available to man in order to give as much flexibility
as possible to the user. Changes can be made to the search path, section
order, output processor, and other behaviours and operations detailed below.
If set, various environment variables are interrogated to determine the
operation of man. It is possible to set the ‘catch all’ variable $MANOPT to
any string in command line format with the exception that any spaces used
as part of an option’s argument must be escaped (preceded by a backslash).
man will parse $MANOPT prior to parsing its own command line. Those options
requiring an argument will be overridden by the same options found on the
command line. To reset all of the options set in $MANOPT, -D can be specified
as the initial command line option. This will allow man to ‘forget’ about
the options specified in $MANOPT although they must still have been valid.
The manual pager utilities packaged as man-db make extensive use of index
database caches. These caches contain information such as where each manual
page can be found on the filesystem and what its whatis (short one line
description of the man page) contains, and allow man to run faster than
if it had to search the filesystem each time to find the appropriate manual
page. If requested using the -u option, man will ensure that the caches remain
consistent, which can obviate the need to manually run software to update
traditional whatis text databases.
If man cannot find a mandb initiated
index database for a particular manual page hierarchy, it will still search
for the requested manual pages, although file globbing will be necessary
to search within that hierarchy. If whatis or apropos fails to find an index
it will try to extract information from a traditional whatis database instead.
These utilities support compressed source nroff files having, by default,
the extensions of .Z, .z and .gz. It is possible to deal with any compression
extension, but this information must be known at compile time. Also, by
default, any cat pages produced are compressed using gzip. Each ‘global’ manual
page hierarchy such as /usr/share/man or /usr/X11R6/man may have any directory
as its cat page hierarchy. Traditionally the cat pages are stored under
the same hierarchy as the man pages, but for reasons such as those specified
in the File Hierarchy Standard (FHS), it may be better to store them elsewhere.
For details on how to do this, please read manpath(5)
. For details on why
to do this, read the standard.
International support is available with
this package. Native language manual pages are accessible (if available
on your system) via use of locale functions. To activate such support, it
is necessary to set either $LC_MESSAGES, $LANG or another system dependent
environment variable to your language locale, usually specified in the
POSIX 1003.1 based format:
<language>[_<territory>[.<character-set>[,<version>]]]
If the desired page is available in your locale, it will be displayed
in lieu of the standard (usually American English) page.
Support for international
message catalogues is also featured in this package and can be activated
in the same way, again if available. If you find that the manual pages and
message catalogues supplied with this package are not available in your
native language and you would like to supply them, please contact the maintainer
who will be coordinating such activity.
For information regarding other
features and extensions available with this manual pager, please read the
documents supplied with the package.
man will search for the desired
manual pages within the index database caches. If the -u option is given,
a cache consistency check is performed to ensure the databases accurately
reflect the filesystem. If this option is always given, it is not generally
necessary to run mandb after the caches are initially created, unless a
cache becomes corrupt. However, the cache consistency check can be slow
on systems with many manual pages installed, so it is not performed by
default, and system administrators may wish to run mandb every week or
so to keep the database caches fresh. To forestall problems caused by outdated
caches, man will fall back to file globbing if a cache lookup fails, just
as it would if no cache was present.
Once a manual page has been located,
a check is performed to find out if a relative preformatted ‘cat’ file already
exists and is newer than the nroff file. If it does and is, this preformatted
file is (usually) decompressed and then displayed, via use of a pager. The
pager can be specified in a number of ways, or else will fall back to a
default is used (see option -P for details). If no cat is found or is older
than the nroff file, the nroff is filtered through various programs and
is shown immediately.
If a cat file can be produced (a relative cat directory
exists and has appropriate permissions), man will compress and store the
cat file in the background.
The filters are deciphered by a number of means.
Firstly, the command line option -p or the environment variable $MANROFFSEQ
is interrogated. If -p was not used and the environment variable was not
set, the initial line of the nroff file is parsed for a preprocessor string.
To contain a valid preprocessor string, the first line must resemble
’\"
<string>
where string can be any combination of letters described by option
-p below.
If none of the above methods provide any filter information, a
default set is used.
A formatting pipeline is formed from the filters and
the primary formatter (nroff or [tg]roff with -t) and executed. Alternatively,
if an executable program mandb_nfmt (or mandb_tfmt with -t) exists in the
man tree root, it is executed instead. It gets passed the manual source
file, the preprocessor string, and optionally the device specified with
-T or -E as arguments.
Non argument options that are duplicated either
on the command line, in $MANOPT, or both, are not harmful. For options that
require an argument, each duplication will override the previous argument
value.
- -C file, --config-file=file
- Use this user configuration
file rather than the default of ~/.manpath.
- -d, --debug
- Print debugging information.
- -D, --default
- This option is normally issued as the very first option and
resets man’s behaviour to its default. Its use is to reset those options
that may have been set in $MANOPT. Any options that follow -D will have their
usual effect.
- --warnings[=warnings]
- Enable warnings from groff. This may be
used to perform sanity checks on the source text of manual pages. warnings
is a comma-separated list of warning names; if it is not supplied, the default
is "mac". See the lqWarningsrq node in info groff for a list of available
warning names.
- -f, --whatis
- Equivalent to whatis. Display
a short description from the manual page, if available. See whatis(1)
for
details.
- -k, --apropos
- Equivalent to apropos. Search the short manual page descriptions
for keywords and display any matches. See apropos(1)
for details.
- -K, --global-apropos
- Search for text in all manual pages. This is a brute-force search, and is
likely to take some time; if you can, you should specify a section to reduce
the number of pages that need to be searched. Search terms may be simple
strings (the default), or regular expressions if the --regex option is used.
- -l, --local-file
- Activate ‘local’ mode. Format and display local manual files
instead of searching through the system’s manual collection. Each manual
page argument will be interpreted as an nroff source file in the correct
format. No cat file is produced. If ’-’ is listed as one of the arguments,
input will be taken from stdin. When this option is not used, and man fails
to find the page required, before displaying the error message, it attempts
to act as if this option was supplied, using the name as a filename and
looking for an exact match.
- -w, --where, --location
- Don’t actually display the
manual pages, but do print the location(s) of the source nroff files that
would be formatted.
- -W, --where-cat, --location-cat
- Don’t actually display the manual
pages, but do print the location(s) of the cat files that would be displayed.
If -w and -W are both specified, print both separated by a space.
- -c, --catman
- This option is not for general use and should only be used by the catman
program.
- -R encoding, --recode=encoding
- Instead of formatting the manual page
in the usual way, output its source converted to the specified encoding.
If you already know the encoding of the source file, you can also use manconv(1)
directly. However, this option allows you to convert several manual pages
to a single encoding without having to explicitly state the encoding of
each, provided that they were already installed in a structure similar
to a manual page hierarchy.
- -L locale, --locale=locale
- man
will normally determine your current locale by a call to the C function
setlocale(3)
which interrogates various environment variables, possibly
including $LC_MESSAGES and $LANG. To temporarily override the determined
value, use this option to supply a locale string directly to man. Note that
it will not take effect until the search for pages actually begins. Output
such as the help message will always be displayed in the initially determined
locale.
-m system[,...], --systems=system[,...]
If this system has access
to other operating system’s manual pages, they can be accessed using this
option. To search for a manual page from NewOS’s manual page collection,
use the option -m NewOS.
The system specified can be a combination of comma
delimited operating system names. To include a search of the native operating
system’s manual pages, include the system name man in the argument string.
This option will override the $SYSTEM environment variable.
- -M path, --manpath=path
- Specify an alternate manpath to use. By default, man uses manpath derived
code to determine the path to search. This option overrides the $MANPATH
environment variable and causes option -m to be ignored.
A path specified
as a manpath must be the root of a manual page hierarchy structured into
sections as described in the man-db manual (under "The manual page system").
To view manual pages outside such hierarchies, see the -l option.
- -S list, -s list, --sections=list
- List is a colon- or comma-separated list of ‘order specific’ manual sections
to search. This option overrides the $MANSECT environment variable. (The
-s spelling is for compatibility with System V.)
- -e sub-extension, --extension=sub-extension
- Some systems incorporate large packages of manual pages, such as those
that accompany the Tcl package, into the main manual page hierarchy. To
get around the problem of having two manual pages with the same name such
as exit(3)
, the Tcl pages were usually all assigned to section l. As this
is unfortunate, it is now possible to put the pages in the correct section,
and to assign a specific ‘extension’ to them, in this case, exit(3tcl)
. Under
normal operation, man will display exit(3)
in preference to exit(3tcl)
.
To negotiate this situation and to avoid having to know which section the
page you require resides in, it is now possible to give man a sub-extension
string indicating which package the page must belong to. Using the above
example, supplying the option -e tcl to man will restrict the search to pages
having an extension of *tcl.
- -i, --ignore-case
- Ignore case when searching for
manual pages. This is the default.
- -I, --match-case
- Search for manual pages case-sensitively.
- --regex
- Show all pages with any part of either their names or their descriptions
matching each page argument as a regular expression, as with apropos(1)
.
Since there is usually no reasonable way to pick a "best" page when searching
for a regular expression, this option implies -a.
- --wildcard
- Show all pages
with any part of either their names or their descriptions matching each
page argument using shell-style wildcards, as with apropos(1)
--wildcard. The
page argument must match the entire name or description, or match on word
boundaries in the description. Since there is usually no reasonable way
to pick a "best" page when searching for a wildcard, this option implies
-a.
- --names-only
- If the --regex or --wildcard option is used, match only page names,
not page descriptions, as with whatis(1)
. Otherwise, no effect.
- -a, --all
- By
default, man will exit after displaying the most suitable manual page it
finds. Using this option forces man to display all the manual pages with
names that match the search criteria.
- -u, --update
- This option causes man to
perform an ‘inode level’ consistency check on its database caches to ensure
that they are an accurate representation of the filesystem. It will only
have a useful effect if man is installed with the setuid bit set.
- --no-subpages
- By default, man will try to interpret pairs of manual page names given
on the command line as equivalent to a single manual page name containing
a hyphen or an underscore. This supports the common pattern of programs
that implement a number of subcommands, allowing them to provide manual
pages for each that can be accessed using similar syntax as would be used
to invoke the subcommands themselves. For example:
$ man -aw git diff
/usr/share/man/man1/git-diff.1.gz
To disable this behaviour, use the --no-subpages option.
$ man -aw --no-subpages git diff
/usr/share/man/man1/git.1.gz
/usr/share/man/man3/Git.3pm.gz
/usr/share/man/man1/diff.1.gz
- -P pager, --pager=pager
- Specify which output pager
to use. By default, man uses less -s. This option overrides the $MANPAGER
environment variable, which in turn overrides the $PAGER environment variable.
It is not used in conjunction with -f or -k.
The value may be a simple command
name or a command with arguments, and may use shell quoting (backslashes,
single quotes, or double quotes). It may not use pipes to connect multiple
commands; if you need that, use a wrapper script, which may take the file
to display either as an argument or on standard input.
- -r prompt, --prompt=prompt
- If a recent version of less is used as the pager, man will attempt to set
its prompt and some sensible options. The default prompt looks like
Manual
page name(sec) line x
where name denotes the manual page name, sec denotes
the section it was found under and x the current line number. This is
achieved by using the $LESS environment variable.
Supplying -r with a
string will override this default. The string may contain the text $MAN_PN
which will be expanded to the name of the current manual page and its section
name surrounded by ‘(’ and ‘)’. The string used to produce the default could
be expressed as
\ Manual\ page\ \$MAN_PN\ ?ltline\ %lt?L/%L.:
byte\ %bB?s/%s..?\ (END):?pB\ %pB\\%..
(press h for help or q to quit)
It is broken into three lines here for
the sake of readability only. For its meaning see the less(1)
manual page.
The prompt string is first evaluated by the shell. All double quotes, back-quotes
and backslashes in the prompt must be escaped by a preceding backslash.
The prompt string may end in an escaped $ which may be followed by further
options for less. By default man sets the -ix8 options.
If you want to override
man’s prompt string processing completely, use the $MANLESS environment
variable described below.
- -7, --ascii
- When viewing a pure ascii(7)
manual page
on a 7 bit terminal or terminal emulator, some characters may not display
correctly when using the latin1(7)
device description with GNU nroff. This
option allows pure ascii manual pages to be displayed in ascii with the
latin1 device. It will not translate any latin1 text. The following table
shows the translations performed: some parts of it may only be displayed
properly when using GNU nroff’s latin1(7)
device.
Description | Octal | latin1 | ascii |
continuation hyphen | 255 | softhyphen] | - |
bullet (middle dot) | 267 | · | o |
acute accent | 264 | ´ | ’ |
multiplication
sign | 327 | × | x |
If the latin1 column displays correctly, your terminal may be
set up for latin1 characters and this option is not necessary. If the latin1
and ascii columns are identical, you are reading this page using this option
or man did not format this page using the latin1 device description. If
the latin1 column is missing or corrupt, you may need to view manual pages
with this option.
This option is ignored when using options -t, -H, -T, or
-Z and may be useless for nroff other than GNU’s.
- -E encoding, --encoding=encoding
- Generate output for a character encoding other than the default. For backward
compatibility, encoding may be an nroff device such as ascii, latin1, or
utf8 as well as a true character encoding such as UTF-8.
- --no-hyphenation, --nh
- Normally, nroff will automatically hyphenate text at line breaks even in
words that do not contain hyphens, if it is necessary to do so to lay out
words on a line without excessive spacing. This option disables automatic
hyphenation, so words will only be hyphenated if they already contain hyphens.
If you are writing a manual page and simply want to prevent nroff from
hyphenating a word at an inappropriate point, do not use this option, but
consult the nroff documentation instead; for instance, you can put "\%"
inside a word to indicate that it may be hyphenated at that point, or put
"\%" at the start of a word to prevent it from being hyphenated.
- --no-justification,
--nj
- Normally, nroff will automatically justify text to both margins. This
option disables full justification, leaving justified only to the left
margin, sometimes called "ragged-right" text.
If you are writing a manual
page and simply want to prevent nroff from justifying certain paragraphs,
do not use this option, but consult the nroff documentation instead; for
instance, you can use the ".na", ".nf", ".fi", and ".ad" requests to temporarily
disable adjusting and filling.
- -p string, --preprocessor=string
- Specify the sequence
of preprocessors to run before nroff or troff/groff. Not all installations
will have a full set of preprocessors. Some of the preprocessors and the
letters used to designate them are: eqn (e), grap (g), pic (p)
, tbl (t),
vgrind (v), refer (r). This option overrides the $MANROFFSEQ environment
variable. zsoelim is always run as the very first preprocessor.
- -t, --troff
- Use groff -mandoc to format the manual page to stdout. This option is not
required in conjunction with -H, -T, or -Z.
- -T[device], --troff-device[=device]
- This option is used to change groff (or possibly troff’s) output to be suitable
for a device other than the default. It implies -t. Examples (provided with
Groff-1.17) include dvi, latin1, ps, utf8, X75 and X100.
- -H[browser], --html[=browser]
- This option will cause groff to produce HTML output, and will display that
output in a web browser. The choice of browser is determined by the optional
browser argument if one is provided, by the $BROWSER environment variable,
or by a compile-time default if that is unset (usually lynx). This option
implies -t, and will only work with GNU troff.
- -X[dpi], --gxditview[=dpi]
- This
option displays the output of groff in a graphical window using the gxditview
program. The dpi (dots per inch) may be 75, 75-12, 100, or 100-12, defaulting
to 75; the -12 variants use a 12-point base font. This option implies -T with
the X75, X75-12, X100, or X100-12 device respectively.
- -Z, --ditroff
- groff will
run troff and then use an appropriate post-processor to produce output suitable
for the chosen device. If groff -mandoc is groff, this option is passed to
groff and will suppress the use of a post-processor. It implies -t.
- -h, --help
- Print a help message and exit.
- -V, --version
- Display version information.
- Successful program execution.
- Usage, syntax or configuration
file error.
- Operational error.
- A child process returned a non-zero exit status.
- At least one of the pages/files/keywords didn’t exist or wasn’t matched.
- MANPATH
- If $MANPATH is set, its value is used as the path to search for
manual pages.
- MANROFFOPT
- The contents of $MANROFFOPT are added to the command
line every time man invokes the formatter (nroff, troff, or groff).
- MANROFFSEQ
- If $MANROFFSEQ is set, its value is used to determine the set of preprocessors
to pass each manual page through. The default preprocessor list is system
dependent.
- MANSECT
- If $MANSECT is set, its value is a colon-delimited list
of sections and it is used to determine which manual sections to search
and in what order.
- MANPAGER, PAGER
- If $MANPAGER or $PAGER is set ($MANPAGER
is used in preference), its value is used as the name of the program used
to display the manual page. By default, less -s is used.
The value may be
a simple command name or a command with arguments, and may use shell quoting
(backslashes, single quotes, or double quotes). It may not use pipes to
connect multiple commands; if you need that, use a wrapper script, which
may take the file to display either as an argument or on standard input.
- MANLESS
- If $MANLESS is set, man will not perform any of its usual processing
to set up a prompt string for the less pager. Instead, the value of $MANLESS
will be copied verbatim into $LESS. For example, if you want to set the
prompt string unconditionally to lqmy prompt stringrq, set $MANLESS to
oq-Psmy prompt stringcq.
- BROWSER
- If $BROWSER is set, its value is a colon-delimited
list of commands, each of which in turn is used to try to start a web browser
for man --html. In each command, %s is replaced by a filename containing the
HTML output from groff, %% is replaced by a single percent sign (%), and
%c is replaced by a colon (:).
- SYSTEM
- If $SYSTEM is set, it will have the
same effect as if it had been specified as the argument to the -m option.
- MANOPT
- If $MANOPT is set, it will be parsed prior to man’s command line
and is expected to be in a similar format. As all of the other man specific
environment variables can be expressed as command line options, and are
thus candidates for being included in $MANOPT it is expected that they
will become obsolete. N.B. All spaces that should be interpreted as part of
an option’s argument must be escaped.
- MANWIDTH
- If $MANWIDTH is set, its value
is used as the line length for which manual pages should be formatted. If
it is not set, manual pages will be formatted with a line length appropriate
to the current terminal (using an ioctl(2)
if available, the value of $COLUMNS,
or falling back to 80 characters if neither is available). Cat pages will
only be saved when the default formatting can be used, that is when the
terminal line length is between 66 and 80 characters.
- MAN_KEEP_FORMATTING
- Normally, when output is not being directed to a terminal (such as to a
file or a pipe), formatting characters are discarded to make it easier
to read the result without special tools. However, if $MAN_KEEP_FORMATTING
is set to any non-empty value, these formatting characters are retained.
This may be useful for wrappers around man that can interpret formatting
characters.
- MAN_KEEP_STDERR
- Normally, when output is being directed to a
terminal (usually to a pager), any error output from the command used to
produce formatted versions of manual pages is discarded to avoid interfering
with the pager’s display. Programs such as groff often produce relatively
minor error messages about typographical problems such as poor alignment,
which are unsightly and generally confusing when displayed along with the
manual page. However, some users want to see them anyway, so, if $MAN_KEEP_STDERR
is set to any non-empty value, error output will be displayed as usual.
- LANG,
LC_MESSAGES
- Depending on system and implementation, either or both of $LANG
and $LC_MESSAGES will be interrogated for the current message locale. man
will display its messages in that locale (if available). See setlocale(3)
for precise details.
- /etc/man_db.conf
- man-db configuration file.
- /usr/share/man
- A global manual page hierarchy.
- /usr/share/man/index.(bt|db|dir|pag)
- A traditional
global index database cache.
- /var/cache/man/index.(bt|db|dir|pag)
- An FHS compliant
global index database cache.
apropos(1)
, groff(1)
, less(1)
, manpath(1)
,
nroff(1)
, troff(1)
, whatis(1)
, zsoelim(1)
, setlocale(3)
, manpath(5)
, ascii(7)
,
latin1(7)
, man(7)
, catman(8)
, mandb(8)
, the man-db package manual, FSSTND
1990, 1991 - Originally written by John W. Eaton (jwe@che.utexas.edu).
Dec 23 1992: Rik Faith (faith@cs.unc.edu) applied bug fixes supplied by
Willem Kasdorp (wkasdo@nikhefk.nikef.nl).
30th April 1994 - 23rd February
2000: Wilf. (G.Wilford@ee.surrey.ac.uk) has been developing and maintaining
this package with the help of a few dedicated people.
30th October 1996
- 30th March 2001: Fabrizio Polacco <fpolacco@debian.org> maintained and enhanced
this package for the Debian project, with the help of all the community.
31st March 2001 - present day: Colin Watson <cjwatson@debian.org> is now developing
and maintaining man-db.
Table of Contents