apropos

Linux apropos is a very handy command used to search all manual pages and descriptions. It will help to search for exact keyword on all manual pages, or find matching keywords.  Below are few of the apropos commands and examples with output. 

DEFINITION
apropos - search the manual page names and descriptions
USAGE
apropos [-dalv?V] [-e|-w|-r] [-s list] [-m system[,...]] [-M path] [-L locale] [-C file] key‐word ...
DESCRIPTION
 Each manual page has a short description available within it.  apropos searches the  descrip‐
       tions for instances of keyword.

       keyword  is usually a regular expression, as if (-r) was used, or may contain wildcards (-w),
       or match the exact keyword (-e).  Using these options, it may be necessary to quote the  key‐
       word or escape (\) the special characters to stop the shell from interpreting them.

       The  standard  matching  rules allow matches to be made against the page name and word bound‐
       aries in the description.

       The database searched by apropos is updated by the mandb program.  Depending on your  instal‐
       lation, this may be run by a periodic cron job, or may need to be run manually after new man‐
       ual pages have been installed.
OPTIONS
       -d, --debug
              Print debugging information.

       -v, --verbose
              Print verbose warning messages.

       -r, --regex
              Interpret each keyword as a regular expression.  This is the default behaviour.   Each
              keyword will be matched against the page names and the descriptions independently.  It
              can match any part of either.  The match is not limited to word boundaries.

       -w, --wildcard
              Interpret each keyword as a pattern containing shell style  wildcards.   Each  keyword
              will be matched against the page names and the descriptions independently.  If --exact
              is also used, a match will only be found if an expanded keyword matches an entire  de‐
              scription or page name.  Otherwise the keyword is also allowed to match on word bound‐
              aries in the description.

       -e, --exact
              Each keyword will be exactly matched against the page names and the descriptions.

       -a, --and
              Only display items that match all the supplied keywords.  The default  is  to  display
              items that match any keyword.

       -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 dis‐
              played 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 system's manual page  descriptions,  they
              can  be  searched  using this option.  To search NewOS's manual page descriptions, 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 whatis descriptions, include the
              system name man in the argument string.  This option will override the  $SYSTEM  envi‐
              ronment variable.
              
       -M path, --manpath=path
              Specify an alternate set of colon-delimited manual page hierarchies to search.  By de‐
              fault, apropos 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
              apropos will normally determine your current locale by a call to the C function setlo‐
              cale(3)  which interrogates various environment variables, possibly including $LC_MES‐
              SAGES and $LANG.  To temporarily override the determined value,  use  this  option  to
              supply  a  locale string directly to apropos.  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.
EXAMPLES
/*Below command will print verbose warning messages for command head*/
apropos -v head

/*Below command will allow to pass wildcard entries*/
apropos -w head*

/*Below command will look for exact matching keyword*/
apropos -e head

/*Below command will NOT trim the description of the man page descriptions*/
apropos -wl ls*

Below command apropos head will search all the manual pages and list the descriptions of matching keyword head

root@letusstudy:~# apropos head
HEAD (1p)            - Simple command line user agent
arm2hpdl (1)         - Add HP download header/trailer to an ARM ELF binary.
CIRCLEQ_HEAD (3)     - implementations of singly-linked lists, singly-linked tail queues, lists and ...
CIRCLEQ_INSERT_HEAD (3) - implementations of singly-linked lists, singly-linked tail queues, lists a...
elfedit (1)          - update ELF header and program property of ELF files
git-pack-refs (1)    - Pack heads and tags for efficient repository access
git-reset (1)        - Reset current HEAD to the specified state
h2ph (1)             - convert .h C header files to .ph Perl header files
h2xs (1)             - convert .h C header files to Perl extensions
head (1)             - output the first part of files
head (1posix)        - copy the first part of files
root@letusstudy:~#  

Below command apropos --exact head will search all the manual pages and list the descriptions of exact matching keyword head

root@letusstudy:~# apropos --exact head
HEAD (1p)            - Simple command line user agent
git-reset (1)        - Reset current HEAD to the specified state
head (1)             - output the first part of files
head (1posix)        - copy the first part of files
root@letusstudy:~# 

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 ar‐ gument to the -m option.

MANPATH If $MANPATH is set, its value is interpreted as the colon-delimited manual page hier‐ archy search path to use.

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.

POSIXLY_CORRECT If $POSIXLY_CORRECT is set, even to a null value, the default apropos search will be as an extended regex (-r). Nowadays, this is the default behaviour anyway.


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.

SEE ALSO man(1), whatis(1), mandb(8)

AUTHOR Wilf. (G.Wilford@ee.surrey.ac.uk). Fabrizio Polacco (fpolacco@debian.org). Colin Watson (cjwatson@debian.org).

Search Results