whatis 是一个在 Linux/Unix 系统中快速查询命令或函数简短、单行描述的工具,它就像一个命令的“名片”,告诉你“它是什么”。

详细说明
whatis 是什么?
whatis 命令属于 man 命令的“工具家族”,它的核心功能是从系统的手册页 中提取命令或函数的名称和简短描述(通常是描述部分的第一个句子),然后将这些信息格式化后显示出来。
你可以把它理解为 man 命令的“快速预览版”,当你只是想快速了解一个命令是做什么的,而不需要阅读完整的、可能很长的手册页时,whatis 就非常高效。
工作原理
whatis 的工作依赖于一个叫做 apropos 的命令和后台数据库。
- 扫描手册页:系统管理员或安装新软件时,
makewhatis或mandb命令会扫描系统上所有的手册页。 - 建立索引数据库:它会提取每个手册页的“名称”和“描述”行,并将这些信息存储在一个或多个可以快速搜索的数据库文件中(通常位于
/var/cache/man/或/usr/share/man/whatis.db)。 - 查询数据库:当你运行
whatis <keyword>时,它实际上是在查询这个数据库,而不是实时读取所有手册页文件。
这个数据库机制使得 whatis 的查询速度非常快。

基本语法和选项
语法:
whatis [选项] 名称...
常用选项:
| 选项 | 全称 | 描述 |
|---|---|---|
-a, --all |
--all |
显示所有匹配项,而不仅仅是第一个,这对于重名命令很有用。 |
-l, --long |
--long |
显示整个描述段落,而不仅仅是第一句话。 |
-r, --regex |
--regex |
将查询字符串作为正则表达式来处理,提供更强大的搜索能力。 |
-w, --wildcard |
--wildcard |
将查询字符串作为通配符模式来处理。 |
使用示例
示例 1:基本用法
查询 ls 命令是做什么的。
$ whatis ls ls (1) - list directory contents
输出解读:

ls: 命令或函数的名称。(1): 手册页的章节。1代表用户命令和可执行程序,其他常见章节有:(2)系统调用,(3)库函数,(5)文件格式等。- list directory contents: 命令的简短描述。
示例 2:查询多个命令
你可以一次查询多个命令。
$ whatis grep find grep (1) - print lines matching a pattern find (1) - search for files in a directory hierarchy
示例 3:使用 -a 显示所有匹配项
有时候一个名字可能对应多个不同的东西(比如在不同章节)。
$ whatis open open (1) - open a file or directory on the default file viewer open (2) - open and possibly create a file or symbolic link open (3p) - open a file
这里 open 既是用户命令(章节1),也是系统调用(章节2)和 POSIX 库函数(章节3p)。whatis -a open 会显示所有结果,而默认的 whatis open 可能只显示其中一个。
示例 4:使用 -l 显示完整描述
如果你想看到比一句话更详细的描述。
$ whatis -l ls ls -- list directory contents
可以看到,它显示了整个描述段落。
示例 5:使用 -r 进行正则表达式搜索
查找所有描述中包含 "list directory" 关键词的命令。
$ whatis -r "list directory" ls (1) - list directory contents dir (1) - list directory contents vdir (1) - list directory contents
示例 6:查询库函数
whatis 不仅可以查命令,还可以查函数。
$ whatis printf printf (1) - format and print data printf (3) - formatted output conversion
这里我们看到 printf 既是 shell 命令(章节1),也是一个 C 语言库函数(章节3)。
whatis 与 man、apropos 的区别
这三个命令经常一起使用,但功能不同,理解它们的区别很重要。
| 命令 | 功能 | 搜索对象 | |
|---|---|---|---|
whatis |
快速查询 | 命令/函数的名称和一句话描述 | 手册页的名称和描述索引 |
man |
详细阅读 | 完整的手册页,包括用法、选项、示例等 | 完整的手册页内容 |
apropos |
关键词搜索 | 所有手册页中包含该关键词的命令/函数列表 | 手册页的描述全文索引 |
简单比喻:
whatis:查字典的索引,告诉你某个词(命令)是什么意思(一句话)。apropos:查字典的检字表,告诉你哪些词(命令)的释义里包含你想到的某个字(关键词)。man:翻开字典,阅读关于某个词(命令)的完整释义和用法。
whatis 是一个非常实用且高效的命令行工具,是 Linux/Unix 用户日常工作中快速了解命令功能的得力助手,当你遇到一个不熟悉的命令时,第一反应不应该是直接 man(因为可能很长),而是先用 whatis 看一眼它的“名片”,快速判断是不是你想要的命令,再决定是否需要深入阅读 man 页。
