APROPOS(1)
๐ APROPOS(1) ๐
Manual pager utils ๐
๐ NAME
okay so apropos is the search bar for manual page names and descriptions ๐โจ literally type a keyword and it digs through the short blurbs for you ๐
๐ฏ SYNOPSIS
apropos [-dalv?V] [-e|-w|-r] [-s list] [-m system[,...]] [-M path] [-L
locale] [-C file] keyword ...
๐ธ DESCRIPTION
every manual page has a short description tucked inside it ๐ฅน apropos goes through those descriptions looking for instances of keyword ๐
keyword is usually a regular expression, same as if you pass -r ๐ค or you can make it a wildcard with -w, or demand an exact match with -e ๐ฆ with these options you might need to quote the keyword or escape (\) the special characters so your shell doesn't get in the way ๐
the standard matching rules let matches happen against the page name and against word boundaries in the description ๐
heads up bestie: the databaseapropossearches gets updated by themandbprogram โ ๏ธ depending on your setup, a periodic cron job might handle that for you, or you might have to run it yourself after installing new manual pages ๐ซถ
โจ OPTIONS โจ
-d,--debugโ prints debugging info ๐-v,--verboseโ prints verbose warning messages ๐ข-r,--regexโ treats each keyword as a regular expression, and this is the default vibe ๐ each keyword gets matched against page names and descriptions separately ๐ it can match any part of either one, and it doesn't have to stick to word boundaries ๐-w,--wildcardโ treats each keyword as a pattern with shell style wildcards ๐ each keyword gets matched against page names and descriptions separately ๐ซง if--exactis also in the mix, only an expanded keyword that matches a whole description or whole page name counts โ otherwise the keyword is also allowed to match on word boundaries in the description ๐-e,--exactโ each keyword has to be an exact match against page names and descriptions ๐ฏ-a,--andโ only shows items that match all the keywords you gave it ๐ง the default is to show items that match any keyword ๐ธ-l,--longโ doesn't trim the output to your terminal width ๐ normally the output gets cut down to fit so poorly written NAME sections don't look ugly ๐-s list,--sections=list,--section=listโ only searches the sections you name ๐ list is a colon- or comma-separated list of sections ๐ง a plain section like3will show pages in sections3,3perl,3x, and so on ๐ท but if you add an extension like3perl, the list only includes pages from that exact part of the section ๐-m system[,...],--systems=system[,...]โ if your system can peek at other operating systems' manual page descriptions, you can search them with this one ๐ธ for example, to search NewOS's descriptions use-m NewOS๐ system can be a combo of comma-delimited OS names ๐ซถ to include a search of the native OS's whatis descriptions, put the system namemanin the argument string ๐ this option overrides the$SYSTEMenvironment variable ๐-M path,--manpath=pathโ swaps in your own set of colon-delimited manual page hierarchies to search ๐บ๏ธ by defaultaproposuses the$MANPATHenvironment variable, unless it's empty or unset, and then it works out a manpath from your$PATH๐งญ this option overrides the contents of$MANPATH๐-L locale,--locale=localeโaproposnormally figures out your locale by calling the C functionsetlocale(3), which checks various environment variables like$LC_MESSAGESand$LANG๐ to temporarily override that, pass a locale string straight toaproposwith this option โจ it doesn't kick in until the actual search starts ๐ output like the help message always shows up in the locale that was figured out at the start ๐-C file,--config-file=fileโ uses this user config file instead of the default~/.manpath๐-?,--helpโ prints a help message and exits ๐--usageโ prints a short usage message and exits ๐-V,--versionโ displays version info ๐ท๏ธ
๐ฆ EXIT STATUS
0โ the program ran successfully ๐ฅณ1โ there was a usage, syntax or config file error ๐ โโ๏ธ2โ there was an operational error ๐ต16โ nothing matched your criteria ๐ซ
๐ ENVIRONMENT
SYSTEMโ if$SYSTEMis set, it does the same thing as passing it to the-moption ๐ธMANPATHโ if$MANPATHis set, its value gets read as the colon-delimited manual page hierarchy search path ๐บ๏ธ check the SEARCH PATH section ofmanpath(5)for the default behaviour and the nitty gritty on how this variable gets handled ๐MANWIDTHโ if$MANWIDTHis set, its value is used as the terminal width (see the--longoption) ๐ if it's not set, the width gets calculated from$COLUMNS, plusioctl(2)if it's available, and if all else fails it falls back to 80 characters ๐POSIXLY_CORRECTโ if$POSIXLY_CORRECTis set, even to a null value, the default search is treated as an extended regex (-r) ๐ค honestly, that's the default anyway these days ๐
๐๏ธ 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) ๐
๐ BUGS
if something's broken, report it here ๐ https://gitlab.com/man-db/man-db/-/issues https://savannah.nongnu.org/bugs/?group=man-db
bestie, you're all caught up ๐ this was APROPOS(1) from the 2.13.1 release, dated 2025-05-02 ๐ now go find your manual pages and slay the terminal ๐ โจ
๐ฆ where this page comes from
- fedora 43: man-db 2.13.1-2.fc43 ยท GPL-2.0-or-later AND GPL-3.0-or-later
- fedora 44: man-db 2.13.1-3.fc44 ยท GPL-2.0-or-later AND GPL-3.0-or-later
- ๐ girlified by anthropic/claude-haiku-5.5 on : a language model's rewrite of the original, under its terms