因此,例如,当我输入man ls时,我会看到LS(1)。但是,如果我输入man apachectl,我会看到APACHECTL(8),如果我输入man cd,我最终会得到cd(n)

我想知道括号中数字的含义是什么,如果有的话。

评论

超级用户的版本:Linux命令或C函数后的括号和数字是什么意思?

stackoverflow.com/questions/62936/…

@PeterMortensen这就是为什么SuperUser和Unix / Linux和ServerFault以及AskUbuntu和Apple都需要合并的原因。
附带一提,您可以使用export MANSECT = 0p:1:2:3:3p:4:5:6:7:8:9:l:s:n
设置自己的搜索顺序
这是巨大的UX故障。数字文档根本不应该有部门号;它应该具有描述性的名称和超链接。我不敢相信他们设法使文档如此混乱,以至于这个问题被查看了121000次。

#1 楼

该数字与该页面的手册的哪个部分相对应。 1是用户命令,而8是sysadmin。 man本身的手册页(man man)对其进行了解释并列出了标准的手册页:
MANUAL SECTIONS
    The standard sections of the manual include:

    1      User Commands
    2      System Calls
    3      C Library Functions
    4      Devices and Special Files
    5      File Formats and Conventions
    6      Games et. al.
    7      Miscellanea
    8      System Administration tools and Daemons

    Distributions customize the manual section to their specifics,
    which often include additional sections.

某些术语在不同的部分中具有不同的页面(例如,printf作为命令出现在第1部分中,因为stdlib功能出现在第3)节中;在类似情况下,您可以在页面名称之前将节号传递到man以选择所需的页面,或使用man -a在一行中显示每个匹配的页面:
$ man 1 printf
$ man 3 printf
$ man -a printf


您可以用man -k(相当于apropos命令)说出术语属于哪些部分。它将也进行子字符串匹配(例如,如果您运行sprintf,则会显示man -k printf),因此您需要使用^term对其进行限制:
$ man -k '^printf'
printf               (1)  - format and print data
printf               (1p)  - write formatted output
printf               (3)  - formatted output conversion
printf               (3p)  - print formatted output
printf [builtins]    (1)  - bash built-in commands, see bash(1)

请注意,该部分有时可能包含一个子部分(例如, p1p中的3p)。 p小节适用于POSIX规范; x小节适用于X Window系统文档。

评论


这肯定可以解释。有没有一种简单的方法来判断给定命令是否有多个手册页?

–野鸭
10-10-28在21:46

@Wil是的,已编辑

– Michael Mrozek
10-10-28在21:52

请注意,这些部分编号适用于Linux。所有UNIX变体AFAIK的1、3和6都相同,但是其他部分和非数字部分可以不同。通常,man X简介会描述X节中的内容。

–吉尔斯'所以-不再是邪恶的'
2010-10-28 22:31



@KeithB:我使用了一些带有4,5,7,8不同的unices。 Digital Unix(OSF1)拥有,而Solaris仍然具有:文件格式为4,杂项为5,设备为7。Solaris还将管理员命令的大小为1m。我认为2中的系统调用是通用的,但是某些系统在2中也具有一些C库接口(当它们被认为是同名syscall的瘦包装时)。

–吉尔斯'所以-不再是邪恶的'
10-10-29在20:20

thought,以为您需要使用手册才能使用手册...从来没有执行过man man ...直到现在。

–马特·克拉克(Matt Clark)
2015年12月4日15:44

#2 楼

这些节号的历史可以追溯到1971年Thompson和Ritchie撰写的原始Unix程序员手册。

原始节是系统调用
子例程
特殊文件
文件格式
用户维护的程序
其他


评论


确实有更多来自70年代的东西。我以为是80年代的。

–罗夫
18年2月10日在18:51

“其他”主要是指“有关整个子系统或通用Unix功能而不是特定API端点的广泛信息”。参见例如pipe(7),tcp(7)(和其他一些网络手册页),pthreads(7),boot(7),regex(7)等。第7节中还有其他内容,例如ascii (7)(ASCII表)和man(7)(如何编写手册页),但据我所知,到目前为止,文档页面是第7节中最有用的内容。

–凯文
18/12/7在18:27



#3 楼

konqueror还描述了非标准部分:(感谢@ greg0ire的想法)

