fork例如, 的手册页位于 System Calls 部分,编号为 2:
man 2 fork
在不求助于 Google 的情况下,您如何看待第 2 部分的其他内容?
Ulr*_*gel 32
要从特定部分列出所有已安装的手册页,您可以使用apropos:
apropos -s 2 . # use an regex for apropos . means anything
apropos -s 2 -w '*' # use unix globbing for apropos
Run Code Online (Sandbox Code Playgroud)
Tho*_*hor 20
联机帮助页通常放在/usr/share/man, 但检查$MANPATH, 并组织成这样的部分:
Section 1:
/usr/share/man/man1/
Section 2:
/usr/share/man/man2/
...
Run Code Online (Sandbox Code Playgroud)
因此,要列出所有已安装的第 2 部分联机帮助页,请执行以下操作:
ls /usr/share/man/man2/
Run Code Online (Sandbox Code Playgroud)
或者更完整的一个:
find $(echo $MANPATH | tr ':' ' ') -path '*/man2/*'
Run Code Online (Sandbox Code Playgroud)
如果您的目录$MANPATH名称中有空格,则后一个会出现问题。
在大多数发行版上,您还可以使用软件包工具检查可用的手册页,例如在 Debian 派生发行版上,您可以apt-file像这样使用:
apt-file search /man2/
Run Code Online (Sandbox Code Playgroud)
此命令列出给定部分中所有条目的排序名称:
man -aWS 1 \* | xargs basename | sed 's/\.[^.]*$//' | sort -u
Run Code Online (Sandbox Code Playgroud)
如果要查看路径名,请使用:
man -aWS 1 \* | sed 's/\.[^.]*$//' | sort
Run Code Online (Sandbox Code Playgroud)
这告诉man使用通配符模式搜索所有命令的部分*(反斜杠引用,因此 shell 不会解释它)。-a查找所有匹配项,-W打印路径名而不是显示页面,并-S 1指定第一部分。将 更改为1您要搜索的任何部分。
该sed命令去除文件扩展名;如果您想查看完整的文件名,请将其删除。sort对结果进行排序(-u删除重复项)。
为了方便重用,这里定义了一个 Bash shell 函数:
function mansect { man -aWS ${1?man section not provided} \* | xargs basename | sed 's/\.[^.]*$//' | sort -u; }
Run Code Online (Sandbox Code Playgroud)
例如,您可以调用它mansect 3来查看第三部分中的条目。
[在 macOS 上测试。]