version 1.5, 2011/11/20 15:43:14 |
version 1.35, 2014/09/03 05:22:45 |
|
|
.\" $Id$ |
.\" $Id$ |
.\" |
.\" |
.\" Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
.\" Copyright (c) 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv> |
|
.\" Copyright (c) 2011, 2012, 2014 Ingo Schwarze <schwarze@openbsd.org> |
.\" |
.\" |
.\" Permission to use, copy, modify, and distribute this software for any |
.\" Permission to use, copy, modify, and distribute this software for any |
.\" purpose with or without fee is hereby granted, provided that the above |
.\" purpose with or without fee is hereby granted, provided that the above |
|
|
.Dt APROPOS 1 |
.Dt APROPOS 1 |
.Os |
.Os |
.Sh NAME |
.Sh NAME |
.Nm apropos |
.Nm apropos , |
|
.Nm whatis |
.Nd search manual page databases |
.Nd search manual page databases |
.Sh SYNOPSIS |
.Sh SYNOPSIS |
.Nm |
.Nm |
.Op Fl m Ar manpath |
.Op Fl acfhklVw |
|
.Op Fl C Ar file |
|
.Op Fl M Ar path |
|
.Op Fl m Ar path |
|
.Op Fl O Ar outkey |
.Op Fl S Ar arch |
.Op Fl S Ar arch |
.Op Fl s Ar section |
.Op Fl s Ar section |
.Ar expression... |
.Ar expression ... |
.Sh DESCRIPTION |
.Sh DESCRIPTION |
The |
The |
.Nm |
.Nm apropos |
utility queries manual page databases generated by |
and |
.Xr mandocdb 8 , |
.Nm whatis |
evaluating on |
utilities query manual page databases generated by |
|
.Xr makewhatis 8 , |
|
evaluating |
.Ar expression |
.Ar expression |
for each file in each database. |
for each file in each database. |
Its arguments are as follows: |
By default, they display the names, section numbers, and description lines |
|
of all matching manuals. |
|
.Pp |
|
By default, |
|
.Nm |
|
searches for |
|
.Xr makewhatis 8 |
|
databases in the default paths stipulated by |
|
.Xr man 1 |
|
and uses case-insensitive substring matching |
|
.Pq the Cm = No operator |
|
over manual names and descriptions |
|
.Pq the Li \&Nm No and Li \&Nd No macro keys . |
|
Multiple terms imply pairwise |
|
.Fl o . |
|
.Pp |
|
.Nm whatis |
|
is a synonym for |
|
.Nm |
|
.Fl f . |
|
.Pp |
|
The options are as follows: |
.Bl -tag -width Ds |
.Bl -tag -width Ds |
.It Fl m Ar manpath |
.It Fl a |
A colon-separated list of paths containing |
Instead of showing only the title lines, show the complete manual pages, |
.Xr mandocdb 8 |
just like |
|
.Xr man 1 |
|
.Fl a |
|
would. |
|
If the standard output is a terminal device and |
|
.Fl c |
|
is not specified, use |
|
.Xr more 1 |
|
to paginate them. |
|
In |
|
.Fl a |
|
mode, the options |
|
.Fl IOTW |
|
described in the |
|
.Xr mandoc 1 |
|
manual are also available. |
|
.It Fl C Ar file |
|
Specify an alternative configuration |
|
.Ar file |
|
in |
|
.Xr man.conf 5 |
|
format. |
|
.It Fl c |
|
In |
|
.Fl a |
|
mode, copy the formatted manual pages to the standard output without using |
|
.Xr more 1 |
|
to paginate them. |
|
.It Fl f |
|
Search for all words in |
|
.Ar expression |
|
in manual page names only. |
|
The search is case insensitive and matches whole words only. |
|
In this mode, macro keys, comparison operators, and logical operators |
|
are not available. |
|
This overrides any earlier |
|
.Fl k |
|
and |
|
.Fl l |
|
options. |
|
.It Fl h |
|
Instead of showing the title lines, show the SYNOPSIS sections, just like |
|
.Xr man 1 |
|
.Fl h |
|
would. |
|
.It Fl k |
|
Support the full |
|
.Ar expression |
|
syntax. |
|
This overrides any earlier |
|
.Fl f |
|
and |
|
.Fl l |
|
options. |
|
It is the default for |
|
.Nm . |
|
.It Fl l |
|
An alias for |
|
.Xr mandoc 1 |
|
.Fl a . |
|
This overrides any earlier |
|
.Fl f , |
|
.Fl k , |
|
and |
|
.Fl w |
|
options. |
|
.It Fl M Ar path |
|
Use the colon-separated path instead of the default list of paths |
|
searched for |
|
.Xr makewhatis 8 |
databases. |
databases. |
Paths may be relative or absolute. |
Invalid paths, or paths without manual databases, are ignored. |
|
.It Fl m Ar path |
|
Prepend the colon-separated paths to the list of paths searched |
|
for |
|
.Xr makewhatis 8 |
|
databases. |
|
Invalid paths, or paths without manual databases, are ignored. |
|
.It Fl O Ar outkey |
|
Show the values associated with the key |
|
.Ar outkey |
|
instead of the manual descriptions. |
.It Fl S Ar arch |
.It Fl S Ar arch |
Search only for a particular architecture. |
Restrict the search to pages for the specified |
.It Fl s Ar cat |
.Xr machine 1 |
Search only for a manual section. |
architecture. |
|
.Ar arch |
|
is case insensitive. |
|
By default, pages for all architectures are shown. |
|
.It Fl s Ar section |
|
Restrict the search to the specified section of the manual. |
|
By default, pages from all sections are shown. |
See |
See |
.Xr man 1 |
.Xr man 1 |
for a listing of manual sections. |
for a listing of sections. |
|
.It Fl V |
|
Print version and exit. |
|
.It Fl w |
|
Instead of showing title lines, show the pathnames of the matching |
|
manual pages, just like |
|
.Xr man 1 |
|
.Fl w |
|
would. |
.El |
.El |
.Pp |
.Pp |
An |
An |
|
|
operator has precedence over |
operator has precedence over |
.Fl o |
.Fl o |
and both are evaluated left-to-right. |
and both are evaluated left-to-right. |
.Pp |
|
.Bl -tag -width Ds |
.Bl -tag -width Ds |
.It \&( Ar expr No \&) |
.It \&( Ar expr No \&) |
True if the subexpression |
True if the subexpression |
|
|
and |
and |
.Ar expr2 |
.Ar expr2 |
are true (logical |
are true (logical |
.Qq and ) . |
.Sq and ) . |
.It Ar expr1 Oo Fl o Oc Ar expr2 |
.It Ar expr1 Oo Fl o Oc Ar expr2 |
True if |
True if |
.Ar expr1 |
.Ar expr1 |
and/or |
and/or |
.Ar expr2 |
.Ar expr2 |
evaluate to true (logical |
evaluate to true (logical |
.Qq or ) . |
.Sq or ) . |
.It Ar term |
.It Ar term |
True if |
True if |
.Ar term |
.Ar term |
is satisfied. |
is satisfied. |
This has syntax |
This has syntax |
.Li [key[,key]*(=~)]?val , |
.Sm off |
where operand |
.Oo |
.Li key |
.Op Ar key Op , Ar key ... |
|
.Pq Cm = | ~ |
|
.Oc |
|
.Ar val , |
|
.Sm on |
|
where |
|
.Ar key |
is an |
is an |
.Xr mdoc 7 |
.Xr mdoc 7 |
macro to query and |
macro to query and |
.Li val |
.Ar val |
is its value. |
is its value. |
|
See |
|
.Sx Macro Keys |
|
for a list of available keys. |
Operator |
Operator |
.Li \&= |
.Cm = |
evaluates a substring, while |
evaluates a substring, while |
.Li \&~ |
.Cm ~ |
evaluates a regular expression. |
evaluates a regular expression. |
.It Fl i Ar term |
.It Fl i Ar term |
Same as |
If |
.Ar term , |
|
but |
|
.Ar term |
.Ar term |
|
is a regular expression, it |
is evaluated case-insensitively. |
is evaluated case-insensitively. |
|
Has no effect on substring terms. |
.El |
.El |
.Pp |
.Pp |
By default, |
Results are sorted by manual sections and names, with output formatted as |
.Nm |
|
searches for |
|
.Xr mandocdb 8 |
|
database in the current working directory and |
|
parses terms as case-sensitive regular expressions |
|
.Pq the Li \&~ operator |
|
over manual names and descriptions |
|
.Pq the Li \&Nm No and Li \&Nd No macros . |
|
Multiple terms imply pairwise |
|
.Fl o . |
|
Results are sorted by manual title, with output formatted as |
|
.Pp |
.Pp |
.D1 title(sec) \- description |
.D1 name[, name...](sec) \- description |
.Pp |
.Pp |
Where |
Where |
.Qq title |
.Dq name |
is the manual's title (note multiple manual names may exist for one |
is the manual's name, |
title), |
.Dq sec |
.Qq sec |
|
is the manual section, and |
is the manual section, and |
.Qq description |
.Dq description |
is the manual's short description. |
is the manual's short description. |
If an architecture is specified for the manual, it is displayed as |
If an architecture is specified for the manual, it is displayed as |
.Pp |
.Pp |
.D1 title(cat/arch) \- description |
.D1 name(sec/arch) \- description |
.Pp |
.Pp |
Resulting manuals may be accessed as |
Resulting manuals may be accessed as |
.Pp |
.Pp |
.Dl $ man \-s sec title |
.Dl $ man \-s sec name |
.Pp |
.Pp |
If an architecture is specified in the output, use |
If an architecture is specified in the output, use |
.Pp |
.Pp |
.Dl $ man \-s sec \-S arch title |
.Dl $ man \-s sec \-S arch name |
.\" .Sh IMPLEMENTATION NOTES |
.Ss Macro Keys |
.\" Not used in OpenBSD. |
Queries evaluate over a subset of |
.\" .Sh RETURN VALUES |
.Xr mdoc 7 |
.\" For sections 2, 3, & 9 only. |
macros indexed by |
.\" .Sh ENVIRONMENT |
.Xr makewhatis 8 . |
.\" For sections 1, 6, 7, & 8 only. |
In addition to the macro keys listed below, the special key |
.\" .Sh FILES |
.Cm any |
|
may be used to match any available macro key. |
|
.Pp |
|
Names and description: |
|
.Bl -column "xLix" description -offset indent -compact |
|
.It Li \&Nm Ta manual name |
|
.It Li \&Nd Ta one-line manual description |
|
.It Li arch Ta machine architecture (case-insensitive) |
|
.It Li sec Ta manual section number |
|
.El |
|
.Pp |
|
Sections and cross references: |
|
.Bl -column "xLix" description -offset indent -compact |
|
.It Li \&Sh Ta section header (excluding standard sections) |
|
.It Li \&Ss Ta subsection header |
|
.It Li \&Xr Ta cross reference to another manual page |
|
.It Li \&Rs Ta bibliographic reference |
|
.El |
|
.Pp |
|
Semantic markup for command line utilities: |
|
.Bl -column "xLix" description -offset indent -compact |
|
.It Li \&Fl Ta command line options (flags) |
|
.It Li \&Cm Ta command modifier |
|
.It Li \&Ar Ta command argument |
|
.It Li \&Ic Ta internal or interactive command |
|
.It Li \&Ev Ta environmental variable |
|
.It Li \&Pa Ta file system path |
|
.El |
|
.Pp |
|
Semantic markup for function libraries: |
|
.Bl -column "xLix" description -offset indent -compact |
|
.It Li \&Lb Ta function library name |
|
.It Li \&In Ta include file |
|
.It Li \&Ft Ta function return type |
|
.It Li \&Fn Ta function name |
|
.It Li \&Fa Ta function argument type and name |
|
.It Li \&Vt Ta variable type |
|
.It Li \&Va Ta variable name |
|
.It Li \&Dv Ta defined variable or preprocessor constant |
|
.It Li \&Er Ta error constant |
|
.It Li \&Ev Ta environmental variable |
|
.El |
|
.Pp |
|
Various semantic markup: |
|
.Bl -column "xLix" description -offset indent -compact |
|
.It Li \&An Ta author name |
|
.It Li \&Lk Ta hyperlink |
|
.It Li \&Mt Ta Do mailto Dc hyperlink |
|
.It Li \&Cd Ta kernel configuration declaration |
|
.It Li \&Ms Ta mathematical symbol |
|
.It Li \&Tn Ta tradename |
|
.El |
|
.Pp |
|
Physical markup: |
|
.Bl -column "xLix" description -offset indent -compact |
|
.It Li \&Em Ta italic font or underline |
|
.It Li \&Sy Ta boldface font |
|
.It Li \&Li Ta typewriter font |
|
.El |
|
.Pp |
|
Text production: |
|
.Bl -column "xLix" description -offset indent -compact |
|
.It Li \&St Ta reference to a standards document |
|
.It Li \&At Ta At No version reference |
|
.It Li \&Bx Ta Bx No version reference |
|
.It Li \&Bsx Ta Bsx No version reference |
|
.It Li \&Nx Ta Nx No version reference |
|
.It Li \&Fx Ta Fx No version reference |
|
.It Li \&Ox Ta Ox No version reference |
|
.It Li \&Dx Ta Dx No version reference |
|
.El |
|
.Sh ENVIRONMENT |
|
.Bl -tag -width MANPAGER |
|
.It Ev MANPAGER |
|
Any non-empty value of the environment variable |
|
.Ev MANPAGER |
|
will be used instead of the standard pagination program, |
|
.Xr more 1 . |
|
.It Ev MANPATH |
|
The standard search path used by |
|
.Xr man 1 |
|
may be changed by specifying a path in the |
|
.Ev MANPATH |
|
environment variable. |
|
Invalid paths, or paths without manual databases, are ignored. |
|
Overridden by |
|
.Fl M . |
|
If |
|
.Ev MANPATH |
|
begins with a colon, it is appended to the default list; |
|
if it ends with a colon, it is prepended to the default list; |
|
or if it contains two adjacent colons, |
|
the standard search path is inserted between the colons. |
|
If none of these conditions are met, it overrides the |
|
standard search path. |
|
.It Ev PAGER |
|
Specifies the pagination program to use when |
|
.Ev MANPAGER |
|
is not defined. |
|
If neither PAGER nor MANPAGER is defined, |
|
.Pa /usr/bin/more Fl s |
|
will be used. |
|
.El |
|
.Sh FILES |
|
.Bl -tag -width "/etc/man.conf" -compact |
|
.It Pa mandoc.db |
|
name of the |
|
.Xr makewhatis 8 |
|
keyword database |
|
.It Pa /etc/man.conf |
|
default |
|
.Xr man 1 |
|
configuration file |
|
.El |
.Sh EXIT STATUS |
.Sh EXIT STATUS |
.Ex -std |
.Ex -std |
.Sh EXAMPLES |
.Sh EXAMPLES |
Search for |
Search for |
.Qq mdoc |
.Qq .cf |
within the manual name and description: |
as a substring of manual names and descriptions: |
.Pp |
.Pp |
.Dl $ apropos mdoc |
.Dl $ apropos .cf |
.Pp |
.Pp |
Two variants of searching for |
Include matches for |
.Qq mdoc , |
.Qq .cnf |
.Qq roff , |
and |
or |
.Qq .conf |
.Qq man |
as well: |
within manual names and descriptions: |
|
.Pp |
.Pp |
.Dl $ apropos mdoc roff man |
.Dl $ apropos .cf .cnf .conf |
.Dl $ apropos mdoc \-o roff \-o man |
|
.Pp |
.Pp |
Search for |
Search in names and descriptions using a regular expression: |
|
.Pp |
|
.Dl $ apropos '~set.?[ug]id' |
|
.Pp |
|
Search for manuals in the library section mentioning both the |
.Qq optind |
.Qq optind |
and |
and the |
.Qq optarg |
.Qq optarg |
as variable names in the library category: |
variables: |
.Pp |
.Pp |
.Dl $ apropos \-s 3 \(dqVa~^optind$\(dq -a \(dqVa~^optarg$\(dq |
.Dl $ apropos \-s 3 Va=optind \-a Va=optarg |
.Pp |
.Pp |
Search for all manuals referencing |
Do exactly the same as calling |
.Qq POSIX |
.Xr whatis 1 |
in any letter case: |
with the argument |
|
.Qq ssh : |
.Pp |
.Pp |
.Dl $ apropos \-\- \-i posix |
.Dl $ apropos \-\- \-i 'Nm~[[:<:]]ssh[[:>:]]' |
.\" .Sh DIAGNOSTICS |
.Pp |
.\" For sections 1, 4, 6, 7, & 8 only. |
The following two invocations are equivalent: |
.\" .Sh ERRORS |
.Pp |
.\" For sections 2, 3, & 9 only. |
.D1 Li $ apropos -S Ar arch Li -s Ar section expression |
|
.Bd -ragged -offset indent |
|
.Li $ apropos \e( Ar expression Li \e) |
|
.Li -a arch~^( Ns Ar arch Ns Li |any)$ |
|
.Li -a sec~^ Ns Ar section Ns Li $ |
|
.Ed |
.Sh SEE ALSO |
.Sh SEE ALSO |
.Xr man 1 , |
.Xr man 1 , |
.Xr mandoc 1 , |
.Xr re_format 7 , |
.Xr re_format 7 |
.Xr makewhatis 8 |
.\" .Sh STANDARDS |
.Sh HISTORY |
.\" .Sh HISTORY |
Part of the functionality of |
.Sh AUTHORS |
.Nm whatis |
|
was already provided by the former |
|
.Nm manwhere |
|
utility in |
|
.Bx 1 . |
The |
The |
.Nm |
.Nm |
utility was written by |
and |
.An Kristaps Dzonsons , |
.Nm whatis |
.Mt kristaps@bsd.lv . |
utilities first appeared in |
.\" .Sh CAVEATS |
.Bx 2 . |
.\" .Sh BUGS |
They were rewritten from scratch for |
.\" .Sh SECURITY CONSIDERATIONS |
.Ox 5.6 . |
.\" Not used in OpenBSD. |
.Pp |
|
The |
|
.Fl M |
|
option and the |
|
.Ev MANPATH |
|
variable first appeared in |
|
.Bx 4.3 ; |
|
.Fl m |
|
in |
|
.Bx 4.3 Reno ; |
|
.Fl C |
|
in |
|
.Bx 4.4 Lite1 ; |
|
and |
|
.Fl S |
|
and |
|
.Fl s |
|
in |
|
.Ox 4.5 |
|
for |
|
.Nm |
|
and in |
|
.Ox 5.6 |
|
for |
|
.Nm whatis . |
|
.Sh AUTHORS |
|
.An -nosplit |
|
.An Bill Joy |
|
wrote |
|
.Nm manwhere |
|
in 1977 and the original |
|
.Bx |
|
.Nm |
|
and |
|
.Nm whatis |
|
in February 1979. |
|
The current version was written by |
|
.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv |
|
and |
|
.An Ingo Schwarze Aq Mt schwarze@openbsd.org . |