man ls
时,我会看到LS(1)
。但是,如果我输入man apachectl
,我会看到APACHECTL(8)
,如果我输入man cd
,我最终会得到cd(n)
。我想知道括号中数字的含义是什么,如果有的话。
#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)
请注意,该部分有时可能包含一个子部分(例如,
p
和1p
中的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 intro
或man 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 crontab
与man 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没有定义数字。
评论
超级用户的版本: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次。