Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


MAN.CONF(5)                   File Formats Manual                  MAN.CONF(5)

NAME
     man.conf - configuration file for manual pages

DESCRIPTION
     The man.conf file contains the default configuration used by man(1),
     apropos(1), whatis(1), catman(8), and makemandb(8) to find manual pages
     and information about manual pages (e.g., the whatis(1) database).

     Manual pages are located by searching an ordered set of directories
     called the "man path" for a file that matches the name of the requested
     page.  Each directory in the search path usually has a set of
     subdirectories in it (though this is not required).  When subdirectories
     are used, there are normally two subdirectories for each section of the
     manual.  One subdirectory contains formatted copies of that section's
     manual pages that can be directly displayed to a terminal, while the
     other section subdirectory contains unformatted copies of the pages (see
     nroff(1) and mdoc(7)).  Formatted manual pages are normally named with a
     trailing `.0' suffix.

     The man.conf file contains comment and configuration lines.  Comment
     lines start with the `#' character.  Blank lines are also treated as
     comment lines.  Configuration lines consist of a configuration keyword
     followed by a configuration string.  There are two types of configuration
     keywords: control keywords and section keywords.  Control keywords must
     start with the `_' character.  The following control keywords are
     currently defined:

     _build      Identifies the set of suffixes used for manual pages that
                 must be formatted for display and the command that should be
                 used to format them.  Manual file names, regardless of their
                 format, are expected to end in a ".*" pattern, i.e. a `.'
                 followed by some suffix.  The first field of a _build line
                 contains a man page suffix specification.  The suffix
                 specification may contain the normal shell globbing
                 characters (not including csh-style curly braces).  The rest
                 of the _build line is a shell command line whose standard
                 output is a formatted manual page that can be directly
                 displayed to the user.  There should be exactly one
                 occurrence of the string `%s' in the shell command line, and
                 it will be replaced by the name of the file which is being
                 formatted.

     _crunch     Used by catman(8) to determine how to crunch formatted pages
                 which originally were compressed man pages.  The first field
                 lists a suffix which indicates what kind of compression was
                 used to compress the man page.  The rest of the line must be
                 a shell command line, used to compress the formatted pages.
                 There should be exactly one occurrence of the string `%s' in
                 the shell command line, and it will be replaced by the name
                 of the output file.

     _default    Contains the system-wide default man path used to search for
                 man pages.

     _mandb      Defines the full pathname (not just a directory path) for a
                 database to be used by the apropos(1) and whatis(1) commands.
                 The pathname may contain the normal shell globbing
                 characters, including csh-style curly braces; to escape a
                 shell globbing character, precede it with a backslash (`\').

     _subdir     Contains the list (in search order) of section subdirectories
                 which will be searched in any man path directory named with a
                 trailing slash (`/') character.  This list is also used, even
                 if there is no trailing slash character, when a path is
                 specified to the man(1) utility by the user, by the MANPATH
                 environment variable, or by the -M and -m options.

     _suffix     identifies the set of suffixes used for formatted man pages
                 (the `.0' suffix is normally used here).  Formatted man pages
                 can be directly displayed to the user.  Each suffix may
                 contain the normal shell globbing characters (not including
                 csh-style curly braces).

     _version    Contains the version of the configuration file.

     _<machine>  Defines additional paths to be searched for the particular
                 machine hardware name whose literal value is taken from
                 uname(1) -m.  For example, on an amd64, the _amd64 control
                 keyword is used, where `x86' is supplied by default as an
                 alternate machine path to also search.

     Section configuration lines in man.conf consist of a section keyword
     naming the section and a configuration string that defines the directory
     or subdirectory path that the section's manual pages are located in.  The
     path may contain the normal shell globbing characters, including csh-
     style curly braces; to escape a shell globbing character, precede it with
     a backslash (`\').  Section keywords must not start with the `_'
     character.

     A section path may contain either a list of absolute directories or a
     list of relative directories (but not both).  Relative directory paths
     are treated as a list of subdirectories that are appended to the current
     man path directory being searched.  Section configuration lines with
     absolute directory paths (starting with `/') completely replace the
     current man search path directory with their content.

     Section configuration lines with absolute directory paths ending with a
     trailing slash character are expected to contain subdirectories of manual
     pages, (see the keyword _subdir above).  The _subdir subdirectory list is
     not applied to absolute section directories if there is no trailing
     slash.

     In addition to the above rules, the man(1) command also always checks in
     each directory that it searches for a subdirectory with the same name as
     the current machine type.  If a machine-specific subdirectory is found,
     it is also searched before the parent directory is.  This allows the
     manual to contain machine-specific man pages.  Note that the machine
     subdirectory does not need to be specified in the man.conf file.

     Multiple specifications for all types of man.conf configuration lines are
     cumulative and the entries are used in the order listed in the file;
     multiple entries may be listed per line, as well.

FILES
     /etc/man.conf                     Standard manual configuration file.

EXAMPLES
     Given the following man.conf file:

           _version        BSD.2
           _subdir         cat[123]
           _suffix         .0
           _build          .[1-9]  nroff -man %s
           _build          .tbl    tbl %s | nroff -man
           _i386           x86
           _default        /usr/share/man/
           sect3           /usr/share/man/{old/,}cat3

     By default, the command "man mktemp" will search for mktemp.<digit> and
     mktemp.tbl in the directories /usr/share/man/cat1, /usr/share/man/cat2,
     and /usr/share/man/cat3.  If on a machine of type "vax", the subdirectory
     vax in each directory would be searched as well, before the directory was
     searched.

     If mktemp.tbl was found first, the command "tbl <manual page> | nroff
     -man" would be run to build a man page for display to the user.

     The command "man sect3 mktemp" would search the directories
     /usr/share/man/old/cat3 and /usr/share/man/cat3, in that order, for the
     mktemp manual page.  If a subdirectory with the same name as the current
     machine type existed in any of them, it would be searched as well, before
     each of them were searched.

SEE ALSO
     apropos(1), machine(1), man(1), whatis(1), whereis(1), fnmatch(3),
     glob(3), catman(8), makemandb(8)

NetBSD 10.99                     June 18, 2022                    NetBSD 10.99