PROGNAME(x)在man手册中的引用 -- ()中的数字代表什么意思?

11

对于投票关闭此问题的人,值得一提的是,与man页面相关的任何内容都绝对与编程有关。在Unix中,没有man页面怎么能编程呢? - Nathan Fellman
3个回答

14

如果你运行man man,你将在man页中看到以下信息:

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]

有些名称与多个条目相关联,例如在我的系统上,'sleep' 在第1节和第3节都有一个条目。您可以使用例如指定您想要的一个。

man 3 sleep
有时候我只是猜测。
man -a sleep

它逐个显示与睡眠相关的每个条目。 我只需逐个查看它们,直到找到我想要的那个。你也可以尝试

man -k sleep

获取包含术语“睡眠”的页面列表,并稍微扩大一下范围。


+1 我想提一下,grep是(1),而不是(3),但你已经解释了通常的情况,所以那应该足够接近了。 - Chris Lutz
有可能系统上安装了grep(3)。你说得对,我们熟知和喜爱的命令行grep是grep(1)。 - leif

5
该数字表示man手册所在的部分。以您的示例为例:
grep(3)

获取文档,请输入:
man 3 grep

更常见的是,如果没有grep(2)grep(1),你可以使用以下方法:

man grep

然而,我应该注意到grep在第1部分中。第3部分通常保留给C函数。例如,getoptgetopt(1)指的是命令行实用程序getopt,但getopt(3)指的是C函数getopt。同样,read(1)是一个从标准输入读取的程序,但read(2)是用于程序的POSIX系统调用 - 它是大多数Linux(和其他Unix)系统上可以获得的最低级别的输入形式之一。

并非所有版本的"man"都支持无修饰的章节名称。特别是在Solaris中,它会认为您正在询问一个名为3的命令。使用"-s"选项可以消除疑虑。它还有不仅仅是数字的章节,包括3c和3socket。 - Rob Kennedy

1

这是告诉您帮助手册所在的章节... 8通常是管理相关实用程序的位置(/sbin,/usr/sbin等)

因此,GREP(3)的帮助位于手册第3节中,您可以键入man 3 grep直接获取grep(3)的帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接