MAN(1) Manual pager utils MAN(1)
man - an interface to the on-line reference manuals
man [-c|-w|-tZ] [-H[browser]] [-T[device]] [-X[dpi]] [-adhu7V] [-i|-I] [-m system[,...]]
[-L locale] [-p string] [-C file] [-M path] [-P pager] [-r prompt] [-S list] [-e exten-
sion] [--warnings [warnings]] [[section] page ...] ...
man -l [-7] [-tZ] [-H[browser]] [-T[device]] [-X[dpi]] [-p string] [-P pager] [-r prompt]
[--warnings[warnings]] file ...
man -k [apropos options] regexp ...
man -f [whatis options] page ...
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
0 Header files (usually found in /usr/include)
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
7 Miscellaneous (including macro packages and conven-
tions), 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
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.
The command or function illustration is a pattern that should match all possible invoca-
tions. In some cases it is advisable to illustrate several exclusive invocations as is
shown in the SYNOPSIS section of this manual page.
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 pro-
gram 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 for-
mat 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 com-
mand 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 speci-
fied 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 hierar-
chy, 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 infor-
mation must be known at compile time. Also, by default, any cat pages produced are com-
pressed 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
If the desired page is available in your locale, it will be displayed in lieu of the stan-
dard (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 mes-
sage 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
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. How-
ever, 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 pre-
formatted `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 permis-
sions), 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 environ-
ment 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
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.
Print debugging information.
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.
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".
Main modes of operation
Equivalent to whatis. Display a short description from the manual page, if avail-
able. See whatis(1) for details.
Equivalent to apropos. Search the short manual page descriptions for keywords and
display any matches. See apropos(1) for details.
Activate `local' mode. Format and display local manual files instead of searching
through the system's manual collection. Each manual page argument will be inter-
preted 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 sepa-
rated by a space.
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.
Finding manual pages
-L locale, --locale=locale
man will normally determine your current locale by a call to the C function setlo-
cale(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
-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 vari-
able and causes option -m to be ignored.
A path specified as a manpath must be the root of a manual page hierarchy struc-
tured into sections as described in the man-db manual (under "The manual page sys-
tem"). 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 accom-
pany the Tcl package, into the main manual page hierarchy. To get around the prob-
lem 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.
Ignore case when searching for manual pages. This is the default.
Search for manual pages case-sensitively.
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.
This option causes man to perform an `inode level' consistency check on its data-
base 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.
Controlling formatted output
-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.
-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
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\\%..
It is broken into two 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 fol-
lowed 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.
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 descrip-
tion 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 follow-
ing 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 - -
bullet (middle dot) 267 o o
acute accent 264 ' '
multiplication sign 327 x 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 cor-
rupt, 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 com-
patibility, encoding may be an nroff device such as ascii, latin1, or utf8 as well
as a true character encoding such as UTF-8.
-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. zsoe-
lim is always run as the very first preprocessor.
Use groff -mandoc to format the manual page to stdout. This option is not required
in conjunction with -H, -T, or -Z.
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.
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.
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.
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.
Print a help message and exit.
Display version information.
0 Successful program execution.
1 Usage, syntax or configuration file error.
2 Operational error.
3 A child process returned a non-zero exit status.
16 At least one of the pages/files/keywords didn't exist or wasn't matched.
If $MANPATH is set, its value is used as the path to search for manual pages.
The contents of $MANROFFOPT are added to the command line every time man invokes
the formatter (nroff, troff, or groff).
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.
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.
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
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 uncondi-
tionally to "my prompt string", set $MANLESS to '-Psmy prompt string'.
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.
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.
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.
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.
man-db configuration file.
A global manual page hierarchy.
A traditional global index database cache.
An FHS compliant global index database cache.
mandb(8), manpath(1), manpath(5), apropos(1), whatis(1), catman(8), less(1), nroff(1),
troff(1), groff(1), zsoelim(1), setlocale(3), man(7), ascii(7), latin1(7), the man-db
package manual, FSSTND.
1990, 1991 - Originally written by John W. Eaton (email@example.com).
Dec 23 1992: Rik Faith (firstname.lastname@example.org) applied bug fixes supplied by Willem Kasdorp
30th April 1994 - 23rd February 2000: Wilf. (G.Wilford@ee.surrey.ac.uk) has been develop-
ing and maintaining this package with the help of a few dedicated people.
30th October 1996 - 30th March 2001: Fabrizio Polacco <email@example.com> maintained and
enhanced this package for the Debian project, with the help of all the community.
31st March 2001 - present day: Colin Watson <firstname.lastname@example.org> is now developing and
2.5.2 2008-05-05 MAN(1)