我的主机运行的是 macOS 14 Sonoma,但我经常ssh
使用 Ubuntu 服务器。最近我注意到man
这些平台上的程序之间存在奇怪的差异。
在 Ubuntu 上,man
在左下角显示一个有用的“提示”:
可以使用--prompt
选项 -man --prompt "hey unix stackexchange!" man
结果进行配置:
但在 macOS 上,没有提示:
起初我以为我可能只是使用了不同版本的man
.在 Ubuntu 上man --version
打印man 2.11.2
,但在 macOS 上此选项不存在:
$ man --version
/usr/bin/man: illegal option -- -
Usage:
man [-adho] [-t | -w] [-M manpath] [-P pager] [-S mansect]
[-m arch[:machine]] [-p [eprtv]] [mansect] page [...]
man -f page [...] -- Emulates whatis(1)
man -k page [...] -- Emulates apropos(1
然后我决定看看man
可执行文件到底是什么,结果令我惊讶。
在Ubuntu上:
$ file $(which man)
/usr/bin/man: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=93e22c77b20c329ec51dad530c40fd0d64fc696f, for GNU/Linux 3.2.0, stripped
在 macOS 上:
$ file $(which man)
/usr/bin/man: POSIX shell script text executable, ASCII text
我的问题是:
- 为什么
man
Ubuntu(可能还有 Debian 和许多其他操作系统)与 macOS 的差异如此之大man
? man
如何才能在 macOS 上拥有更全面的功能?
答案1
man
大多数 Linux 发行版上的默认版本是人数据库man
,这与macOS 上的默认版本有很大不同。 macOS 版本可能是基于 BSD 版本的。
您可以使用 Homebrew 或 MacPorts 在 macOS 上安装 man-db;对于后者,运行
sudo port install man-db