如何在Linux的手册页中查看特定部分
当寻找Linux/Unix命令的用法时,实际上我们不必使用Google或者在讨论论坛,Wiki页面,教程 或者任何离线/在线资源中进行搜索。
所有内容都记录在命令的手册页(简称手册页)中。
我们只需要学习有效地使用手册页,即可轻松快速地获取命令或者其选项/标志的详细信息。
今天,将介绍一个鲜为人知的手册页技巧,例如:如何在Linux和Unix中查看手册页中的特定部分。
手册页默认结构
手册页由几个不同的部分组成,每个部分的标题组织在一起,例如名称,大纲,配置,描述,选项,退出状态,返回值,错误,环境,文件,版本,符合,注释,错误,示例,作者,另请参阅。
每个手册页都有其命令名称,后跟括号中的节号。
以下是手册的章节号列表,以及其包含的页面类型:
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 e.g. /etc/passwd. 6 - Games. 7 - Miscellaneous (including macro packages and conventions), e.g. man(7). 8 - System administration commands (usually only for root). 9 - Kernel routines [Non standard].
有些页面包含所有这些部分,有些则没有。
现在让我们看看如何查看命令手册页的特定部分。
在Linux的手册页中查看特定部分
让我们打开命令的手册页,例如uname。
$man uname
向下滚动手册页的末尾,我们将看到对其他命令的引用。
[...] SEE ALSO arch(1), uname(2) [...]
我们是否在命令末尾看到所有这些数字?
在几乎所有命令的手册页末尾,我们都会看到一个或者多个参考命令,并在括号中带有数字。
这些数字表示我们要查看的命令手册页中的特定部分。
换句话说,该数字与该页面来自手册的哪个部分相对应。
要明确告诉man 打开uname命令的第2节,只需运行:
$man 2 uname
或者,
$man uname.2
在以下屏幕截图中,左侧的“终端”窗口显示了“ man uname”命令的输出。
“终端”窗口的右侧显示“ man 2 uname”(即uname的第2节)命令的输出。
请注意,当我们运行不带任何数字的man命令时,它通常等效于:
$man 1 <command>
一些手册页没有特定的部分。
在这种情况下,尝试查看带有节号的手册页时我们什么也收不到。
例如,我运行以下命令来查看uname命令的第5部分:
$man 5 uname
由于uname命令没有第5节,因此得到以下输出:
No manual entry for uname in section 5 See 'man 7 undocumented' for help when manual pages are not available.
连续显示所有部分
就像我已经说过的那样,特定命令的手册页包含许多部分。
要连续查看每个匹配的页面,请使用-a标志,如下所示。
$man -a uname
按q退出一个部分并移至下一个部分。
显示所有与具有段号的字符串匹配的命令
我们可以使用-k标志来搜索包含搜索字符串的手册页。
因此,如果要在手册页中检索特定命令的所有节号,请使用-k选项,如下所示。
$man -k uname
输出示例:
arch (1) - print machine hardware name (same as uname -m) oldolduname (2) - get name and information about current kernel olduname (2) - get name and information about current kernel uname (1) - print system information uname (1posix) - return system name uname (2) - get name and information about current kernel
如我们在上面的输出中看到的,我们列出了与给定关键字字符串匹配的所有命令(即子字符串)。
要严格限制在匹配的字符串中进行搜索,请使用:
$man -k '^uname'
输出示例:
uname (1) - print system information uname (1posix) - return system name uname (2) - get name and information about current kernel
我们也可以使用-f标志。
$man -f uname
输出示例:
uname (1) - print system information uname (2) - get name and information about current kernel uname (1posix) - return system name
有关更多详细信息,请查看“ man”的手册页。
$man man
另外,请参见手册页的其他帮助部分。
$man -k man
$info man