`man`和`man(#)`有什么区别?
刚看到有人在Stackoverflow上引用man 7 regex
。 我试过man regex
并得到非常相似的输出 – 似乎有轻微的差异。
那么神奇的7号是什么? 在Google上搜索man 7 unix
给了我更多神秘的结果,比如UNIX(7)……
关于UNIX(7)
要回答你的“UNIX(7)”的问题,这是在第7节(杂项)中说“UNIX的手册页”的标准惯例。
要打开像init(8)
这样的页面,你可以使用这个命令: man 8 init
。
man regex
vs man 7 regex
回答你关于man regex
与man 7 regex
之间“微妙差异”的问题:
man
默认打开具有最低节号的页面。 在这种情况下,它是第3节(图书馆电话)。 从第7节(杂项)打开页面是完全不同的。
不同部分的页面可以解决不同的问题,但在这种情况下它们是相似的,请考虑:
man -f apt
:
apt (8) - Advanced Package Tool apt (1) - annotation processing tool
在此示例中,第8节(系统管理命令)中的apt
与第1节(可执行程序或shell命令)中的页面完全无关。
为了将来参考,请使用man -f PAGE_NAME
在所有部分中找到具有该名称的所有页面。 然后,您可以使用man SECTION PAGE_NAME
打开所需部分的页面。
手册页部分
各个页面部分如下,可以从man man
找到:
- 可执行程序或shell命令
- 系统调用(内核提供的function)
- 库调用(程序库中的函数)
- 特殊文件(通常位于
/dev
)- 文件格式和约定,例如
/etc/passwd
- 游戏
- 其他(包括宏包和惯例),例如
man(7)
,groff(7)
- 系统管理命令(通常仅用于root)
- 内核例程[非标准]
部分编号
man
将显示任何部分的联机帮助页, man 7
将显示第7部分的联机帮助页。因此,此处7指的是您正在查找手册页的特定命令的部分。
如果提供了一个部分,将指示人员仅查看本手册的该部分。
部分
请参阅下表,了解手册的部分编号,后面是它们包含的页面类型。
1:可执行程序或shell命令
2:系统调用(内核提供的function)
3:库调用(程序库中的函数)
4:特殊文件(通常在/ dev中找到)
5:文件格式和约定,例如/ etc / passwd
6:游戏
7:其他(包括宏包和惯例),例如man(7),groff(7)
8:系统管理命令(通常仅用于root)。 概述各种主题,约定和协议,字符集标准以及其他各种事物。
9:内核例程[非标准]
多个部分中的命令
在大多数情况下,您将需要使用man
命令而无需额外的n 。 但是,在某些情况下,命令将出现在多个部分中。 例如,如果您发出命令man open
,则从第1部分获取openvt的手册页。但是,如果您需要查看打开的手册页作为C(或系统调用,根据上表)命令,则需要发出man 2 open
。
一个非常相似的例子是man printf
和man 3 printf
。 请发出命令并亲自查看输出的差异。
你的问题man 7 unix
(UNIX(7))
因此,UNIX(7)意味着它属于第7节。
如果我没有提供章节号,默认会显示哪个部分?
默认操作是按照预定义的顺序搜索所有可用部分,并仅显示找到的第一个页面,即使页面存在于多个部分中也是如此。
我如何知道命令的节号?
你是否需要找出一个术语/命令属于man -k
(相当于apropos命令)。 因此, man -k printf
将搜索关键字printf的简短描述和手册页名称作为正则表达式。 打印出任何比赛。 (相当于apropos -r printf
)。 发出命令,看你得到的吨。 如果需要避免子串匹配,(例如,如果你运行man -k printf
它会显示sprintf),所以你需要使用^term
来限制它,如下所示,
man -k '^printf' Printf (3o) - Formatted output functions. printf (1) - format and print data printf (3) - formatted output conversion
相关命令
如上所述,相关命令是apropos
,其搜索手册页名称和描述。 如果您不确定要查找哪个手册页但有一般概念,请使用此命令。