如何使用 man 手册:比 Google 搜索更快

Linux 手册页比您想象的更容易使用,并且包含大量信息。
435 位读者喜欢这篇文章。
Why the operating system matters even more in 2017

Internet Archive Book Images。由 Opensource.com 修改。CC BY-SA 4.0

人们很容易习惯于在 Google 上搜索关于 Linux 中命令或操作的任何信息,但我想说还有更好的东西:一个鲜活的、完整的参考,即 man 手册,它是 manual pages(手册页)的缩写。

man 手册的历史早于 Linux,可以追溯到 Unix 的早期。根据维基百科,Dennis Ritchie 和 Ken Thompson 在 1971 年编写了第一批 man 手册,那时远早于个人电脑时代,大约在当时使用的许多计算器都有烤面包机那么大。Man 手册也以简洁而闻名,并且在某种程度上,它们有自己的语言。就像 Unix 和 Linux 一样,man 手册也不是静态的,它们像内核一样不断地被开发和维护。

Man 手册分为编号的章节

  1. 通用用户命令
  2. 系统调用
  3. 库函数
  4. 特殊文件和驱动程序
  5. 文件格式
  6. 游戏和屏幕保护程序
  7. 杂项
  8. 系统管理命令和守护进程

即便如此,用户通常不需要知道特定命令所在的章节来找到他们需要的东西。

文件的格式对于今天的许多用户来说可能看起来很奇怪。最初,它们是用一种称为 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 而非系统命令的命令,如 aliascd 和许多其他命令,都列在一个 BASH_BUILTINS man 手册中。虽然这些命令的文档更加简洁紧凑,但总体而言,它包含类似的信息。

我发现 man 手册提供了许多有用的信息,特别是当我需要一个最近没有使用过的命令,并且需要复习选项和要求时。在这一点上,man 手册备受诟病的简洁性实际上非常有利。

标签
Greg Pittman
Greg 是肯塔基州路易斯维尔的一位退休神经科医生,长期以来对计算机和编程感兴趣,从 20 世纪 60 年代的 Fortran IV 开始。当 Linux 和开源软件出现时,它激发了他学习更多知识并最终做出贡献的承诺。他是 Scribus 团队的成员。

11 条评论

> 最初,它们是用一种称为 troff 的旧标记语言编写的,因为它们被设计为通过 PostScript 打印机打印

啊,不,当 troff 被发明时,PostScript 打印机也不存在。troff 及其使用的语言最初是为驱动 Graphic Systems CAT 照排机而设计的。

Google 搜索带有示例,大多数 man 手册没有。

man 手册是如何不编写手册的例子。它们是使用 Linux 的最大障碍之一。Linux 需要建设性的帮助页面。

听起来 Google 是你的朋友。对于许多命令来说,更广泛编写的文档会非常庞大。

回复 ,作者:John5g6 (未验证)

我使用 man 手册。有些比其他的更好。

我总是安装的一个很棒的项目是 cheat 命令:https://github.com/chrisallenlane/cheat

它的工作方式类似于 man 手册

$ cheat tar

打印 tar 命令如何使用的常见示例。

它有很多命令示例,您可以轻松添加更多示例,甚至可以贡献示例。与 man 手册结合使用,它是一个相当完整的参考集。

写得好的 man 手册是一件美事。如果 man 手册有清晰简洁的文字,用户就不需要 Google 搜索示例。如果 man 手册特别麻烦,则可以在其中包含示例,否则 - 但如果您必须查找 Google 搜索的脚本小子示例,那么您并没有真正理解命令的工作方式。

我很惊讶还没有人提到 man2html ... 它允许您在 Web 浏览器中浏览 man 手册。最初需要进行一些设置,但正如之前在此处提到的:MAN 手册是如何不编写手册的一个很好的例子。我发现 man2html 非常有用 ... 我经常打开一个 Web 浏览器窗口,以及一个带有各种搜索框的自定义“主页”。在这里,我可以简单地键入命令的名称并按 Enter 键,以整洁的格式化和可滚动文本格式查看整个 MAN 手册 =)

尝试使用尊重您隐私的搜索引擎。

这些天已经很难找到和安装了,但我最喜欢的 man 手册查看器是 xman。是的,athena 小部件有点笨拙,而且已经过时了,但它仍然提供了一个简单的替代方案,而不仅仅是纯粹的 shell。

大多数时候你不需要搜索引擎!
RTFM 即可 :)

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.