man
an interface to the on-line reference manuals
see also :
apropos - groff - less - manpath - nroff - troff - whatis - zsoelim - catman - mandb
Synopsis
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]
add an example, a script, a trick and tips
examples
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.
man ascii : This prints out the ascii tables in octal, hexadeciamal and decimal.
example added by LeBerger
man ascii : This prints out the ascii tables in octal, hexadeciamal and decimal.
example added by LeBerger
source
How to jump to a particular flag in a Unix manpage?
What I do is put a few blank spaces in front of the flag like so:
"/ -o"
That's not 100% reliable but you jump through a much less hoops.
If you want even better success rate, try "/^ +-o"
.
That would find lines starting with blanks and followed by -o. I
wouldn't like to type that weird string often though.
source
Linux Man command help
I guess you need:
man man
source
Linux 'man' command: How do I search for a word/phrase and cycle through?
Type /
followed by Enter; an empty regex
always means the previous successfully matched regex.
source
How do you switch between Linux manual pages?
man 2 accept
will display section 2, for example.
source
Searching for a specific option in a man page
This is the function I use. I call it "mans" for "man search".
mans ()
{
local pages string;
if [[ -n $2 ]]; then
pages=(${@:2});
string="$1";
else
pages=$1;
fi;
man ${2:+--pager="less -p \"$string\" -G"} ${pages[@]}
}
Usage:
$ mans ^OPTIONS grep find xargs
source
How do I execute a Linux command whilst using the less command or within the man pages?
You can access the command line using bang (!
)
within less.
So for example, if you type:
touch temp.txt
ls | less
!rm temp.txt
And temp.txt should be gone.
Edit: By default it seems that man now uses less
to page (for some reason I thought it used more
,
maybe in the past it did). You can use the same trick, but it
requires the full path (eg. /home/user/...) to get it to work.
This is because invoking man changes the current working
directory. On my machine (xubuntu, using
xfce-terminal
) it goes to
/usr/share/man
. If your console displays the CWD you
can see it change, or you can see it from within man
by entering:
!pwd
source
Linux: disable man from showing mans in non-English languages
Set LANG
to C
or to en_US
.
This will be affect of all programs unless you add an alias for
man that sets the variable accordingly.
alias man='LANG=C man'
[edit: I tested it, LC_MESSAGES
changed the error
message language, but not the manpage language]
source
How does man work in linux?
From the man(1)
man page:
SEARCH PATH FOR MANUAL PAGES
man uses a sophisticated method of finding manual page files, based on
the invocation options and environment variables, the /etc/man.config
configuration file, and some built in conventions and heuristics.
First of all, when the name argument to man contains a slash (/), man
assumes it is a file specification itself, and there is no searching
involved.
But in the normal case where name doesn’t contain a slash, man searches
a variety of directories for a file that could be a manual page for the
topic named.
There's a lot more text in there though. I'll let you read it at
your leisure.
source
In Linux, how to get the man page for compiled programs?
Are you configuring your software build with the default
locations (in /usr) and installing as root? (but not building as
root i hope). If so, then the man pages, if there are any, should
be installed where man
can already see them.
If you are installing to a nonstandard location, you need to let
man
know where they are. You can use the
MANPATH
environment variable to do this. Set it to
the normal man
directories, and add your install dir
to it as well. Something like export
MANPATH=/usr/share/man:/path/to/your/dir
EDIT: Also, I am not sure about the 'man
database'. There really isn't one. There are some distributions
that do post processing of the man pages, either compress it, or
uncompress it. But they don't really keep a list of man pages
anywhere. In pseudo code:
for DIR in $MANPATH
for SEC in $MANSECTIONS (or just the one section if you give as `-s SEC`)
open dirlist for $DIR/man${SEC}
in dir list list, look for $COMMAND.$SEC
if you find it, display and exit
This may be your issue. If you installed to a non-standard dir,
is the naming convention right? If you have a file bubba.1, then
the file should be installed into some path
/path/to/bubba/install/man1/bubba.1
and
MANPATH=/usr/share/man:/path/to/bubba/install
source
Pointing man pages to different location
You can control what man
looks for using the
environment variable MANPATH
. Works the same way the
PATH
variable works. Directories are separated by
colons, i.e. ":"
. Just prepend directories to the
beginning of it to override where man
looks for man
pages.
in a bash shell:
% export MANPATH=/some/new/dir:$MANPATH
You can see what it's set to with this command:
% echo $MANPATH
Don't be surprised if it's empty. man
makes use of a
config file, /etc/man.config
which drives where
man
should look for man pages. It will have entries
like this:
MANPATH /usr/man
MANPATH /usr/share/man
MANPATH /usr/local/man
MANPATH /usr/local/share/man
You can see the effect of these entries along with your
MANPATH
variable with the command
manpath
.
% echo $MANPATH
% manpath
/usr/kerberos/man:/usr/local/share/man:/usr/share/man/en:/usr/share/man:/usr/local/man
source
Search which man sections contain a given entry
Try whatis
(eg, whatis printf
). The
sections of man are not random. See Wikipedia: Man page. For example, section 2
contains only System calls while section 3 only contains C
Library calls. There is a version of printf
for use
on the command line so it is located in section 1. But there is
also one in the C Library so that is located in section 3.
source
How can I get file information in 'less' like with 'man'?
less is designed to work with a stream (a pipe) which length is
normally not known. Man is always working on file, so it could
always provide this information.
source
How do I find info about "sticky bits" from within Linux without having to use Google?
Try:
man 2 chmod
Or, if you feel like digging through source,
vi /usr/include/sys/stat.h
Possibly also helpful (though absent from CentOS 6, per
DanielBeck's comment):
man 8 sticky
source
in VI and man command, how to exactly match a string?
Press / and enter the regular expression for the string you want to
match, then press Enter.
description
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.

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.

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.
options
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.
General
options
-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
“Warnings” node in info groff for a list
of available warning names.
Main modes
of operation
-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.
Finding
manual pages
-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
Controlling
formatted output
-P pager, --pager=pager
Specify which output pager to
use. By default, man uses pager -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.

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.
Getting help
-h, --help
Print a help message and
exit.
-V,
--version
Display version
information.
defaults
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.
environment
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, pager -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 “my prompt string”, set
$MANLESS to ’-Psmy prompt string’.
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.
exit status
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.
files
/etc/manpath.config
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.
overview
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.
history
1990, 1991
- Originally written by John W. Eaton
(jwe[:at:]che.utexas[:dot:]edu).
Dec 23 1992:
Rik Faith (faith[:at:]cs.unc[:dot:]edu) applied bug fixes supplied by
Willem Kasdorp (wkasdo[:at:]nikhefk.nikef[:dot:]nl).
30th April 1994
- 23rd February 2000: Wilf.
(G.Wilford[:at:]ee.surrey.ac[:dot:]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[:at:]debian[:dot:]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[:at:]debian[:dot:]org> is now developing and
maintaining man-db.
see also
apropos ,
groff , less , manpath ,
nroff , troff , whatis ,
zsoelim , setlocale, manpath,
ascii, latin1, man,
catman , mandb , the man-db package
manual, FSSTND