## 4.3 Linux系统的线上求助man page与info page
先来了解一下Linux有多少指令呢?在文字模式下,你可以输入 g 之后直接按下两个[Tab]按键,看看总共有多少以 g 开头的指令可以让你用?
![鸟哥的图示](https://box.kancloud.cn/2016-05-13_5735736501917.gif "鸟哥的图示")
**Tips** 在这一版中,不输入任何字仅按下两次 [tab] 按钮来显示所有指令的功能被取消了!所以鸟哥以 g 为开头来说明一下啰!
```
[dmtsai@study ~]$ g[tab][tab]<==在g之后直接输入两次[tab]按键
Display all 217 possibilities? (y or n) <==如果不想要看,按 n 离开
```
如上所示,鸟哥安装的这个系统中,少说也有200多个以 g 为开头的指令可以让dmtsai这个帐号使用。 那在Linux里面到底要不要背“指令”啊?可以啊!你背啊!这种事,鸟哥这个“忘性”特佳的老人家实在是背不起来 @_@ ~当然啦,有的时候为了要考试(例如一些认证考试等等的)还是需要背一些重要的指令与选项的! 不过,鸟哥主要还是以理解“在什么情况下,应该要使用哪方面的指令”为准的!
既然鸟哥说不需要背指令,那么我们如何知道每个指令的详细用法?还有,某些配置文件的内容到底是什么? 这个可就不需要担心了!因为在Linux上开发的软件大多数都是自由软件/开源软件,而这些软件的开发者为了让大家能够了解指令的用法, 都会自行制作很多的文件,而这些文件也可以直接在线上就能够轻易的被使用者查询出来喔!很不赖吧! 这根本就是“线上说明文档”嘛!哈哈!没错!确实如此。我们下面就来谈一谈,Linux到底有多少的线上文件数据呢?
### 4.3.1 指令的 --help 求助说明
事实上,几乎 Linux 上面的指令,在开发的时候,开发者就将可以使用的指令语法与参数写入指令操作过程中了!你只要使用“ --help ”这个选项, 就能够将该指令的用法作一个大致的理解喔!举例来说,我们来瞧瞧 date 这个指令的基本用法与选项参数的介绍:
```
[dmtsai@study ~]# date --help
Usage: date [OPTION]... [+FORMAT] # 这里有基本语法
or: date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] # 这是设置时间的语法
Display the current time in the given FORMAT, or set the system date.
# 下面是主要的选项说明
Mandatory arguments to long options are mandatory for short options too.
-d, --date=STRING display time described by STRING, not 'now'
-f, --file=DATEFILE like --date once for each line of DATEFILE
....(中间省略)....
-u, --utc, --universal print or set Coordinated Universal Time (UTC)
--help 显示此求助说明并离开
--version 显示版本信息并离开
# 下面则是重要的格式 (FORMAT) 的主要项目
FORMAT controls the output. Interpreted sequences are:
%% a literal %
%a locale's abbreviated weekday name (e.g., Sun)
%A locale's full weekday name (e.g., Sunday)
....(中间省略)....
# 下面是几个重要的范例 (Example)
Examples:
Convert seconds since the epoch (1970-01-01 UTC) to a date
$ date --date='@2147483647'
....(下面省略)....
```
看一下上面的显示,首先一开始是下达语法的方式 (Usage),这个 date 有两种基本语法,一种是直接下达并且取得日期回传值,且可以 +FORAMAT 的方式来显示。 至于另一种方式,则是加上 MMDDhhmmCCYY 的方式来设置日期时间。他的格式是“月月日日时时分分西元年”的格式!再往下看, 会说明主要的选项,例如 -d 的意义等等,后续又会出现 +FORMAT 的用法!从里面你可以查到我们之前曾经用过得“ date +%Y%m%d ”这个指令与选项的说明。
基本上,如果是指令,那么通过这个简单的 --help 就可以很快速的取得你所需要的选项、参数的说明了!这很重要!我们说过,在 linux 下面你需要学习“任务达成”的方式, 不用硬背指令参数。不过常用的指令你还是得要记忆一下,而选项就通过 --help 来快速查询即可。
同样的,通过 cal --help 你也可以取得相同的解释!相当好用!不过,如果你使用 bc --help 的话,虽然也有简单的解释,但是就没有类似 scale 的用法说明, 同时也不会有 +, -, *, /, % 等运算子的说明了!因此,虽然 --help 已经相当好用,不过,通常 --help 用在协助你查询“你曾经用过的指令所具备的选项与参数”而已, 如果你要使用的是从来没有用过得指令,或者是你要查询的根本就不是指令,而是文件的“格式”时,那就得要通过 man page 啰!!
### 4.3.2 man page
咦!date --help 没有告诉你 STRING 是什么?嘿嘿!不要担心,除了 --help 之外,我们Linux上面的其他线上求助系统已经都帮你想好要怎么办了, 所以你只要使用简单的方法去寻找一下说明的内容,马上就清清楚楚的知道该指令的用法了!怎么看呢?就是找男人(man) 呀!喔!不是啦!这个man是manual(操作说明)的简写啦!只要下达:“man date” 马上就会有清楚的说明出现在你面前喔!如下所示:
```
[dmtsai@study ~]$ LANG="en_US.utf8"
# 还记得这个咚咚的用意吧?前面提过了,是为了“语系”的需要啊!下达过一次即可!
[dmtsai@study ~]$ man date
DATE(1) User Commands DATE(1)
# 请注意上面这个括号内的数字
NAME <==这个指令的完整全名,如下所示为date且说明简单用途为设置与显示日期/时间
date - print or set the system date and time
SYNOPSIS <==这个指令的基本语法如下所示
date [OPTION]... [+FORMAT] <==第一种单纯显示的用法
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] <==这种可以设置系统时间的用法
DESCRIPTION <==详细说明刚刚语法谈到的选项与参数的用法
Display the current time in the given FORMAT, or set the system date.
Mandatory arguments to long options are mandatory for short options too.
-d, --date=STRING <==左边-d为短选项名称,右边--date为完整选项名称
display time described by STRING, not 'now'
-f, --file=DATEFILE
like --date once for each line of DATEFILE
-I[TIMESPEC], --iso-8601[=TIMESPEC]
output date/time in ISO 8601 format. TIMESPEC='date' for date only (the
default), 'hours', 'minutes', 'seconds', or 'ns' for date and time to the
indicated precision.
....(中间省略)....
# 找到了!下面就是格式化输出的详细数据!
FORMAT controls the output. Interpreted sequences are:
%% a literal %
%a locale's abbreviated weekday name (e.g., Sun)
%A locale's full weekday name (e.g., Sunday)
....(中间省略)....
ENVIRONMENT <==与这个指令相关的环境参数有如下的说明
TZ Specifies the timezone, unless overridden by command line parameters.
If neither is specified, the setting from /etc/localtime is used.
EXAMPLES <==一堆可用的范本
Convert seconds since the epoch (1970-01-01 UTC) to a date
$ date --date='@2147483647'
....(中间省略)....
DATE STRING <==上面曾提到的 --date 的格式说明!
The --date=STRING is a mostly free format human readable date string such as "Sun, 29
Feb 2004 16:21:42 -0800" or "2004-02-29 16:21:42" or even "next Thursday". A date
string may contain items indicating calendar date, time of day, time zone, day of
AUTHOR <==这个指令的作者啦!
Written by David MacKenzie.
COPYRIGHT <==受到著作权法的保护!用的就是 GPL 了!
Copyright © 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or
later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WAR‐
RANTY, to the extent permitted by law.
SEE ALSO <==这个重要,你还可以从哪里查到与date相关的说明文档之意
The full documentation for date is maintained as a Texinfo manual. If the info and
date programs are properly installed at your site, the command
info coreutils 'date invocation'
should give you access to the complete manual.
GNU coreutils 8.22 June 2014 DATE(1)
```
![鸟哥的图示](https://box.kancloud.cn/2016-05-13_5735736501917.gif "鸟哥的图示")
**Tips** 进入man指令的功能后,你可以按下“空白键”往下翻页,可以按下“ q ”按键来离开man的环境。 更多在man指令下的功能,本小节后面会谈到的!
看(鸟哥没骂人!)马上就知道一大堆的用法了!如此一来,不就可以知道date的相关选项与参数了吗?真方便! 而出现的这个屏幕画面,我们称呼他为man page, 你可以在里头查询他的用法与相关的参数说明。如果仔细一点来看这个man page的话,你会发现几个有趣的东西。
首先,在上个表格的第一行,你可以看到的是:“DATE(1)”,DATE我们知道是指令的名称, 那么(1)代表什么呢?他代表的是“一般使用者可使用的指令”的意思!咦!还有这个用意啊!呵呵! 没错~在查询数据的后面的数字是有意义的喔!他可以帮助我们了解或者是直接查询相关的数据。 常见的几个数字的意义是这样的:
| 代号 | 代表内容 |
| --- | --- | --- |
| 1 | 使用者在shell环境中可以操作的指令或可可执行文件 |
| 2 | 系统核心可调用的函数与工具等 |
| 3 | 一些常用的函数(function)与函数库(library),大部分为C的函数库(libc) |
| 4 | 设备文件的说明,通常在/dev下的文件 |
| 5 | 配置文件或者是某些文件的格式 |
| 6 | 游戏(games) |
| 7 | 惯例与协定等,例如Linux文件系统、网络协定、ASCII code等等的说明 |
| 8 | 系统管理员可用的管理指令 |
| 9 | 跟kernel有关的文件 |
上述的表格内容可以使用“man man”来更详细的取得说明。通过这张表格的说明, 未来你如果使用man page在察看某些数据时,就会知道该指令/文件所代表的基本意义是什么了。 举例来说,如果你下达了“man null”时,会出现的第一行是:“NULL(4)”,对照一下上面的数字意义, 嘿嘿!原来null这个玩意儿竟然是一个“设备文件”呢!很容易了解了吧!
![鸟哥的图示](https://box.kancloud.cn/2016-05-13_5735736501917.gif "鸟哥的图示")
**Tips** 上表中的1, 5, 8这三个号码特别重要,也请读者要将这三个数字所代表的意义背下来喔!
再来,man page的内容也分成好几个部分来加以介绍该指令呢!就是上头man date那个表格内, 以NAME作为开始介绍,最后还有个SEE ALSO来作为结束。基本上,man page大致分成下面这几个部分:
| 代号 | 内容说明 |
| --- | --- | --- |
| NAME | 简短的指令、数据名称说明 |
| SYNOPSIS | 简短的指令下达语法(syntax)简介 |
| DESCRIPTION | 较为完整的说明,这部分最好仔细看看! |
| OPTIONS | 针对 SYNOPSIS 部分中,有列举的所有可用的选项说明 |
| COMMANDS | 当这个程序(软件)在执行的时候,可以在此程序(软件)中下达的指令 |
| FILES | 这个程序或数据所使用或参考或链接到的某些文件 |
| SEE ALSO | 可以参考的,跟这个指令或数据有相关的其他说明! |
| EXAMPLE | 一些可以参考的范例 |
有时候除了这些外,还可能会看到Authors与Copyright等,不过也有很多时候仅有NAME与DESCRIPTION等部分。 通常鸟哥在查询某个数据时是这样来查阅的:
1. 先察看NAME的项目,约略看一下这个数据的意思;
2. 再详看一下DESCRIPTION,这个部分会提到很多相关的数据与使用时机,从这个地方可以学到很多小细节呢;
3. 而如果这个指令其实很熟悉了(例如上面的date),那么鸟哥主要就是查询关于OPTIONS的部分了! 可以知道每个选项的意义,这样就可以下达比较细部的指令内容呢!
4. 最后,鸟哥会再看一下,跟这个数据有关的还有哪些东西可以使用的?举例来说,上面的SEE ALSO就告知我们还可以利用“info coreutils date”来进一步查阅数据;
5. 某些说明内容还会列举有关的文件(FILES 部分)来提供我们参考!这些都是很有帮助的!
大致上了解了man page的内容后,那么在man page当中我还可以利用哪些按键来帮忙查阅呢?首先, 如果要向下翻页的话,可以按下键盘的空白键,也可以使用[Page Up]与[Page Down]来翻页呢!同时,如果你知道某些关键字的话, 那么可以在任何时候输入“/word”,来主动搜寻关键字!例如在上面的搜寻当中,我输入了“/date”会变成怎样?
```
DATE(1) User Commands DATE(1)
NAME
date - print or set the system date and time
SYNOPSIS
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
DESCRIPTION
Display the current time in the given FORMAT, or set the system date.
....(中间省略)....
/date <==只要按下/,光标就会跑到这个地方来,你就可以开始输入搜寻字串咯
```
看到了吗,当你按下“/”之后,光标就会移动到屏幕的最下面一行, 并等待你输入搜寻的字串了。此时,输入date后,man page就会开始搜寻跟date有关的字串, 并且移动到该区域呢!很方便吧!最后,如果要离开man page时,直接按下“ q ”就能够离开了。 我们将一些在man page常用的按键给他整理整理:
| 按键 | 进行工作 |
| --- | --- | --- |
| 空白键 | 向下翻一页 |
| [Page Down] | 向下翻一页 |
| [Page Up] | 向上翻一页 |
| [Home] | 去到第一页 |
| [End] | 去到最后一页 |
| /string | 向“下”搜寻 string 这个字串,如果要搜寻 vbird 的话,就输入 /vbird |
| ?string | 向“上”搜寻 string 这个字串 |
| n, N | 利用 / 或 ? 来搜寻字串时,可以用 n 来继续下一个搜寻 (不论是 / 或 ?) ,可以利用 N 来进行“反向”搜寻。举例来说,我以 /vbird 搜寻 vbird 字串, 那么可以 n 继续往下查询,用 N 往上查询。若以 ?vbird 向上查询 vbird 字串, 那我可以用 n 继续“向上”查询,用 N 反向查询。 |
| q | 结束这次的 man page |
要注意喔!上面的按键是在man page的画面当中才能使用的! 比较有趣的是那个搜寻啦!我们可以往下或者是往上搜寻某个字串,例如要在man page内搜寻vbird这个字串, 可以输入 /vbird 或者是 ?vbird ,只不过一个是往下而一个是往上来搜寻的。而要 重复搜寻 某个字串时,可以使用 n 或者是 N 来动作即可呢! 很方便吧!^_^
既然有man page,自然就是因为有一些文件数据,所以才能够以man page读出来啰!那么这些man page的数据 放在哪里呢?不同的distribution通常可能有点差异性,不过,通常是放在/usr/share/man这个目录里头,然而,我们可以通过修改他的man page搜寻路径来改善这个目录的问题!修改/etc/man_db.conf (有的版本为man.conf或manpath.conf或man.config等)即可啰!至于更多的关于man的讯息你可以使用“ man man ”来查询呦!关于更详细的设置,我们会在[第十章 bash](../Text/index.html#man) 当中继续的说明喔!
* 搜寻特定指令/文件的man page说明文档
在某些情况下,你可能知道要使用某些特定的指令或者是修改某些特定的配置文件,但是偏偏忘记了该指令的完整名称。 有些时候则是你只记得该指令的部分关键字。这个时候你要如何查出来你所想要知道的man page呢? 我们以下面的几个例子来说明man这个指令有用的地方喔!
例题:你可否查出来,系统中还有哪些跟“man”这个指令有关的说明文档呢?答:你可以使用下面的指令来查询一下:
```
[dmtsai@study ~]$ man -f man
man (1) - an interface to the on-line reference manuals
man (1p) - display system documentation
man (7) - macros to format man pages
```
使用 -f 这个选项就可以取得更多与man相关的信息,而上面这个结果当中也有提示了 (数字) 的内容, 举例来说,第三行的“ man (7) ”表示有个man (7)的说明文档存在喔!但是却有个man (1)存在啊! 那当我们下达“ man man ”的时候,到底是找到哪一个说明文档呢? 其实,你可以指定不同的文件的,举例来说,上表当中的两个 man 你可以这样将他的文件叫出来:
```
[dmtsai@study ~]$ man 1 man <==这里是用 man(1) 的文件数据
[dmtsai@study ~]$ man 7 man <==这里是用 man(7) 的文件数据
```
你可以自行将上面两个指令输入一次看看,就知道,两个指令输出的结果是不同的。 那个1, 7就是分别取出在man page里面关于1与7相关数据的文件文件啰! 好了,那么万一我真的忘记了下达数字,只有输入“ man man ”时,那么取出的数据到底是1还是7啊? 这个就跟搜寻的顺序有关了。搜寻的顺序是记录在/etc/man_db.conf 这个配置文件当中, 先搜寻到的那个说明文档,就会先被显示出来! 一般来说,通常会先找到数字较小的那个啦!因为排序的关系啊!所以, man man 会跟 man 1 man 结果相同!
除此之外,我们还可以利用“关键字”找到更多的说明文档数据喔!什么是关键字呢? 从上面的“man -f man”输出的结果中,我们知道其实输出的数据是:
* 左边部分:指令(或文件)以及该指令所代表的意义(就是那个数字);
* 右边部分:这个指令的简易说明,例如上述的“-macros to format man pages”
当使用“man -f 指令”时,man只会找数据中的左边那个指令(或文件)的完整名称,有一点不同都不行! 但如果我想要找的是“关键字”呢?也就是说,我想要同时找上面说的两个地方的内容,只要该内容有关键字存在, 不需要完全相同的指令(或文件)就能够找到时,该怎么办?请看下个范例啰!
例题:找出系统的说明文档中,只要有man这个关键字就将该说明列出来。答:
```
[dmtsai@study ~]$ man -k man
fallocate (2) - manipulate file space
zshall (1) - the Z shell meta-man page
....(中间省略)....
yum-config-manager (1) - manage yum configuration options and yum repositories
yum-groups-manager (1) - create and edit yum's group metadata
yum-utils (1) - tools for manipulating repositories and extended package management
```
看到了吧!很多对吧!因为这个是利用关键字将说明文档里面只要含有man那个字眼的(不见得是完整字串) 就将他取出来!很方便吧! ^_^(上面的结果有特殊字体的显示是为了方便读者查看, 实际的输出结果并不会有特别的颜色显示喔!)
事实上,还有两个指令与man page有关呢!而这两个指令是man的简略写法说~就是这两个:
```
[dmtsai@study ~]$ whatis [指令或者是数据] <==相当于 man -f [指令或者是数据]
[dmtsai@study ~]$ apropos [指令或者是数据] <==相当于 man -k [指令或者是数据]
```
而要注意的是,这两个特殊指令要能使用,必须要有创建 whatis 数据库才行!这个数据库的创建需要以 root 的身份下达如下的指令:
```
[root@study ~]# mandb
# 旧版的 Linux 这个指令是使用 makewhatis 喔!这一版开使用 mandb 了!
```
![鸟哥的图示](https://box.kancloud.cn/2016-05-13_5735736501917.gif "鸟哥的图示")
**Tips** 一般来说,鸟哥是真的不会去背指令的,只会去记住几个常见的指令而已。那么鸟哥是怎么找到所需要的指令呢? 举例来说,打印的相关指令,鸟哥其实仅记得 lp (line print)而已。那我就由 man lp 开始,去找相关的说明, 然后,再以 lp[tab][tab] 找到任何以 lp 为开头的指令,找到我认为可能有点相关的指令后,先以 --help 去查基本的用法, 若有需要再以 man 去查询指令的用法!呵呵!所以,如果是实际在管理 Linux , 那么真的只要记得几个很重要的指令即可,其他需要的,嘿嘿!努力的找男人(man)吧!
### 4.3.3 info page
在所有的Unix Like系统当中,都可以利用 man 来查询指令或者是相关文件的用法; 但是,在Linux里面则又额外提供了一种线上求助的方法,那就是利用info这个好用的家伙啦!
基本上,info与man的用途其实差不多,都是用来查询指令的用法或者是文件的格式。但是与man page一口气输出一堆信息不同的是,info page则是将文件数据拆成一个一个的段落,每个段落用自己的页面来撰写, 并且在各个页面中还有类似网页的“超链接”来跳到各不同的页面中,每个独立的页面也被称为一个节点(node)。 所以,你可以将info page想成是文字模式的网页显示数据啦!
不过你要查询的目标数据的说明文档必须要以info的格式来写成才能够使用info的特殊功能(例如超链接)。 而这个支持info指令的文件默认是放置在/usr/share/info/这个目录当中的。 举例来说,info这个指令的说明文档有写成info格式,所以,你使用“ info info ”可以得到如下的画面:
```
[dmtsai@study ~]$ info info
File: info.info, Node: Top, Next: Getting Started, Up: (dir)
Info: An Introduction
*********************
The GNU Project distributes most of its on-line manuals in the "Info
format", which you read using an "Info reader". You are probably using
an Info reader to read this now.
....(中间省略)....
If you are new to the Info reader and want to learn how to use it,
type the command 'h' now. It brings you to a programmed instruction
sequence. # 这一段在说明,按下 h 可以有简易的指令说明!很好用!
....(中间省略)....
* Menu:
* Getting Started:: Getting started using an Info reader.
* Advanced:: Advanced Info commands.
* Expert Info:: Info commands for experts.
* Index:: An index of topics, commands, and variables.
--zz-Info: (info.info.gz)Top, 52 lines --Bot------------------------------------------
```
仔细的看到上面这个显示的结果,里面的第一行显示了很多的信息喔!第一行里面的数据意义为:
* File:代表这个info page的数据是来自info.info文件所提供的;
* Node:代表目前的这个页面是属于Top节点。 意思是info.info内含有很多信息,而Top仅是info.info文件内的一个节点内容而已;
* Next:下一个节点的名称为Getting Started,你也可以按“N”到下个节点去;
* Up:回到上一层的节点总揽画面,你也可以按下“U”回到上一层;
* Prev:前一个节点。但由于Top是info.info的第一个节点,所以上面没有前一个节点的信息。
从第一行你可以知道这个节点的内容、来源与相关链接的信息。更有用的信息是,你可以通过直接按下N, P, U来去到下一个、上一个与上一层的节点(node)!非常的方便! 第一行之后就是针对这个节点的说明。在上表的范例中,第二行以后的说明就是针对info.info内的Top这个节点所做的。 另外,如论你在任何一个页面,只要不知道怎么使用 info 了,直接按下 h 系统就能够提供一些基本按键功能的介绍喔!
```
copy of the license to the document, as described in section 6 of
the license.
* Menu:
* Getting Started:: Getting started using an Info reader.
* Advanced:: Advanced Info commands.
* Expert Info:: Info commands for experts.
* Index:: An index of topics, commands, and variables.
--zz-Info: (info.info.gz)Top, 52 lines --Bot-------------------------------------------
Basic Info command keys # 这里是按下 h 之后才会出现的一堆简易按钮列说明!
x Close this help window. # 按下 x 就可以关闭这个 help 的窗口
q Quit Info altogether. # 完全离开 info page 喔!
H Invoke the Info tutorial.
Up Move up one line.
Down Move down one line.
DEL Scroll backward one screenful.
SPC Scroll forward one screenful.
-----Info: *Info Help*, 405 lines --Top-------------------------------------------------
```
再来,你也会看到有“Menu”那个咚咚吧!下面共分为四小节,分别是Getting Started等等的,我们可以使用上下左右按键来将光标移动到该文字或者“ * ”上面,按下Enter, 就可以前往该小节了!另外,也可以按下[Tab]按键,就可以快速的将光标在上表的画面中的node间移动, 真的是非常的方便好用。如果将info.info内的各个节点串在一起并绘制成图表的话,情况有点像下面这样:
![info page各说明文档相关性的示意图](https://box.kancloud.cn/2016-05-13_57357371d35b0.gif)图4.3.1、info page各说明文档相关性的示意图
如同上图所示,info的说明文档将内容分成多个node,并且每个node都有定位与链接。 在各链接之间还可以具有类似“超链接”的快速按钮,可以通过[tab]键在各个超链接间移动。 也可以使用U,P,N来在各个阶层与相关链接中显示!非常的不错用啦! 至于在info page当中可以使用的按键,可以整理成下面这样,事实上,你也可以在 info page 中按下 h 喔!
| 按键 | 进行工作 |
| --- | --- | --- |
| 空白键 | 向下翻一页 |
| [Page Down] | 向下翻一页 |
| [Page Up] | 向上翻一页 |
| [tab] | 在 node 之间移动,有 node 的地方,通常会以 * 显示。 |
| [Enter] | 当光标在 node 上面时,按下 Enter 可以进入该 node 。 |
| b | 移动光标到该 info 画面当中的第一个 node 处 |
| e | 移动光标到该 info 画面当中的最后一个 node 处 |
| n | 前往下一个 node 处 |
| p | 前往上一个 node 处 |
| u | 向上移动一层 |
| s(/) | 在 info page 当中进行搜寻 |
| h, ? | 显示求助菜单 |
| q | 结束这次的 info page |
info page是只有Linux上面才有的产物,而且易读性增强很多~不过查询的指令说明要具有info page功能的话,得用info page的格式来写成线上求助文件才行!我们CentOS 7将info page的文件放置到/usr/share/info/目录中!至于非以info page格式写成的说明文档(就是man page),虽然也能够使用info来显示,不过其结果就会跟man相同。 举例来说,你可以下达“info man”就知道结果了! ^_^
### 4.3.4 其他有用的文件(documents)
刚刚前面说,一般而言,指令或者软件制作者,都会将自己的指令或者是软件的说明制作成“线上说明文档”! 但是,毕竟不是每个咚咚都需要做成线上说明文档的,还有相当多的说明需要额外的文件!此时,这个所谓的 How-To(如何做的意思)就很重要啦!还有,某些软件不只告诉你“如何做”,还会有一些相关的原理会说明呢。
那么这些说明文档要摆在哪里呢?哈哈!就是摆在/usr/share/doc这个目录啦!所以说,你只要到这个目录下面, 就会发现好多好多的说明文档啦!还不需要到网络上面找数据呢!厉害吧!^_^ 举例来说,你可能会先想要知道 grub2 这个新版的开机管理软件有什么能使用的指令?那可以到下面的目录瞧瞧:
* /usr/share/doc/grub2-tools-2.02
另外,很多原版软件释出的时候,都会有一些安装须知、预计工作事项、未来工作规划等等的东西,还有包括可安装的程序等, 这些文件也都放置在 /usr/share/doc 当中喔!而且/usr/share/doc这个目录下的数据主要是以套件(packages)为主的, 例如 nano 这个软件的相关信息在 /usr/share/doc/nano-xxx(那个xxx表示版本的意思!)。
总结上面的三个咚咚(man, info, /usr/share/doc/),请记住喔:
* 在终端机模式中,如果你知道某个指令,但却忘记了相关选项与参数,请先善用 --help 的功能来查询相关信息;
* 当有任何你不知道的指令或文件格式这种玩意儿,但是你想要了解他,请赶快使用man或者是info来查询!
* 而如果你想要架设一些其他的服务,或想要利用一整组软件来达成某项功能时,请赶快到/usr/share/doc 下面查一查有没有该服务的说明文档喔!
* 另外,再次的强调,因为Linux毕竟是外国人发明的,所以中文文件确实是比较少的! 但是不要害怕,拿本英文字典在身边吧!随时查阅!不要害怕英文喔!
- 鸟哥的Linux私房菜:基础学习篇 第四版
- 目录及概述
- 第零章、计算机概论
- 0.1 电脑:辅助人脑的好工具
- 0.2 个人电脑架构与相关设备元件
- 0.3 数据表示方式
- 0.4 软件程序运行
- 0.5 重点回顾
- 0.6 本章习题
- 0.7 参考资料与延伸阅读
- 第一章、Linux是什么与如何学习
- 1.1 Linux是什么
- 1.2 Torvalds的Linux发展
- 1.3 Linux当前应用的角色
- 1.4 Linux 该如何学习
- 1.5 重点回顾
- 1.6 本章习题
- 1.7 参考资料与延伸阅读
- 第二章、主机规划与磁盘分区
- 2.1 Linux与硬件的搭配
- 2.2 磁盘分区
- 2.3 安装Linux前的规划
- 2.4 重点回顾
- 2.5 本章习题
- 2.6 参考资料与延伸阅读
- 第三章、安装 CentOS7.x
- 3.1 本练习机的规划--尤其是分区参数
- 3.2 开始安装CentOS 7
- 3.3 多重开机安装流程与管理(Option)
- 3.4 重点回顾
- 3.5 本章习题
- 3.6 参考资料与延伸阅读
- 第四章、首次登陆与线上求助
- 4.1 首次登陆系统
- 4.2 文字模式下指令的下达
- 4.3 Linux系统的线上求助man page与info page
- 4.4 超简单文书编辑器: nano
- 4.5 正确的关机方法
- 4.6 重点回顾
- 4.7 本章习题
- 4.8 参考资料与延伸阅读
- 第五章、Linux 的文件权限与目录配置
- 5.1 使用者与群组
- 5.2 Linux 文件权限概念
- 5.3 Linux目录配置
- 5.4 重点回顾
- 5.5 本章练习
- 5.6 参考资料与延伸阅读
- 第六章、Linux 文件与目录管理
- 6.1 目录与路径
- 6.2 文件与目录管理
- 6.3 文件内容查阅
- 6.4 文件与目录的默认权限与隐藏权限
- 6.5 指令与文件的搜寻
- 6.6 极重要的复习!权限与指令间的关系
- 6.7 重点回顾
- 6.8 本章习题:
- 6.9 参考资料与延伸阅读
- 第七章、Linux 磁盘与文件系统管理
- 7.1 认识 Linux 文件系统
- 7.2 文件系统的简单操作
- 7.3 磁盘的分区、格式化、检验与挂载
- 7.4 设置开机挂载
- 7.5 内存交换空间(swap)之创建
- 7.6 文件系统的特殊观察与操作
- 7.7 重点回顾
- 7.8 本章习题 - 第一题一定要做
- 7.9 参考资料与延伸阅读
- 第八章、文件与文件系统的压缩,打包与备份
- 8.1 压缩文件的用途与技术
- 8.2 Linux 系统常见的压缩指令
- 8.3 打包指令: tar
- 8.4 XFS 文件系统的备份与还原
- 8.5 光盘写入工具
- 8.6 其他常见的压缩与备份工具
- 8.7 重点回顾
- 8.8 本章习题
- 8.9 参考资料与延伸阅读
- 第九章、vim 程序编辑器
- 9.1 vi 与 vim
- 9.2 vi 的使用
- 9.3 vim 的额外功能
- 9.4 其他 vim 使用注意事项
- 9.5 重点回顾
- 9.6 本章练习
- 9.7 参考资料与延伸阅读
- 第十章、认识与学习BASH
- 10.1 认识 BASH 这个 Shell
- 10.2 Shell 的变量功能
- 10.3 命令别名与历史命令
- 10.4 Bash Shell 的操作环境:
- 10.5 数据流重导向
- 10.6 管线命令 (pipe)
- 10.7 重点回顾
- 10.8 本章习题
- 10.9 参考资料与延伸阅读
- 第十一章、正则表达式与文件格式化处理
- 11.1 开始之前:什么是正则表达式
- 11.2 基础正则表达式
- 11.3 延伸正则表达式
- 11.4 文件的格式化与相关处理
- 11.5 重点回顾
- 11.6 本章习题
- 11.7 参考资料与延伸阅读
- 第十二章、学习 Shell Scripts
- 12.1 什么是 Shell scripts
- 12.2 简单的 shell script 练习
- 12.3 善用判断式
- 12.4 条件判断式
- 12.5 循环 (loop)
- 12.6 shell script 的追踪与 debug
- 12.7 重点回顾
- 12.8 本章习题
- 第十三章、Linux 帐号管理与 ACL 权限设置
- 13.1 Linux 的帐号与群组
- 13.2 帐号管理
- 13.3 主机的细部权限规划:ACL 的使用
- 13.4 使用者身份切换
- 13.5 使用者的特殊 shell 与 PAM 模块
- 13.6 Linux 主机上的使用者讯息传递
- 13.7 CentOS 7 环境下大量创建帐号的方法
- 13.8 重点回顾
- 13.9 本章习题
- 13.10 参考资料与延伸阅读
- 第十四章、磁盘配额(Quota)与进阶文件系统管理
- 14.1 磁盘配额 (Quota) 的应用与实作
- 14.2 软件磁盘阵列 (Software RAID)
- 14.3 逻辑卷轴管理员 (Logical Volume Manager)
- 14.4 重点回顾
- 14.5 本章习题
- 14.6 参考资料与延伸阅读
- 第十五章、例行性工作调度(crontab)
- 15.1 什么是例行性工作调度
- 15.2 仅执行一次的工作调度
- 15.3 循环执行的例行性工作调度
- 15.4 可唤醒停机期间的工作任务
- 15.5 重点回顾
- 15.6 本章习题
- 第十六章、程序管理与 SELinux 初探
- 16.1 什么是程序 (process)
- 16.2 工作管理 (job control)
- 16.3 程序管理
- 16.4 特殊文件与程序
- 16.5 SELinux 初探
- 16.6 重点回顾
- 16.7 本章习题
- 16.8 参考资料与延伸阅读
- 第十七章、认识系统服务 (daemons)
- 17.1 什么是 daemon 与服务 (service)
- 17.2 通过 systemctl 管理服务
- 17.3 systemctl 针对 service 类型的配置文件
- 17.4 systemctl 针对 timer 的配置文件
- 17.5 CentOS 7.x 默认启动的服务简易说明
- 17.6 重点回顾
- 17.7 本章习题
- 17.8 参考资料与延伸阅读
- 第十八章、认识与分析登录文件
- 18.1 什么是登录文件
- 18.2 rsyslog.service :记录登录文件的服务
- 18.3 登录文件的轮替(logrotate)
- 18.4 systemd-journald.service 简介
- 18.5 分析登录文件
- 18.6 重点回顾
- 18.7 本章习题
- 18.8 参考资料与延伸阅读
- 第十九章、开机流程、模块管理与 Loader
- 19.1 Linux 的开机流程分析
- 19.2 核心与核心模块
- 19.3 Boot Loader: Grub2
- 19.4 开机过程的问题解决
- 19.5 重点回顾
- 19.6 本章习题
- 19.7 参考资料与延伸阅读
- 第二十章、基础系统设置与备份策略
- 20.1 系统基本设置
- 20.2 服务器硬件数据的收集
- 20.3 备份要点
- 20.4 备份的种类、频率与工具的选择
- 20.5 鸟哥的备份策略
- 20.6 灾难复原的考虑
- 20.7 重点回顾
- 20.8 本章习题
- 20.9 参考资料与延伸阅读
- 第二十一章、软件安装:源代码与 Tarball
- 20.1 开放源码的软件安装与升级简介
- 21.2 使用传统程序语言进行编译的简单范例
- 21.3 用 make 进行宏编译
- 21.4 Tarball 的管理与建议
- 21.5 函数库管理
- 21.6 检验软件正确性
- 21.7 重点回顾
- 21.8 本章习题
- 21.9 参考资料与延伸阅读
- 第二十二章、软件安装 RPM, SRPM 与 YUM
- 22.1 软件管理员简介
- 22.2 RPM 软件管理程序: rpm
- 22.3 YUM 线上升级机制
- 22.4 SRPM 的使用 : rpmbuild (Optional)
- 22.5 重点回顾
- 22.6 本章习题
- 22.7 参考资料与延伸阅读
- 第二十三章、X Window 设置介绍
- 23.1 什么是 X Window System
- 23.2 X Server 配置文件解析与设置
- 23.3 显卡驱动程序安装范例
- 23.4 重点回顾
- 23.5 本章习题
- 23.6 参考资料与延伸阅读
- 第二十四章、Linux 核心编译与管理
- 24.1 编译前的任务:认识核心与取得核心源代码
- 24.2 核心编译的前处理与核心功能选择
- 24.3 核心的编译与安装
- 24.4 额外(单一)核心模块编译
- 24.5 以最新核心版本编译 CentOS 7.x 的核心
- 24.6 重点回顾
- 24.7 本章习题
- 24.8 参考资料与延伸阅读