1.\" $Vendor-Id: apropos.1,v 1.17 2012/03/24 01:46:25 kristaps Exp $ 2.\" 3.\" Copyright (c) 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv> 4.\" 5.\" Permission to use, copy, modify, and distribute this software for any 6.\" purpose with or without fee is hereby granted, provided that the above 7.\" copyright notice and this permission notice appear in all copies. 8.\" 9.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16.\" 17.Dd March 24, 2012 18.Dt APROPOS 1 19.Os 20.Sh NAME 21.Nm apropos 22.Nd search manual page databases 23.Sh SYNOPSIS 24.Nm 25.Op Fl C Ar file 26.Op Fl M Ar manpath 27.Op Fl m Ar manpath 28.Op Fl S Ar arch 29.Op Fl s Ar section 30.Ar expression ... 31.Sh DESCRIPTION 32The 33.Nm 34utility queries manual page databases generated by 35.Xr mandocdb 8 , 36evaluating on 37.Ar expression 38for each file in each database. 39.Pp 40By default, 41.Nm 42searches for 43.Xr mandocdb 8 44databases in the default paths stipulated by 45.Xr man 1 , 46parses terms as case-sensitive regular expressions 47over manual names and descriptions. 48Multiple terms imply pairwise 49.Fl o . 50If standard output is a TTY, a result may be selected from a list and 51its manual displayed with the pager. 52.Pp 53Its arguments are as follows: 54.Bl -tag -width Ds 55.It Fl C Ar file 56Specify an alternative configuration 57.Ar file 58in 59.Xr man.conf 5 60format. 61.It Fl M Ar manpath 62Use the colon-separated path instead of the default list of paths 63searched for 64.Xr mandocdb 8 65databases. 66Invalid paths, or paths without manual databases, are ignored. 67.It Fl m Ar manpath 68Prepend the colon-separated paths to the list of paths searched 69for 70.Xr mandocdb 8 71databases. 72Invalid paths, or paths without manual databases, are ignored. 73.It Fl S Ar arch 74Search only for a particular architecture. 75.It Fl s Ar cat 76Search only for a manual section. 77See 78.Xr man 1 79for a listing of manual sections. 80.El 81.Pp 82An 83.Ar expression 84consists of search terms joined by logical operators 85.Fl a 86.Pq and 87and 88.Fl o 89.Pq or . 90The 91.Fl a 92operator has precedence over 93.Fl o 94and both are evaluated left-to-right. 95.Bl -tag -width Ds 96.It \&( Ar expr No \&) 97True if the subexpression 98.Ar expr 99is true. 100.It Ar expr1 Fl a Ar expr2 101True if both 102.Ar expr1 103and 104.Ar expr2 105are true (logical 106.Qq and ) . 107.It Ar expr1 Oo Fl o Oc Ar expr2 108True if 109.Ar expr1 110and/or 111.Ar expr2 112evaluate to true (logical 113.Qq or ) . 114.It Ar term 115True if 116.Ar term 117is satisfied. 118This has syntax 119.Li [key[,key]*(=~)]?val , 120where operand 121.Cm key 122is an 123.Xr mdoc 7 124macro to query and 125.Cm val 126is its value. 127See 128.Sx Macro Keys 129for a list of available keys. 130Operator 131.Li \&= 132evaluates a substring, while 133.Li \&~ 134evaluates a regular expression. 135.It Fl i Ar term 136If 137.Ar term 138is a regular expression, it 139is evaluated case-insensitively. 140Has no effect on substring terms. 141.El 142.Pp 143Results are sorted by manual title, with output formatted as 144.Pp 145.D1 title(sec) \- description 146.Pp 147Where 148.Qq title 149is the manual's title (note multiple manual names may exist for one 150title), 151.Qq sec 152is the manual section, and 153.Qq description 154is the manual's short description. 155If an architecture is specified for the manual, it is displayed as 156.Pp 157.D1 title(cat/arch) \- description 158.Pp 159If on a TTY, results are prefixed with a numeric identifier. 160.Pp 161.D1 [index] title(cat) \- description 162.Pp 163One may choose a manual be entering the index at the prompt. 164Valid choices are displayed using 165.Ev MANPAGER , 166or failing that , 167.Ev PAGER 168or just 169.Xr more 1 . 170Source pages are formatted with 171.Xr mandoc 1 ; 172preformatted pages with 173.Xr cat 1 . 174.Ss Macro Keys 175Queries evaluate over a subset of 176.Xr mdoc 7 177macros indexed by 178.Xr mandocdb 8 . 179In addition to the macro keys listed below, the special key 180.Cm any 181may be used to match any available macro key. 182.Pp 183Names and description: 184.Bl -column "xLix" description -offset indent -compact 185.It Li \&Nm Ta manual name 186.It Li \&Nd Ta one-line manual description 187.El 188.Pp 189Sections and cross references: 190.Bl -column "xLix" description -offset indent -compact 191.It Li \&Sh Ta section header (excluding standard sections) 192.It Li \&Ss Ta subsection header 193.It Li \&Xr Ta cross reference to another manual page 194.It Li \&Rs Ta bibliographic reference 195.El 196.Pp 197Semantic markup for command line utilities: 198.Bl -column "xLix" description -offset indent -compact 199.It Li \&Fl Ta command line options (flags) 200.It Li \&Cm Ta command modifier 201.It Li \&Ar Ta command argument 202.It Li \&Ic Ta internal or interactive command 203.It Li \&Ev Ta environmental variable 204.It Li \&Pa Ta file system path 205.El 206.Pp 207Semantic markup for function libraries: 208.Bl -column "xLix" description -offset indent -compact 209.It Li \&Lb Ta function library name 210.It Li \&In Ta include file 211.It Li \&Ft Ta function return type 212.It Li \&Fn Ta function name 213.It Li \&Fa Ta function argument type and name 214.It Li \&Vt Ta variable type 215.It Li \&Va Ta variable name 216.It Li \&Dv Ta defined variable or preprocessor constant 217.It Li \&Er Ta error constant 218.It Li \&Ev Ta environmental variable 219.El 220.Pp 221Various semantic markup: 222.Bl -column "xLix" description -offset indent -compact 223.It Li \&An Ta author name 224.It Li \&Lk Ta hyperlink 225.It Li \&Mt Ta Do mailto Dc hyperlink 226.It Li \&Cd Ta kernel configuration declaration 227.It Li \&Ms Ta mathematical symbol 228.It Li \&Tn Ta tradename 229.El 230.Pp 231Physical markup: 232.Bl -column "xLix" description -offset indent -compact 233.It Li \&Em Ta italic font or underline 234.It Li \&Sy Ta boldface font 235.It Li \&Li Ta typewriter font 236.El 237.Pp 238Text production: 239.Bl -column "xLix" description -offset indent -compact 240.It Li \&St Ta reference to a standards document 241.It Li \&At Ta At No version reference 242.It Li \&Bx Ta Bx No version reference 243.It Li \&Bsx Ta Bsx No version reference 244.It Li \&Nx Ta Nx No version reference 245.It Li \&Fx Ta Fx No version reference 246.It Li \&Ox Ta Ox No version reference 247.It Li \&Dx Ta Dx No version reference 248.El 249.Sh ENVIRONMENT 250.Bl -tag -width Ds 251.It Ev MANPAGER 252Default pager for manuals. 253If this is unset, falls back to 254.Ev Pager . 255.It Ev PAGER 256The second choice for a manual pager. 257If this is unset, use 258.Xr more 1 . 259.It Ev MANPATH 260Colon-separated paths modifying the default list of paths searched for 261manual databases. 262Invalid paths, or paths without manual databases, are ignored. 263Overridden by 264.Fl M . 265If 266.Ev MANPATH 267begins with a 268.Sq \&: , 269it is appended to the default list; 270else if it ends with 271.Sq \&: , 272it is prepended to the default list; else if it contains 273.Sq \&:: , 274the default list is inserted between the colons. 275If none of these conditions are met, it overrides the default list. 276.El 277.Sh FILES 278.Bl -tag -width "/etc/man.conf" -compact 279.It Pa whatis.db 280name of the 281.Xr mandocdb 8 282keyword database 283.It Pa whatis.index 284name of the 285.Xr mandocdb 8 286filename database 287.It Pa /etc/man.conf 288default 289.Xr man 1 290configuration file 291.El 292.Sh EXIT STATUS 293.Ex -std 294.Sh EXAMPLES 295Search for 296.Qq mdoc 297as a substring and regular expression 298within each manual name and description: 299.Pp 300.Dl $ apropos mdoc 301.Dl $ apropos ~^mdoc$ 302.Pp 303Include matches for 304.Qq roff 305and 306.Qq man 307for the regular expression case: 308.Pp 309.Dl $ apropos ~^mdoc$ roff man 310.Dl $ apropos ~^mdoc$ \-o roff \-o man 311.Pp 312Search for 313.Qq optind 314and 315.Qq optarg 316as variable names in the library category: 317.Pp 318.Dl $ apropos \-s 3 Va~^optind \-a Va~^optarg$ 319.Sh SEE ALSO 320.Xr more 1 321.Xr re_format 7 , 322.Xr mandocdb 8 323.Sh AUTHORS 324The 325.Nm 326utility was written by 327.An Kristaps Dzonsons , 328.Mt kristaps@bsd.lv . 329