Ubuntu 的 man 和 macOS 的 man 有什么区别?

Ubuntu 的 man 和 macOS 的 man 有什么区别?

我的主机运行的是 macOS 14 Sonoma,但我经常ssh使用 Ubuntu 服务器。最近我注意到man这些平台上的程序之间存在奇怪的差异。

在 Ubuntu 上,man在左下角显示一个有用的“提示”: 乌班图人

可以使用--prompt选项 -man --prompt "hey unix stackexchange!" man结果进行配置:

在此输入图像描述

但在 macOS 上,没有提示:

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

我的问题是:

  • 为什么manUbuntu(可能还有 Debian 和许多其他操作系统)与 macOS 的差异如此之大man
  • man如何才能在 macOS 上拥有更全面的功能?

答案1

man大多数 Linux 发行版上的默认版本是人数据库man,这与macOS 上的默认版本有很大不同。 macOS 版本可能是基于 BSD 版本的。

您可以使用 Homebrew 或 MacPorts 在 macOS 上安装 man-db;对于后者,运行

sudo port install man-db

相关内容