我对 unix 还不熟悉。目前正在学习。我在虚拟机(oracle)上使用 Ubuntu 16.04LTS。我想尝试命令“whatis”,但我读的书上说:-
在您的系统上第一次运行 whatis 之前 — — 特别是如果您正在运行使用 FreeBSD、Linux 或 Darwin 的独立机器 — — 您将需要在 /usr/libexec/makewhatis 运行 makewhatis,它会通过扫描现有手册页中的命令名称来创建 whatis 数据库。
我尝试跑步/usr/libexec/makewhatis
,结果却出现了这种情况
bash: /usr/libexec/makewhatis: no such file or directory
我尝试了sudo apt install makewhatis
一下,在阅读了软件包列表、构建了依赖关系树、阅读了状态信息之后,我得到了这个
E: Unable to locate package makewhatis
当我whatis cat
这样做时,我得到了我期望的结果。我只想知道我是否不需要/usr/libexec/makewhatis
在我的系统上运行,第一次使用 whatis,一切都很好。
答案1
/usr/libexec
默认情况下在 Ubuntu 上不存在。因此错误是正确的。你的书可能有点过时了。引用本文:
输入 makewhatis。此命令创建 apropos 和 whatis 使用的 whatis 数据库文件。它们位于每个 ../man 目录中,并在每个单独的 cat? 和 man? 子目录中编录手册文件。
如果您阅读手册,whatis
您会发现在现代系统上不再需要这样做(强调):
索引数据库用于搜索,并且由 mandb 程序更新。根据您的安装,这可能由定期的 cron 作业运行,或者可能需要在安装新的手册页后手动运行。
答案2
对于 ubuntu 16.04,不需要执行
/usr/libexec/makewhatis
命令,仅执行命令
whatis cat
whatis cat 与 man -f cat 的结果相同