Linux探索之旅 | 第二部分第八课:RTFM 阅读那该死的手册

 

内容简介


  1. 第二部分第八课:RTFM 阅读那该死的手册
  2. 第二部分第九课预告:查找文件,无所遁形

软件安装,如虎添翼


上一课 Linux探索之旅 | 第二部分第七课:软件安装,如虎添翼 中,我们领略了Linux下安装软件的便捷。

今天这一课也会比较轻松。

在Linux下,阅读手册应该成为一个反射动作,一个自然而然的反应。虽说一开始要我们去看手册会有点让人生畏,但是我们学习各种Linux命令的使用方法的最好去处就是手册了。

我们这个系列教程也绝不能和手册相比,因为我们的教程里对于每一个知识点,不可能做到巨细靡遗,全盘托出。

比如,对于某个Linux的命令,我们不可能详尽地列出每个参数及其用法,只能举几个最常用的参数。所以,如果要深入了解一个命令,阅读命令的手册就是最好方式了。

这一课就是为了揭开Linux手册的神秘面纱,带大家学习如何阅读手册。

这一课是系列课程中极重要的,因为如果你学会了如何阅读手册,那么大部分问题都可以自己解决。

今天的题目里的RTFM稍微有点小“暴力”,因为它是Read The F*king Manual的缩写,翻成中文是“阅读那该*死的手册”。

这个缩写经常被Linux老鸟用来回复一些初学者,并无侮辱之意,只是提醒及表示无奈,因为这些初学者的问题大多在手册中可以轻松找到解答。

就好比我们会说:“唉,这么简单的问题,百度或google一下就出来了,何必要来论坛里问。”

man命令,显示使用手册


man是manual的缩写,就是英语“使用手册”的意思。

扫描二维码关注公众号,回复: 1961718 查看本文章

man命令用法很简单,后接你想要显示使用手册的命令,函数或者其他。

此命令用于查看系统中自带的各种参考手册,但是手册分为好几个类别,如下所示:

  1. 可执行程序或shell命令

  2. 系统调用(Linux内核提供的函数)

  3. 库调用(程序库中的函数)

  4. 特殊文件(通常在/dev下)

  5. 文件格式和惯例(例如 /etc/passwd)

  6. 游戏

  7. 杂项(包括宏包和惯例,比如man(7),groff(7))

  8. 系统管理命令(通常只能被root用户使用)

  9. 内核子程序

在shell中输入 man+数字+命令/函数,即可以查到相关的命令和函数。若不加数字,那man命令默认从数字较小的手册中寻找相关命令和函数。

例如,本来是想寻找C语言标准库中的rand()函数,直接使用man rand得到的是一个rand命令的手册,直接用来产生一个随机数,这个内容在手册第1部分中。

如果使用man 3 rand就可以得到想要的库函数中rand()的用法了。

man 3 rand

man这个词本身又是英语“男人”的意思,所以Linux和Unix世界流行着一句有趣的话:不懂就问一问“男人”。

比如,我们举个例子,用man命令来显示ls命令的使用手册:

man ls

如上图所见,运行man ls后,就显示了ls命令的使用手册,这里有你想知道的关于ls命令的一切。

在手册中移动


我们来学习如何在手册页面中移动:

  • 键盘上的方向键:向上键和向下键可以使我们实现上一行和下一行的跳转。

  • 键盘上的PgUp和PgDn(或者空格键)键:实现上一页和下一页的跳转。

  • 键盘上的Home和End键:实现开始和结尾的跳转。

  • 键盘上的/键(斜杠):实现搜索,和之前在less命令中功能类似。

  • 键盘上的Q键:退出手册页。

如果我们使用图形界面的终端来打开手册页,那么可以使用鼠标的滚轮来实现上下滚动。

手册页的不同区域


正如我们在上图中所看到的,手册页分为不同的区域。这些区域的名字是用大写和粗体表示,且靠左对齐:

  • NAME:英语“名字”的意思。手册页对应的命令或函数名字,后接简单描述。

  • SYNOPSIS: 英语“概要,大意,摘要”的意思。使用此命令的所有方法。下面我们会详述这个区域,因为此区域的内容极为关键。

  • DESCRIPTION: 英语“描述”的意思。命令的更深入的描述。这个区域也会包括所有参数及其用法。一般来说这个区域是文字最多的。

  • AUTHOR: 英语“作者”的意思。命令的作者。有时候不止一个作者。

  • REPORTING BUGS: 英语“报告故障”的意思。如果使用时遇到bug(程序的缺陷),有汇报问题的联系方式,通常是邮件。

  • COPYRIGHT: 英语“版权”的意思。版权。也就是用了什么许可证(Licence)。大多数命令都是在GPL许可证之下的开源代码。

  • SEE ALSO: 英语“另见”的意思。与此命令有关的其他命令。扩展阅读。

一般来说,前三个区域(NAME, SYNOPSIS, DESCRIPTION)是最重要的。

手册页的语言


不好意思,如你所见,手册页的语言全是英语。并不是所有人都精通英语,那假如你英语不好怎么办呢?

