知道linux帮助文件(man-pages,手册页)一般放在,$MANPATH/man 目录下面,而且按照领域与语言放到不同的目录里面。 看了上一章,要找那个命令使用相关手册,只要我们按照领域区分,到对于目录去查看与命令对应的文件解压,cat file 就可以看到一篇详细的文档了。 但是与快速索引查找帮助相差太远了。linux有一个很好工具,就是man 它会按照系统设计帮助目录,在各个文档里面查询,并且显示内容。接下来,主要讲一下这个命令使用以及配置说明,还有一些使用实例。
man这个命令为什么功能这么神奇,能够这么方便快捷索引出系统帮助信息,其它与它的一个配置文件分不开。我们看一下它配置文件。
通过该命令,我们索引到所有与man有关的手册页了。 根据前面提到的领域设置类型,(1)是man命令说明,(7)man文件使用的宏格式规定,下面有一个:man.config (5) ,就是man的配置文件了。
指定手册默认存放路径,man启动就会在这些目录中索引手册页,可以通过添加一行:MANPATH /home/chengmo/man 指定加入自己的手册路径,通过man -M可以添加自己的手册路径
linux系统手册页,大家在看到时候有高亮,然后还有加粗,下划线,倾斜,空行等固定格式。其实这些在本来的手册页文件里面,只是保存为一系列的代号。大家不妨解压个gz手册文件,然后通过cat查看下内容。你会发现显示里面有如下内容中(点开头,然后一系列数字,而且整个页面显示杂乱无章,跟我们man看到完全不一样),其它这些代号对应是linux文件里面的宏指令代码,如:
如果不清楚这个关系,把这些宏指令比拟为:html语言一些标签,在记事本中打开,大家都看不明白,但是如果用ie查看。就一目了然了。
这些宏指令在显示时候,必须通过一系列命令做格式转换,这里必须提到是:groff系列命令(它的工作有点像IE):
Groff (GNU Troff) 是 Troff 的最新开放源码实现,Troff 是从相同的输入源为各种设备生成打印和屏幕文档的一种文档格式化输出系统。
Groff 是一种用于格式化输出文档的编程语言。它由一套工具组成,而不是单个的应用程序,groff 工具是使用这些工具的前端。其中包括处理特殊的输入文本的预处理器、用于处理输入的称为 troff 的主排版引擎、以及将 troff 的输出转换为打印和屏幕输出的各种格式的后处理器。
您可以在文本编辑器中编写输入或者从程序生成输入,无论采用哪种方式,文档的编写过程都发生在 Groff 系统之外。文档使用纯文本进行编写并使用 Groff 语言进行标记,后者指定了文档的格式和外观(请参见为 Groff 编写输入部分)。然后将该输入文本发送到 Groff,以便对其进行处理从而获得所需的输出。
Groff包含几个处理文本格式的程序。Groff把标准的文本和特殊的命令翻译成格式化的输出,像你在 man 手册页里看到的那样。
gpic 将内嵌于troff或者TeX输入文件中的图像编译成troff或者TeX理解的指令。
neqn 将方程格式化,使其成为适应ASCII输出的脚本,如果文档要表示一些数字开方,根号之类需要它了
refer 将一个文件拷贝到标准输出,并丢弃.[和.]之间作为引用的内容和在.R1和.R2之间解释如何处理这些引用的命令。
分别制定最终标准手册页,HTML手册页,HTML as TXT手册页 由那个程序显示。其实基本都是交给了:less这个作为手册页显示程序。当我们打开了手册页后,对它进行翻页查找等操作,其实就是运用less 程序快捷键完成的。如果命令行man –[PBH] 可以对当前索引,分别用新的程序覆盖系统设置。
如果直接man command1 ,它将按照这里指定的顺序查找手册页,先是man1,然后man1p…… 直到找到一个页面,就停止搜索。除非加了-a 参数。如果调用man -S 1:1p 是可以覆盖这项设置的
突然想到一个问题,man之所以强大,与它的松散配置分不开,它只是实现了搜索查找,而解压由:gunzip,格式化是由:groff处理,显示有less处理。
说到这里,man好像都说完了,对了,显示的页面怎么操作呢?接下来,我们在看看,less常用命令
我们找到了自己的帮助文件了,而且已经显示了页面。在这个黑屏页面里面,我怎么样实现查找,跳转等操作呢?
其实,它现在已经进入了less命令管理范围了(可能有朋友认为是vi的,因为它们快捷键很相似,其实是less的)
less可以打开多个文件,在多个文件操作中,可以使用这些命令。如man -a passwd 实际会查到多个手册,都会有less打开。可以通过这类命令实现打开与关闭。

