很容易养成习惯,在 Linux 中谷歌搜索任何你想知道的关于命令或操作的信息,但我认为有更好的东西:一个鲜活的、完整的参考,即 man 手册页,它是 manual pages(手册页)的缩写。
man 手册页的历史早于 Linux,可以追溯到 Unix 的早期。根据维基百科,Dennis Ritchie 和 Ken Thompson 在 1971 年编写了第一批 man 手册页,那时远早于个人电脑时代,大约在当时使用的许多计算器都有烤面包机那么大。Man 手册页也以简洁而闻名,并且在某种程度上,它们有自己的语言。就像 Unix 和 Linux 一样,man 手册页也不是静态的,它们像内核一样不断地被开发和维护。
Man 手册页按数字引用的章节进行划分
- 通用用户命令
- 系统调用
- 库函数
- 特殊文件和驱动程序
- 文件格式
- 游戏和屏幕保护程序
- 杂项
- 系统管理命令和守护进程
即便如此,用户通常不需要知道特定命令所在的章节,也能找到他们需要的内容。
文件的格式对于今天的许多用户来说可能看起来很奇怪。最初,它们是用一种称为 troff 的旧标记语言编写的,因为它们被设计为通过 PostScript 打印机打印,因此它们包含了用于标题和其他布局方面的格式。在 Linux 中,使用的是 groff。
在我的 Fedora 中,man 手册页位于 /usr/share/man 中,带有子目录(如 man1 用于第 1 节命令)以及用于 man 手册页翻译的其他子目录。
如果你查找命令 man 的 man 手册页,你会看到文件 man.1.gz,它是用 gzip 实用程序压缩的 man 手册页。要访问 man 手册页,请键入如下命令
man man
例如,显示 man 的 man 手册页。这会解压缩 man 手册页,解释格式化命令,并使用 less 显示结果,因此导航方式与使用 less 时相同。
所有 man 手册页都应具有以下子节:Name(名称)、Synopsis(概要)、Description(描述)、Examples(示例)和 See Also(另请参阅)。许多还具有其他章节,如 Options(选项)、Exit Status(退出状态)、Environment(环境)、Bugs(错误)、Files(文件)、Author(作者)、Reporting Bugs(报告错误)、History(历史记录)和 Copyright(版权)。
分解 man 手册页
为了解释如何解释典型的 man 手册页,让我们以 ls 的 man 手册页 为例。在 Name(名称)下,我们看到
ls - list directory contents
它以最简单的术语告诉我们 ls 的含义。
在 Synopsis(概要)下,我们开始看到简洁性
ls [OPTION]... [FILE]…
方括号内的任何元素都是可选的。上面的命令意味着你可以合法地输入 ls 而不输入其他任何内容。每个元素后的省略号表示你可以包含任意数量的选项(只要它们彼此兼容)和任意数量的文件。你可以指定目录名称,也可以使用 * 作为通配符。例如
ls Documents/*.txt
在 Description(描述)下,我们看到了对命令作用的更详细的描述,然后是命令可用选项的列表。ls 的第一个选项是
-a, --all
do not ignore entries starting with .
如果我们想使用此选项,我们可以键入短格式语法 -a,或长格式 --all。并非所有选项都有两种形式(例如,--author),即使有,它们也并非总是如此明显相关(例如,-F, --classify)。当你想使用多个选项时,你可以键入带空格的短格式,或者键入带单个连字符且不带空格的短格式(只要它们不需要进一步的子选项)。因此,
ls -a -d -l
和
ls -adl
是等效的。
命令 tar 在某种程度上是独一无二的,据推测是由于其悠久的历史,它根本不需要连字符用于短格式。因此,
tar -cvf filearchive.tar thisdirectory/
和
tar cvf filearchive.tar thisdirectory/
都是合法的。
在 ls man 手册页上,在 Description(描述)之后是 Author(作者)、Reporting Bugs(报告错误)、Copyright(版权)和 See Also(另请参阅)。
See Also(另请参阅)部分通常会建议相关的 man 手册页,因此通常值得一看。毕竟,man 手册页不仅仅只有命令。
某些 Bash 特有的而非系统命令,如 alias、cd 和许多其他命令,都列在一个单独的 BASH_BUILTINS man 手册页中。虽然这些文档甚至更简洁紧凑,但总体而言,它包含类似的信息。
我发现 man 手册页提供了许多良好且可用的信息,特别是当我需要一个最近没有使用过的命令,并且需要复习选项和要求时。这是 man 手册页备受诟病的简洁性实际上非常有益的一个地方。
11 条评论