0     Header files
0p    Header files (POSIX)
1     Executable programs or shell commands
1p    Executable programs or shell commands (POSIX)
2     System calls (functions provided by the kernel)
3     Library calls (functions within program libraries)
3n    Network Functions
3p    Perl Modules
4     Special files (usually found in /dev)
5     File formats and conventions eg /etc/passwd
6     Games
7     Miscellaneous  (including  macro  packages and conventions), e.g. man(7), groff(7)
8     System administration commands (usually only for root)
9     Kernel routines
l     Local documentation
n     New manpages


#4 楼

它的意思已经描述过了,但是我还想补充一点,每个部分都有一个特殊的手册页,并进行了介绍:intro。例如,请参阅man 1 introman 3 intro等。

评论


我在Fedora安装中没有看到此消息。 man X简介不是标准的吗?

–beatgammit
2011年7月1日,下午4:39

@tjameson是否安装了手册页软件包?

– Slava Semushin
2011年7月1日下午4:43

#5 楼

来自man的联机帮助页:

The table below shows the section numbers of the manual followed by the 
types of pages they contain.

   1   Executable programs or shell commands
   2   System calls (functions provided by the kernel)
   3   Library calls (functions within program libraries)
   4   Special files (usually found in /dev)
   5   File formats and conventions eg /etc/passwd
   6   Games
   7   Miscellaneous  (including  macro  packages and conven‐
       tions), e.g. man(7), groff(7)
   8   System administration commands (usually only for root)
   9   Kernel routines [Non standard]


关于它们为什么如此分开的原因-有所重叠。某些手册页会根据您的意思而存在于多个部分中。

例如,将man crontabman 5 crontab进行比较-可能后者是您要查找的内容。

评论


man1p和man3p是什么?

–提洛
2011年8月4日在20:15

我应该在〜/ man中放置自己的手册页在哪里?

–提洛
2011年8月4日在20:20

1p是该手册的posix标准版本。如果要编写可移植的代码,则应仅使用Xp手册页。如果您的实现不符合posix,则X和Xp手册页可能会有所不同。

– andcoz
2011年8月4日在22:42



@Tyilo看到我的答案

–巴本·瓦尔达扬(Babken Vardanyan)
2014年6月23日下午6:36

#6 楼

这些是节号。
只需键入man man或打开konqueror并键入man:// man,您就会看到这些节是什么。

#7 楼

通常,通过在手册页后缀后加括号的部分来引用手册页,例如:

read(2)


这种样式有两个主要优点:


很明显,您引用了手册页-即您可以编写类似'cf. read(3)”而不是“ cf.阅读的第3节手册页'
,如果多个节包含具有相同名称的手册页,则指定该节更为精确

手册页按节进行组织,例如第1节包含所有用户命令手册页,第2节包含系统调用的所有手册页,第3节包含库函数等。

在命令行上,如果未明确指定该节,获取第一个匹配的手册页,按默认的节遍历顺序,例如:

$ man read


在Fedora上显示BASH_BUILTINS(1)

$ man 2 read


显示read()系统调用的手册页。在Solaris上,您可以这样指定:

$ man -s 2 read


通常,man man还会列出一些可用的部分。但不一定全部。为了列出所有可用部分,可以列出默认手册路径或环境变量$MANPATH中列出的所有目录的子目录。例如,在安装了某些开发软件包的Fedora 23系统上,/usr/share/man具有以下子目录:部分。因此,要获取非空部分的列表,可以发出如下命令:

cs  es  id  man0p  man2   man3x  man5x  man7x  man9x  pt_BR  sk  zh_CN
da  fr  it  man1   man2x  man4   man6   man8   mann   pt_PT  sv  zh_TW
de  hr  ja  man1p  man3   man4x  man6x  man8x  pl     ro     tr
en  hu  ko  man1x  man3p  man5   man7   man9   pt     ru     zh


(以man结尾的部分是POSIX手册页)

要查看另一种语言的手册页(如果有),可以设置与语言相关的环境变量,例如:

$ find /usr/share/man -type f  | sed 's@^.*/man\(..*\)/.*$@@' \
    | sort -u | column
0p  1p  3   4   6   8
1   2   3p  5   7


另外,每个部分都应该有一个名为p的简介手册页,例如可通过以下方式查看:

$ LC_MESSAGES=de_DE man read


#8 楼

SVr4的定义为:

1 User Commands
2 System Calls
3 library Functions
4 File Formats
5 Standards, Environment and Macros (e.g. man(5))
6 Games and Demos
7 Device and Network Interfaces, Special Files
8 Maintenance Procedures
9 Kernel and Driver entry points and structures


这些是“通用” UNIX的实际编号。
POSIX没有定义数字。