播放第八课 第二部分第八课

播放第八课 第二部分第八课(1)

内容简介

1、第二部分第八课:RTFM 阅读那该死的手册

2、第二部分第九课预告:查找文件,无所遁形

RTFM 阅读那该死的手册

今天这一课也会很轻松。

一般Windows的用户不太习惯看使用手册。有些Windows下的软件下载后是带有使用手册的,但是谁会花时间看呢?

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

我们这个系列教程也绝不能和手册相比,因为我们的教程里对于每一个知识点,不可能做到巨细靡遗,全盘托出。比如,对于某个Linux的命令,我们不可能详尽地列出每个参数及其用法,只能举几个最常用的参数。所以,如果要深入了解一个命令,阅读命令的手册就是最好方式了。

  • 可执行程序或shell命令

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

  • 库调用(程序库中的函数)

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

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

  • 游戏

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

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

  • 内核子程序

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

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

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

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

    man ls

    播放第八课 第二部分第八课(2)

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

    在手册中移动

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

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

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

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

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

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

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

    手册页的不同区域

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

    1. NAME:手册页对应的命令或函数名字,后接简单描述。

    2. SYNOPSIS: 使用此命令的所有方法。下面我们会详述这个区域,因为此区域的内容极为关键。

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

    4. AUTHOR: 命令的作者。有时候不止一个作者。

    5. REPORTING BUGS: 如果使用时遇到bug(程序的缺陷),有汇报问题的联系方式,通常是邮件。

    6. COPYRIGHT: 版权。也就是用了什么许可证(Licence)。大多数命令都是在GPL许可证之下的开源代码。

    7. SEE ALSO: 与此命令有关的其他命令。扩展阅读。

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

    手册页的语言

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

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

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

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

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

    SYNOPSIS区域

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

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

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

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

    man mkdir

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

    播放第八课 第二部分第八课(3)

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

    mkdir - make directories

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

    mkdir命令的SYNOPSIS区域如下:

    播放第八课 第二部分第八课(4)

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

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

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

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

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

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

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

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

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

    用例

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

    例如:

    mkdir photo

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

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

    mkdir photo video music

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

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

    播放第八课 第二部分第八课(5)

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

    man cp

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

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

    播放第八课 第二部分第八课(6)

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

    播放第八课 第二部分第八课(7)

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

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

    逐行来解释:

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

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

    3. 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的使用手册。

    播放第八课 第二部分第八课(8)

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

    播放第八课 第二部分第八课(9)

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

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

    我们逐步分析:

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

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

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

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

    例如:

    1. update:更新软件包的缓存。

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

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

    4. 等等。

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

    用例

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

    apt-get install xxx

    或者

    apt-get update

    或者

    apt-get autoclean

    等等。

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

    apt-get update install xxx

    SYNOPSIS区域的语法总结

    1. 粗体:原封不动地输入。

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

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

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

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

    apropos命令:查找命令

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

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

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

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

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

    你可以这样查找:

    apropos sound

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

    播放第八课 第二部分第八课(10)

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

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

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

    alsamixer

    我们运行此命令:

    播放第八课 第二部分第八课(11)

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

    其他阅读手册的方式

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

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

    -h或--help参数

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

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

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

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

    apt-get -h

    播放第八课 第二部分第八课(12)

    whatis命令

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

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

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

    whatis ls

    播放第八课 第二部分第八课(13)

    只显示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。

    第二部分第九课预告

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

    下一课我们学习:查找文件,无所遁形

    *新朋友请关注「程序员联盟」微信搜公众号 ProgrammerLeague

    程序员联盟官网:

    coderunity点com

    小编 frogoscar

    小编邮箱: enmingx@gmail.com

    ,

    免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

      分享
      投诉
      首页