「whatis(1)」-

用一句话来描述手册页面

命令语法格式

whatis [-dlv?V] [-r|-w] [-s list] [-m system[,…]] [-M path] [-L locale] [-C file] name …

命令描述

每个手册页中都有一个名为NAME的部分。whatis会搜索手册页名字,如果手册页名字与命令参数name匹配,则whatis会输出该手册页的名字和NAME部分中的描述。

name可以包含通配符(-w)或是正则表达式(-r)。使用这些选项时,可能要给name加引号或对特殊字符转义,以阻止SHELL解析它们。

在搜索时,whatis会使用索引数据库,索引数据库由mandb命令更新,索引数据库的位置参见本文的「相关文件」部分。根据你的安装方式,索引数据库的更新可能通过周期任务(cron)进行的,或者在安装新手册页后手动进行更新索引数据库。要使用相对索引数据库来生成旧式的文本whatis数据库,可以调用下面的命令:

# whatis -M manpath -w ‘*’ | sort > manpath/whatis

其中manpath是手册页层次结构,如/usr/man。在很早之前,索引数据库是使用纯文本格式的数据库(称为whatis数据库),后来使用Berkeley DB数据库来代替传统的纯文本whatis数据库。

命令支持的选项及含义

-d, –debug
打印调试信息。

-v, –verbose
打印详细的警告消息。

-r, –regex
将每个name解释为正则表达式。如果name匹配页面名称的任何部分,则将视为一个匹配的页面。该选项会使whatis略微变慢,这是由数据库搜索的原理导致的。

-w, –wildcard
将每个name解释为包含SHELL风格通配符的模式。要匹配,展开的name要与整个页面名称匹配。该选项会使whatis略微变慢,这是由数据库搜索的原理导致的。

-l, –long
不按终端宽度截断输出。通常,如果不使用该选项,会将输出截短为终端宽度,一行只显示一条匹配的记录,超不的部分显示省略号。

-s list, –sections list, –section list
只搜索指定的手册章节。list是由冒号或逗号分隔的章节列表。如果list中的指定的是简单的章节号,如“3”,则最终显示的描述列表将只包含“3”、“3perl”“3x”等章节中的页面;如果list中的章节号带扩展,如“3perl”,则最终显示的描述列表将只包含手册章节中对应部分的页面。

-m system[,…], –systems=system[,…]
如果此系统可以访问其他操作系统的手册页层次结构,可以使用此选项访问它们。要搜索NewOS的手册页名称,可以使用-m NewOS选项。

指定的system选项可以是逗号分隔的操作系统名称组合。要包括本地操作系统的手册页名称,可以在参数字符串中包含系统名 man。此选项会覆盖$SYSTEM环境变量。

-M path, –manpath=path
另外指定一组以冒号分隔的手册页层次结构作为搜索路径。默认情况下whatis会使用$MANPATH环境变量作为搜索路径;如果该环境变量为空或未设置,程序会根据你的$PATH环境变量确定相应的手册路径。此选项会覆盖$MANPATH环境变量的内容。

-L locale, –locale=locale
whatis通常会通过调用C语言函数setlocale(3)来确定你的当前区域设置。该函数会检查多个环境变量,可能包括$LC_MESSAGES和$LANG。要临时覆盖检测到的值,请使用该选项直接向whatis提供一个locale字符串。注意,在搜索页面实际开始前它并不会生效。帮助消息等输出将始终以检测到的区域语言显示,并不会受到该选项的影响。

-C file, –config-file=file
使用用户配置文件file代替默认的~/.manpath

-?, –help
打印帮助消息并退出。

–usage
打印简短的帮助消息并退出

状态码

0 程序成功执行。

1 用法、语法或配置文件出错。

2 操作出错。

16 未找到符合指定条件的结果。

相关环境变量

SYSTEM
环境变量$SYSTEM与-m选项的效果相同。

MANPATH
如果设置了$MANPATH环境变量,它的值(以冒号分隔)将被解释为要使用的手册页层次结构搜索路径。

MANWIDTH
如果设置了$MANWIDTH,它的值将用作终端宽度(参阅 –long 选项)。如果未设置它,终端宽度将通过$COLUMNS环境变量或调用ioctl(2)(如果有的话)计算。若都失败,将退回到80个字符。

相关文件

/usr/share/man/index.(bt|db|dir|pag)
传统的全局 索引 数据库缓存。

/var/cache/man/index.(bt|db|dir|pag)
与FHS兼容的全局索引数据库缓存。

/usr/share/man/…/whatis
传统的whatis文本数据库。

相关手册

apropos(1), man(1), mandb(8)

参考文献

  • man 1 whatis, version 2.7.6.1

更新日志

  • 07/29/2017 创建文章