我只能给出一个最好的建议,也许你不会喜欢:花点时间学学英语。

不需要精通英语,但至少要会阅读,而且大胆使用金山词霸,灵格斯翻译家,有道词典,谷歌翻译等等。

如果你做编程工作,在信息技术领域做研究,那么英语可以说是必不可少的语言。

接下来我们学习一下SYNOPSIS这个区域。

SYNOPSIS区域


SYNOPSIS这个区域是手册页中很重要的一个区域,但也是最难理解的区域之一。

SYNOPSIS这个区域的作用就是列出使用命令的所有可能方法。简单地说,SYNOPSIS这个区域显示了所有可能的参数组合。

有些命令的SYNOPSIS区域比较简单,但有些就很复杂了,会是一长串,看得人头大。

我们下面就用一些实际的例子来学习。

man mkdir


我们从mkdir命令的使用手册开始。

如上图所见,mkdir命令的使用手册的NAME区域是:

mkdir - make directories

make是英语“创建”的意思,directories是directory(英语“目录”)的复数。所以我们知道mkdir命令用于创建目录。

mkdir命令的SYNOPSIS区域如下:

虽然这个SYNOPSIS区域比较短,但已经包含不少信息了。它告诉我们如何使用mkdir命令。

我们一点点解析此SYNOPSIS区域:

  • mkdir:使用mkdir命令,我们当然需要先输入mkdir,这是很好理解的。

  • [OPTION]:option是英语“选项”的意思。表示在mkdir之后,我们可以加选项参数(就是 -v,-h之类)。在SYNOPSIS区域中,中括号中的内容表示可选,所以我们并不一定要添加选项参数。

  • DIRECTORY:directory是英语“目录”的意思。就是需要用mkdir命令创建的目录。这个参数是必须的,因为并没有用中括号括起来。这也不难理解,因为mkdir命令就是用于创建目录的,那最少也要输入一个目录的名字吧。

  • ... :省略号表示可以有多个此类内容。在[OPTION]和DIRECTORY后都有省略号,分别表示可以有多个选项和多个目录名。也即是说可以同时指定多个选项参数,也可以用mkdir同时创建多个目录。

那么为什么mkdir使用粗体,而OPTION和DIRECTORY都是用下划线呢?

SYNOPSIS区域中,粗体的文字表示要原封不动地输入,下划线的文字表示要用实际的内容替换。

这也不难理解:mkdir命令肯定要原封不动地输入,而DIRECTORY就要替换成实际要创建的目录名称。

用例


根据SYNOPSIS区域的语法,我们使用mkdir命令时至少要输入一个创建的目录名。

例如:

mkdir photo

用于创建一个名为photo的目录。

而且,DIRECTORY之后的省略号表明我们可以同时输入多个目录名,用于同时创建多个目录,例如:

mkdir photo video music

用于创建photo,video,music三个目录。

我们也可以加选项参数,选项参数在DESCRIPTION区域中:

以上所有的选项参数都可以替换[OPTION],而且可以同时写多个选项参数,例如-pv。

man cp


我们再来看一个比较复杂的SYNOPSIS区域的例子:cp命令的SYNOPSIS区域。

我们之前学过cp命令,它用于拷贝文件或目录。

上图是cp命令的手册,可以看到SYNOPSIS区域如下:

是否有些惊讶?一下子来了三行...

为什么有三行而不是一行呢?原因很简单,因为没法只用一行表达清楚cp命令的使用方法。

逐行来解释:

  • cp [OPTION]... [-T] SOURCE DEST 拷贝源文件到目标文件。除了cp是原封不动输入外,还必须输入SOURCE和DEST这两部分内容,分别用实际的源文件名和目标文件名代替。也可以加上一个或多个选项参数(替换OPTION),还可以加上-T参数。

  • cp [OPTION]... SOURCE... DIRECTORY 拷贝一个或多个源文件到目录,除了cp是原封不动输入外,还必须输入SOURCE和DIRECTORY这两部分内容,分别用实际的源文件名和目录名代替。也可以加上一个或多个选项参数(替换OPTION)。

  • cp [OPTION]... -t DIRECTORY SOURCE... 拷贝一个或多个源文件到目录。除了cp是原封不动输入外,还必须输入DIRECTORY和SOURCE这两部分内容,分别用实际的目录名和源文件名代替。与第二种方法其实效果是一样的,只不过这里把目录名放在了前面,后接需要拷贝到目录的文件名(一个或多个)。但是这里的-t参数是必须加的。也可以加上一个或多个选项参数(替换OPTION)。

比如我们可以这样用:

cp file.jpg file_copy.jpg

是将file.jpg拷贝为file_copy.jpg。

cp file.jpg file_copy.jpg photo/

是将file.jpg和file_copy.jpg两个文件拷贝到photo这个文件夹中。

man apt-get


我们最后来看一个更复杂一些的实例:apt-get的使用手册。

如上图所见,我们的apt-get命令的手册的SYNOPSIS区域如下:

虽然这次的SYNOPSIS区域多得有点吓人,这酸爽...

但是比起cp命令,至少这个SYNOPSIS区域只有一行,虽然这一行略长。

