如何输出特定部分中所有手册页的列表?


Answers:


4

此命令列出了给定部分中所有条目的排序名称:

man -aWS 1 \* | xargs basename | sed 's/\.[^.]*$//' | sort -u

如果要查看路径名,请使用:

man -aWS 1 \* | sed 's/\.[^.]*$//' | sort

这告诉man您使用通配符模式*(用反斜杠加引号,以便外壳程序不解释它)在部分中搜索所有命令。-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; }

例如,您可以按如下方式调用它mansect 3以查看第三部分中的条目。

[在macOS上测试。]


很好-谢谢。我得到了一些重复的内容(例如/Applications/Xcode.app中的路径和第7节中的“加速”),但是没有任何东西uniq可以解决问题。
xyz

@xyz:我更新了sort命令sort -u以删除重复项。
克里斯·佩奇

24

要列出特定部分中所有已安装的手册页,可以使用apropos

apropos -s 2 .  # use an regex for apropos . means anything
apropos -s 2 -w '*'  # use unix globbing for apropos

“ apropos:-s:未知选项”
Michael Mrozek

@MichaelMrozek您使用的是什么系统?它对我
有用

谢谢。Mac OS X apropos中不存在-s选项,该选项可能来自BSD。
xyz 2012年

@ f100嗯,可以尝试man -a -s 2 '*'
乌尔里希·丹格尔

看起来更像是这样,但实际上并没有列出它们,而是依次为每个观看者调用查看器。我破解了一个功能,可以在另一个评论中发布列表。它可能有问题,但对我来说足够了:)
xyz 2012年

20

联机帮助页通常放置在中/usr/share/man,但请选中$MANPATH,并将其组织为以下部分:

 Section 1:
 /usr/share/man/man1/

 Section 2:
 /usr/share/man/man2/

 ...

因此,要列出所有已安装的第2节手册,请执行以下操作:

ls /usr/share/man/man2/

或更完整的一个:

find $(echo $MANPATH | tr ':' ' ') -path '*/man2/*'

如果您的目录名中$MANPATH带有空格,则后一个问题会出现。

在大多数发行版中,您还可以使用打包工具检查可用的手册页,例如,在Debian衍生发行版上,您可以apt-file像这样使用:

apt-file search /man2/

1
谢谢-这是我需要的开始。我做了一个运行例如的shell函数,lman 2并在新行上列出了每个页面的未修饰名称并对其进行了分页。该函数的主体为:find $(man --path | tr ':' ' ') -path "*/man$1/*"| xargs basename | sort | sed -E "s/\.$1(.gz)?\$//" | less
xyz

1

在Mac OS X上,我唯一可以使用的是man -k . | grep -F '(3)',其中列出了第3节中的所有内容。


0

我知道这是一个非常老的问题,但是这里给出的答案都对我不起作用。因此,我想出了以下可在Ubuntu 18.04和macOS Mojave 10.14.6上运行的单行代码:

find $(man --path | tr ':' ' ') -type f -path '*man2*' \
  -exec basename {} \; | sed 's/\..*//' | sort

快速运行:

  • 形式Thors答案:$(man --path | tr ':' ' ')获取手册页的当前路径
  • find <man paths> -type f -path '*man2*' -exec basename {} \; 获取man路径中所有常规文件的文件名
  • sed 摆脱文件扩展名
  • sort 按字母顺序。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.