12. 如何让 `apropos' 和 `whatis' 工作?

假设你想知道你的系统上安装了哪些编译器以及如何调用它们。为了回答这个(经常被问到的)问题,你可以输入

funnyprompt$ apropos compiler
f77 (1) - Fortran 77 compiler 
gcc (1) - GNU C and C++ compiler
pc (1) - Pascal compiler

Aproposwhatis用于快速报告哪个手册页包含关于特定主题的信息。这两个程序都会搜索许多名为 `whatis` 的文件,这些文件可能位于每个手册基本目录中。正如之前所述,whatis 数据库文件包含每个手册页的单行条目,位于各自的目录树中。实际上,该行正是 NAME 部分(准确地说:连接成一行并删除了连字符;请注意,该节在括号中提到)。whatis 数据库文件是使用makewhatis(8) 程序创建的。目前有多个版本,因此请参考手册页以确定有哪些可用选项。为了使makewhatis能够正确提取 NAME 部分,作为手册编写者的你,务必遵守 问题 3) 中描述的 NAME 部分格式。`apropos` 和aproposwhatis之间的区别仅仅在于它们在行中查找的位置以及它们查找的内容。Apropos(这等同于man -k)在行中的任何位置搜索参数字符串,而whatis(等同于man -f)尝试仅在破折号之前的部分匹配完整的命令名称。因此,`whatis cc` 将报告是否存在cc手册,而对于gcc.

则保持沉默。