我们逐步分析:

  • apt-get:这个粗体部分是必须原封不动输入的,这不难理解。

  • [-sqdyfmubV]:我们可以使用-s,-q,-d,-y,-f,-m,-u,-b,-V这些选项参数中的一个或多个。例如-s,-sqfm,-bV,等等。

  • -o,-c,-t:这三个选项参数比较特别,也是可选的参数,但是如果要使用它们,必须要接上=xxx,xxx是参数的值。

  • 用大括号括起来的(从update,到最后的-h | --help):大括号括起来的是一个整体,而每个部分又由|号隔开,说明必须要使用大括号里的某一项,但是每次只能使用一项,不能多项同时使用。

例如:

  • update:更新软件包的缓存。

  • upgrade:更新所有已安装的软件。

  • install pkg:安装pkg字段对应的软件包。实际使用时,用实际的软件包名替换pkg。

  • 等等。

当然,可以仔细阅读DESCRIPTION区域,以便了解每个参数的不同含义。

用例


根据apt-get的手册的SYNOPSIS区域的语法,我们使用apt-get时,须要选择大括号里用一竖隔开的任意一个选项。因此,我们可以这样使用:

apt-get install xxx

或者

apt-get update

或者

apt-get autoclean

等等。

但是我们不能同时使用两个或以上大括号里用一竖隔开的选项。例如,下面的用法是错误的:

apt-get update install xxx    # 不正确的用法

SYNOPSIS区域的语法总结


  • 粗体:原封不动地输入。

  • 下划线的部分:用实际的内容替换。

  • [-hvc]:-h,-v和-c选项都是可选的,非强制性的。

  • a|b:你可以输入a或者b选项,但是不能够同时输入a和b。

  • option...:省略号表示前面的内容可以输入任意多个。

apropos命令:查找命令


在使用man命令时,我们需要先知道我们要显示使用手册的那个命令的名字。那如果不知道那个命令叫什么怎么办呢?

这时候我们就需要请apropos命令上场了,apropos是英语“关于”的意思。

apropos命令的用法很简单,只要后接一个关键字,apropos命令就会为你在所有手册页中查找相关的命令。

因此apropos命令与man命令有点对立的关系,man命令用于显示命令的使用手册,而apropos命令用于根据手册中的关键字来找到命令。

我们用实际例子来学习:你想要知道如何用终端的命令来控制音量。

你可以这样查找:

apropos sound

为什么用sound这个关键字呢?因为sound是英语“声音,音量”的意思。

如上图所见,运行apropos sound之后,就列出了所有使用手册中有sound这个关键字的命令。

可以看到,左侧是命令的名字,后边是命令的手册中出现关键字的句子。

我们就知道了要调节音量可以用的命令是:

alsamixer

我们运行此命令:

可以用加号和减号来调节。

其他阅读手册的方式


虽说man命令和apropos命令是最常用的两个有关手册的命令,但是还有其他查阅手册的方式。

那么哪些是man的替代品呢?

-h或--help参数


虽然并不一定,但是大多数命令都接受-h这个参数(有时候它等价的参数--help也可以)。

-h参数中的h是help的首字母,help是英语“帮助”的意思。所以-h或--help参数的作用是显示帮助文档。

虽说一般帮助文档没有man命令显示的使用手册那么详细,但是也很有用,且往往比man显示的手册易于阅读。

比如我们要查看apt-get命令的帮助文档,可以这样:

apt-get -h

whatis命令


what是英语“什么”的意思,is是英语“是”的第三人称单数形式。所以连起来what is就是“是什么”的意思。

whatis命令可以说是man命令的精简版,它只会列出man命令显示的手册的开头部分,就是概述命令的作用。

例如用whatis命令来查看ls命令的作用。

whatis ls

只显示list directory contents,就是说ls命令用于列出目录的内容。

在网络上查看手册


我们不仅仅能在Linux系统里查找到手册,在网络上也可以找到。

如果你暂时不在Linux系统里,又想查一个命令或函数的使用手册,可以用搜索引擎如google或者百度来搜索。

例如,我要查看ls命令的手册,可以在google里搜索:

man ls

一般搜索结果的第一个就是你要找的。

总结


  1. 在Linux中,命令和函数都有使用手册。每次遇到命令和函数的用法不明确的情况,都可以通过查考手册来解决。

  2. man命令可以显示命令或函数的使用手册。man后接要显示使用手册的名字。比如:man touch

  3. 在手册页时,我们可以用键盘上的上下箭头,PgUp,PgDn,空格来移动到手册的其他部分,用/(斜杠)键来查找,用q键来退出手册。

  4. 手册的SYNOPSIS区域很重要,列出了我们使用此命令的所有方法。中括号里的内容是可选的。

  5. apropos命令可以用来查找有相应关键字的命令,比如我们要找和音量,声音有关的命令,可以用apropos sound。

第二部分第九课预告


今天的课就到这里,一起加油吧!

下一课我们学习:Linux探索之旅 | 第二部分第九课:查找文件,无所遁形

猜你喜欢

转载自www.linuxidc.com/Linux/2017-04/143163.htm