man(1) — Linux manual page


MAN(1)                       Manual pager utils                       MAN(1)

NAME         top

       man - an interface to the system reference manuals

SYNOPSIS         top

       man [man options] [[section] page ...] ...
       man -k [apropos options] regexp ...
       man -K [man options] [section] term ...
       man -f [whatis options] page ...
       man -l [man options] file ...
       man -w|-W [man options] page ...

DESCRIPTION         top

       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 (see DEFAULTS), and
       to show only the first page found, even if page exists in several

       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, e.g. /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,
       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

       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.

EXAMPLES         top

       man ls
           Display the manual page for the item (program) ls.

       man man.7
           Display the manual page for macro package man from section 7.
           (This is an alternative spelling of "man 7 man".)

       man 'man(7)'
           Display the manual page for macro package man from section 7.
           (This is another alternative spelling of "man 7 man".  It may be
           more convenient when copying and pasting cross-references to
           manual pages.  Note that the parentheses must normally be quoted
           to protect them from the shell.)

       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 bash | lpr -Pps
           Format the manual page for bash 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 printf.

       man -f smail
           Lookup the manual pages referenced by smail and print out the
           short descriptions of any found.  Equivalent to whatis smail.

OVERVIEW         top

       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

       Manual pages are normally stored in nroff(1) format under a directory
       such as /usr/share/man.  In some installations, there may also be
       preformatted cat pages to improve performance.  See manpath(5) for
       details of where these files are stored.

       This package supports manual pages in multiple languages, controlled
       by your locale.  If your system did not set this up for you
       automatically, then you may need to set $LC_MESSAGES, $LANG, or
       another system-dependent environment variable to indicate your
       preferred locale, usually specified in the POSIX format:


       If the desired page is available in your locale, it will be displayed
       in lieu of the standard (usually American English) page.

       If you find that the translations 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.

       Individual manual pages are normally written and maintained by the
       maintainers of the program, function, or other topic that they
       document, and are not included with this package.  If you find that a
       manual page is missing or inadequate, please report that to the
       maintainers of the package in question.

       For information regarding other features and extensions available
       with this manual pager, please read the documents supplied with the

DEFAULTS         top

       The order of sections to search may be overridden by the environment
       variable $MANSECT or by the SECTION directive in
       /usr/local/etc/man_db.conf.  By default it is as follows:

              1 n l 8 3 0 2 5 4 9 6 7

       The formatted manual page is displayed using a pager.  This can be
       specified in a number of ways, or else will fall back to a default
       (see option -P for details).

       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

       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.

OPTIONS         top

       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

       -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.

              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

              Note that this searches the sources of the manual pages, not
              the rendered text, and so may include false positives due to
              things like comments in source files.  Searching the rendered
              text would be much slower.

       -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, --path, --location
              Don't actually display the manual page, but do print the
              location of the source nroff file that would be formatted.  If
              the -a option is also used, then print the locations of all
              source files that match the search criteria.

       -W, --where-cat, --location-cat
              Don't actually display the manual page, but do print the
              location of the preformatted cat file that would be displayed.
              If the -a option is also used, then print the locations of all
              preformatted cat files that match the search criteria.

              If -w and -W are both used, then print both source file and
              cat file separated by a space.  If all of -w, -W, and -a are
              used, then do this for each possible match.

       -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.

              Consider using @TRANS_MAN_RECODE@(1) instead for converting
              multiple manual pages, since it has an interface designed for
              bulk conversion and so can be much faster.

   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
              The given list is a colon- or comma-separated list of
              sections, used to determine which manual sections to search
              and in what order.  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

       -I, --match-case
              Search for manual pages case-sensitively.

              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.

              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.

              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

       -u, --update
              This option causes man to update its database caches of
              installed manual pages.  This is only needed in rare
              situations, and it is normally better to run mandb(8) instead.

              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

              To disable this behaviour, use the --no-subpages option.

                $ man -aw --no-subpages git diff

   Controlling formatted output
       -P pager, --pager=pager
              Specify which output pager to use.  By default, man uses less,
              falling back to cat if less is not found or is not executable.
              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.

              The $MANLESS environment variable described below may be used
              to set a default prompt string if none is supplied on the
              command line.

       -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      255      ‐        -
              bullet (middle    267      •        o
              acute accent      264      ´        '
              multiplication    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

       -t, --troff
              Use  @troff_as_troff_input@  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 @troff_as_troff_input@ is groff, this option is  passed  to
              groff  and  will  suppress  the  use  of a post-processor.  It
              implies -t.

   Getting help
       -?, --help
              Print a help message and exit.

              Print a short usage message and exit.

       -V, --version
              Display version information.

EXIT STATUS         top

       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.

ENVIRONMENT         top

              If $MANPATH is set, its value is used as the path to search
              for manual pages.

              Every time man invokes the formatter (nroff, troff, or groff),
              it adds the contents of $MANROFFOPT to the formatter's command

              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.  The default is "1 n l 8 3 0 2 5 4 9
              6 7", unless overridden by the SECTION directive in

              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 is used, falling
              back to cat if less is not found or is not executable.

              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.

              If $MANLESS is set, its value will be used as the default
              prompt string for the less pager, as if it had been passed
              using the -r option (so any occurrences of the text $MAN_PN
              will be expanded in the same way).  For example, if you want
              to set the prompt string unconditionally to “my prompt
              string”, set $MANLESS to ‘-Psmy prompt string’.  Using the -r
              option overrides this environment variable.

              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 the value of $COLUMNS, and
              ioctl(2) if available, 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.

              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.

              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.

FILES         top

              man-db configuration file.

              A global manual page hierarchy.

SEE ALSO         top

       apropos(1), groff(1), less(1), manpath(1), nroff(1), troff(1),
       whatis(1), zsoelim(1), manpath(5), man(7), catman(8), mandb(8)

       Documentation for some packages may be available in other formats,
       such as info(1) or HTML.

HISTORY         top

       1990, 1991 – Originally written by John W. Eaton

       Dec 23 1992: Rik Faith ( applied bug fixes supplied
       by Willem Kasdorp (

       30th April 1994 – 23rd February 2000: Wilf.
       ( has been developing and maintaining this
       package with the help of a few dedicated people.

       30th October 1996 – 30th March 2001: Fabrizio Polacco
       <> maintained and enhanced this package for the
       Debian project, with the help of all the community.

       31st March 2001 – present day: Colin Watson <> is
       now developing and maintaining man-db.

BUGS         top

COLOPHON         top

       This page is part of the man-db (manual pager suite) project.
       Information about the project can be found at 
       ⟨⟩.  If you have a bug report for this
       manual page, send it to  This page was ob‐
       tained from the project's upstream Git repository
       ⟨⟩ on 2020-11-01.  (At that
       time, the date of the most recent commit that was found in the repos‐
       itory was 2020-09-13.)  If you discover any rendering problems in
       this HTML version of the page, or you believe there is a better or
       more up-to-date source for the page, or you have corrections or im‐
       provements to the information in this COLOPHON (which is not part of
       the original manual page), send a mail to

2.8.4                            2018-07-27                           MAN(1)

Pages that refer to this page: apropos(1)git(1)groffer(1)grotty(1)intro(1)lexgrog(1)manconv(1)manpath(1)systemd-analyze(1)ul(1)whatis(1)zsoelim(1)manpath(5)environ(7)groff_char(7)groff_man(7)groff_man_style(7)man(7)man-pages(7)catman(8)mandb(8)