# whatis

## NAME



           whatis - display one-line manual page descriptions
    


## SYNOPSIS



           **whatis**[**-dlv?V**] [**-r** |**-w**] [**-s** _list_] [**-m** _system_[,...]] [**-M** _path_] [**-L**
           _locale_] [**-C** _file_] _name_ ...
    


## DESCRIPTION



           Each manual page has a short description available within it.
           **whatis** searches the manual page names and displays the manual page
           descriptions of any _name_ matched.
    
           _name_ may contain wildcards (**-w**) or be a regular expression (**-r**).
           Using these options, it may be necessary to quote the _name_ or
           escape (\) the special characters to stop the shell from
           interpreting them.
    
           **index** databases are used during the search, and are updated by the
           **mandb** program.  Depending on your installation, this may be run by
           a periodic cron job, or may need to be run manually after new
           manual pages have been installed.  To produce an old style text
           **whatis** database from the relative **index** database, issue the
           command:
    
           **whatis -M** _manpath_ **-w '*' | sort > **_manpath/whatis_
    
           where _manpath_ is a manual page hierarchy such as _/usr/man_.
    


## OPTIONS



           **-d** , **--debug**
                  Print debugging information.
    
           **-v** , **--verbose**
                  Print verbose warning messages.
    
           **-r** , **--regex**
                  Interpret each _name_ as a regular expression.  If a _name_
                  matches any part of a page name, a match will be made.
                  This option causes **whatis** to be somewhat slower due to the
                  nature of database searches.
    
           **-w** , **--wildcard**
                  Interpret each _name_ as a pattern containing shell style
                  wildcards.  For a match to be made, an expanded _name_ must
                  match the entire page name.  This option causes **whatis** to
                  be somewhat slower due to the nature of database searches.
    
           **-l** , **--long**
                  Do not trim output to the terminal width.  Normally, output
                  will be truncated to the terminal width to avoid ugly
                  results from poorly-written **NAME** sections.
    
           **-s** _list_ , **--sections=**_list_ , **--section=**_list_
                  Search only the given manual sections.  _list_ is a colon- or
                  comma-separated list of sections.  If an entry in _list_ is a
                  simple section, for example "3", then the displayed list of
                  descriptions will include pages in sections "3", "3perl",
                  "3x", and so on; while if an entry in _list_ has an
                  extension, for example "3perl", then the list will only
                  include pages in that exact part of the manual section.
    
           **-m** _system_[,...], **--systems=**_system_[,...]
                  If this system has access to other operating systems'
                  manual page names, they can be accessed using this option.
                  To search NewOS's manual page names, 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 page names, include
                  the system name **man** in the argument string.  This option
                  will override the $**SYSTEM** environment variable.
    
           **-M** _path_ , **--manpath=**_path_
                  Specify an alternate set of colon-delimited manual page
                  hierarchies to search.  By default, **whatis** uses the
                  $**MANPATH** environment variable, unless it is empty or unset,
                  in which case it will determine an appropriate manpath
                  based on your $**PATH** environment variable.  This option
                  overrides the contents of $**MANPATH**.
    
           **-L** _locale_ , **--locale=**_locale_
                  **whatis** 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 **whatis**.  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.
    
           **-C** _file_ , **--config-file=**_file_
                  Use this user configuration file rather than the default of
                  _~/.manpath_.
    
           **-?** , **--help**
                  Print a help message and exit.
    
           **--usage**
                  Print a short usage message and exit.
    
           **-V** , **--version**
                  Display version information.
    


## EXIT STATUS



           **0** Successful program execution.
    
           **1** Usage, syntax or configuration file error.
    
           **2** Operational error.
    
           **16** Nothing was found that matched the criteria specified.
    


## ENVIRONMENT



           **SYSTEM** If $**SYSTEM** is set, it will have the same effect as if it
                  had been specified as the argument to the **-m** option.
    
           **MANPATH**
                  If $**MANPATH** is set, its value is interpreted as the colon-
                  delimited manual page hierarchy search path to use.
    
                  See the **SEARCH PATH** section of manpath(5) for the default
                  behaviour and details of how this environment variable is
                  handled.
    
           **MANWIDTH**
                  If $**MANWIDTH** is set, its value is used as the terminal
                  width (see the **--long** option).  If it is not set, the
                  terminal width will be calculated using the value of
                  $**COLUMNS** , and ioctl(2) if available, or falling back to 80
                  characters if all else fails.
    


## FILES



           _/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.
    
           _/usr/share/man/.../whatis_
                  A traditional **whatis** text database.
    


## BUGS



           https://gitlab.com/man-db/man-db/-/issues
           https://savannah.nongnu.org/bugs/?group=man-db
    


* * *