我有一个关于 linux 手册页文件夹组织/结构的问题,因为它出现在以下命令的输出中:
[root@centos8 man]# pwd
/usr/share/man
[root@centos8 man]# ls -d ./man*
./man0p ./man1p ./man2 ./man3 ./man3x ./man4x ./man5x ./man6x ./man7x ./man8x ./man9x
./man1 ./man1x ./man2x ./man3p ./man4 ./man5 ./man6 ./man7 ./man8 ./man9 ./mann
为什么有这么多文件夹?例如,man0p、man1p、man2 和 man2x 是什么?
谢谢。
答案1
如上所述,关于这些数字意味着什么的问题已经有了很好的答案。
对于后缀(例如x
in man2x
),维基百科手册页上的文章包括:
有些部分通过后缀进一步细分;例如,在某些系统中,3C部分用于C库调用,3M部分用于数学库,等等。这样做的结果是第 8 节(系统管理命令)有时被归入主命令部分的 1M 小节。一些小节后缀在各节中具有通用含义:
Subsection | Description -----------|------------------------------ p | POSIX specifications x | X Window System documentation
(第 3 节往往是例外,因为不同语言有许多后缀。)
因此,man3x
将是 X Windows 系统的 C 库函数。
答案2
一般来说:
- 用户命令
- 系统级函数调用
- 库函数
- 协议
- 配置文件
- 游戏
- 杂项信息
- 系统命令
有些系统在第 9 节中有内部内核例程。
你可能还会看到 3pm 页面,这些是 Perl 模块,我刚刚发现 3am 页面,这似乎是 GNU awk 扩展!乐趣。
答案3
只是为了向上面添加一些可访问性信息,您可以通过在调用手册页时向命令添加节号来查看手册页目录结构的表现。
例如,man printf
在 Linux 上运行会出现用户命令printf
手册页第 1 节中该实用程序的手册页。在 BSD 上man printf
提出了类似的BSD通用命令手册第 1 节中的手册页printf
。
或者,如果您man 3 printf
在 Linux 上运行,您将得到Linux 程序员手册printf
手册页第 3 节中有关 C 编程语言中函数系列的手册页。在 BSD 上man 3 printf
提出了类似的BSD 库函数手册第 3 节中Cprintf
函数的手册页。
刚运行时,man foo
man 实用程序将在第 1 部分开始搜索,然后继续到编号更高的部分,直到找到 的手册页foo
或耗尽搜索。您可以通过查看手册页的第一行来了解手册页所在的部分。在右上角或左上方,您将看到节号,对应于手册页的目录结构foo(N)
。N
man foo
与运行和搜索所有部分直到第一次命中相比,运行man N bar
where N
is the targetsection 会将搜索限制为仅该部分。