因此,例如,当我键入时,man ls
我看到了LS(1)
。但是,如果键入,man apachectl
我会看到APACHECTL(8)
,如果键入,man cd
我最终会得到cd(n)
。
我想知道括号中数字的含义是什么(如果有的话)。
export MANSECT=0p:1:2:3:3p:4:5:6:7:8:9:l:s:n
因此,例如,当我键入时,man ls
我看到了LS(1)
。但是,如果键入,man apachectl
我会看到APACHECTL(8)
,如果键入,man cd
我最终会得到cd(n)
。
我想知道括号中数字的含义是什么(如果有的话)。
export MANSECT=0p:1:2:3:3p:4:5:6:7:8:9:l:s:n
Answers:
该数字与该页面的手册的哪个部分相对应。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)
man X intro
描述一节中的内容X
。
man man
...直到现在。
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
它的含义已经描述过,但是我还想补充一点,每个部分都有一个特殊的手册页,其中有介绍:intro
。例如,看man 1 intro
或man 3 intro
等。
man-pages
安装软件包?
从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
?
~/man
?
通常,通过在手册页后缀后加上括号的部分来引用手册页,例如:
read(2)
这种样式有两个主要优点:
手册页按部分进行组织,例如,第1部分包含所有用户命令手册页,第2部分包含系统调用的所有手册页,第3部分包含库功能等。
在命令行上,如果未显式指定节,则将以默认节遍历顺序获得第一个匹配的手册页,例如:
$ man read
BASH_BUILTINS(1)
在Fedora上显示。哪里
$ man 2 read
显示read()
系统调用的手册页。
请注意,该部分的位置规范不是可移植的-例如,在Solaris上,您可以这样指定:
$ man -s 2 read
通常,man 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
前缀的目录代表每个部分,而其他目录则包含翻译后的部分。因此,要获取非空节的列表,可以发出如下命令:
$ find /usr/share/man -type f | sed 's@^.*/man\(..*\)/.*$@\1@' \
| sort -u | column
0p 1p 3 4 6 8
1 2 3p 5 7
(以p
POSIX手册页结尾的部分)
要以另一种语言(如果可用)查看手册页,可以设置与语言相关的环境变量,例如:
$ LC_MESSAGES=de_DE man read
另外,每个部分都应该有一个名为的简介手册页intro
,例如,可以通过以下方式查看:
$ man 2 intro
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没有定义数字。