man这个命令为什么功能这么神奇,能够这么方便快捷索引出系统帮助信息,其它与它的一个配置文件分不开。我们看一下它配置文件。

1

2

3

4

5

6

7[chengmo@centos5 ~]$man -fman

man                  (1)  -format and display the on-line manual pages

man                  (1p)  - display system documentation

man                  (7)  - macros toformat man pages

man                 (rpm) - Aset of documentation tools:man,apropos and whatis.

man-pages           (rpm) - Man (manual) pages from the Linux Documentation Project.

man.config [man]     (5)  - configuration datafor man

通过该命令,我们索引到所有与man有关的手册页了。 根据前面提到的领域设置类型,(1)是man命令说明,(7)man文件使用的宏格式规定,下面有一个:man.config (5) ,就是man的配置文件了。

读取man.config文件:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39[wangsl@centos5 ~]$cat /etc/man.config |grep -v '^#'

FHS

MANPATH/usr/man

MANPATH/usr/share/man

MANPATH/usr/local/man

MANPATH/usr/local/share/man

MANPATH/usr/X11R6/man

MANPATH_MAP/bin                    /usr/share/man

MANPATH_MAP/sbin                   /usr/share/man

MANPATH_MAP/usr/bin                /usr/share/man

MANPATH_MAP/usr/sbin               /usr/share/man

MANPATH_MAP/usr/local/bin          /usr/local/share/man

MANPATH_MAP/usr/local/sbin         /usr/local/share/man

MANPATH_MAP/usr/X11R6/bin          /usr/X11R6/man

MANPATH_MAP/usr/bin/X11            /usr/X11R6/man

MANPATH_MAP/usr/bin/mh             /usr/share/man

TROFF/usr/bin/groff -Tps -mandoc

NROFF/usr/bin/nroff -c --legacy NROFF_OLD_CHARSET -mandoc 2>/dev/null

EQN/usr/bin/geqn -Tps

NEQN/usr/bin/geqn -Tutf8

TBL/usr/bin/gtbl

REFER/usr/bin/grefer

PIC/usr/bin/gpic

VGRIND

GRAP

PAGER/usr/bin/less -is

BROWSER/usr/bin/less -is

HTMLPAGER/bin/cat

CAT/bin/cat

CMP/usr/bin/cmp -s

COMPRESS/usr/bin/bzip2

COMPRESS_EXT    .bz2

MANSECT         1:1p:8:2:3:3p:4:5:6:7:9:0p:n:l:p:o:1x:2x:3x:4x:5x:6x:7x:8x

.gz/usr/bin/gunzip -c

.bz2/usr/bin/bzip2 -c -d

.z

.Z/bin/zcat

.F

.Y

配置文件分类:

MANPATH 关键字

指定手册默认存放路径,man启动就会在这些目录中索引手册页,可以通过添加一行:MANPATH /home/chengmo/man 指定加入自己的手册路径,通过man -M可以添加自己的手册路径

MANPATH_MAP关键字

指定帮助手册与命令对应目录,如果自己增加搜索目录,这里需要增加对应方式

格式化手册页输出

linux系统手册页,大家在看到时候有高亮,然后还有加粗,下划线,倾斜,空行等固定格式。其实这些在本来的手册页文件里面,只是保存为一系列的代号。大家不妨解压个gz手册文件,然后通过cat查看下内容。你会发现显示里面有如下内容中(点开头,然后一系列数字,而且整个页面显示杂乱无章,跟我们man看到完全不一样),其它这些代号对应是linux文件里面的宏指令代码,如:

.B 粗体

.BI 粗体跟斜体

.BR 粗体跟正体

.I 斜体

.IB 斜体跟粗体

.IR 斜体跟正体

.RB 正体跟粗体

.RI 正体跟斜体

.SM 小(缩放到正常大小的9/10)

.SB 小跟黑体(所跟的黑体不会缩小)

如果不清楚这个关系,把这些宏指令比拟为:html语言一些标签,在记事本中打开,大家都看不明白,但是如果用ie查看。就一目了然了。

这些宏指令在显示时候,必须通过一系列命令做格式转换,这里必须提到是:groff系列命令(它的工作有点像IE):

groff简介:

Groff (GNU Troff) 是 Troff 的最新开放源码实现,Troff 是从相同的输入源为各种设备生成打印和屏幕文档的一种文档格式化输出系统。

Groff 是一种用于格式化输出文档的编程语言。它由一套工具组成,而不是单个的应用程序,groff 工具是使用这些工具的前端。其中包括处理特殊的输入文本的预处理器、用于处理输入的称为 troff 的主排版引擎、以及将 troff 的输出转换为打印和屏幕输出的各种格式的后处理器。

您可以在文本编辑器中编写输入或者从程序生成输入,无论采用哪种方式,文档的编写过程都发生在 Groff 系统之外。文档使用纯文本进行编写并使用 Groff 语言进行标记,后者指定了文档的格式和外观(请参见为 Groff 编写输入部分)。然后将该输入文本发送到 Groff,以便对其进行处理从而获得所需的输出。

Groff包含几个处理文本格式的程序。Groff把标准的文本和特殊的命令翻译成格式化的输出,像你在 man 手册页里看到的那样。

安装下列程序: addftinfo, afmtodit, eqn, eqn2graph, geqn (link to eqn), grn, grodvi, groff, groffer, grog, grolbp, grolj4, grops, grotty, gtbl (link to tbl), hpftodit, indxbib, lkbib, lookbib, mmroff, neqn, nroff, pfbtops, pic, pic2graph, post-grohtml, pre-grohtml, refer, soelim, tbl, tfmtodit, troff and zsoelim (link to soelim)

这里只是解析man.config常见的解析命令:

gpic 将内嵌于troff或者TeX输入文件中的图像编译成troff或者TeX理解的指令。

gtbl 实现table表格输出。

neqn 将方程格式化,使其成为适应ASCII输出的脚本,如果文档要表示一些数字开方,根号之类需要它了

refer 将一个文件拷贝到标准输出,并丢弃.[和.]之间作为引用的内容和在.R1和.R2之间解释如何处理这些引用的命令。

troff groff依照合适的顺序并使用合适的参数来执行预处理程序和后处理程序。

PAGER、BROWSER、HTMLPAGER

分别制定最终标准手册页,HTML手册页,HTML as TXT手册页 由那个程序显示。其实基本都是交给了:less这个作为手册页显示程序。当我们打开了手册页后,对它进行翻页查找等操作,其实就是运用less 程序快捷键完成的。如果命令行man –[PBH] 可以对当前索引,分别用新的程序覆盖系统设置。

COMPRESS,COMPRESS_EXT

设置压缩文件,已经压缩文件生成扩展名,如果需要将手册输出其它格式时候会用到

MANSECT

指定man 搜索手册目录顺序,假设设置是:

mansect 1:1p:8:2:3:3p:4:5:6:7:9:0p:n:l:p:o:1x:2x:3x:4x:5x:6x:7x:8x

如果直接man command1 ,它将按照这里指定的顺序查找手册页,先是man1,然后man1p…… 直到找到一个页面,就停止搜索。除非加了-a 参数。如果调用man -S 1:1p 是可以覆盖这项设置的

.gz .bz2

这个是如果手册页面是这里程序的,用什么程序进行解压。

我们还记得上次man -d 的参数吧!运行最后会输入一个脚本:

(cd /usr/share/man && (echo ".ll 11.8i"; echo ".nr LL 11.8i"; echo ".pl 1100i"; /usr/bin/gunzip -c '/usr/share/man/man1/man.1.gz'; echo ".\\\""; echo ".pl \n(nlu+10") | /usr/bin/gtbl | /usr/bin/nroff -c --legacy ISO-8859-1 -mandoc 2>/dev/null | /usr/bin/less -is)

其实这个才是man命令执行后 ,通过各个格式化指令组合,最终shell脚本运行的命令。

突然想到一个问题,man之所以强大,与它的松散配置分不开,它只是实现了搜索查找,而解压由:gunzip,格式化是由:groff处理,显示有less处理。

说到这里,man好像都说完了,对了,显示的页面怎么操作呢?接下来,我们在看看,less常用命令

linux没有manconfig文件,linux shell man命令详细介绍相关推荐

  1. Linux命令man echo,Linux Shell man 命令详细介绍

    知道linux帮助文件(man-pages,手册页)一般放在,$MANPATH/man 目录下面,而且按照领域与语言放到不同的目录里面. 看了上一章,要找那个命令使用相关手册,只要我们按照领域区分,到 ...

  2. linux中tags文件能删除吗,Git 详细介绍查看、删除、重命名远程分支和tag

    Git 详细介绍查看.删除.重命名远程分支和tag 1. 查看远程 分支加上-a参数可以查看远程分支,远程分支会用红色表示出来: xiaosi@Qunar:~/code/qtown-score$ gi ...

  3. linux中对文件进行归档,linux归档压缩命令 linux中对文件进行归档的命令为

    13. 为了将当前目录下的归档文件myftp.tgz解压缩到/tmp目录下,用户可以使用命令 A. tar xvzf myftp.tgz –C /tmp B. tar : xvzf : myftp.t ...

  4. linux中的chmod命令详细介绍、使用及实例

    linux中的chmod命令详细介绍.使用及实例 chmod命令 chmod用于改变 linux 系统文件或目录的访问权限,可以用它控制文件或目录的访问权限.该命令有两种用法:一种是包含字母的文字设定 ...

  5. linux维护rpm 数据库,Linux运维知识之linux rpm命令详细介绍

    本文主要向大家介绍了Linux运维知识之linux rpm命令详细介绍,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 虽然现在N多人都使用yum去替代rpm了,但是rpm在一些 ...

  6. linux的头文件下载,Linux内核头文件(linux headers)

    更新 Linux 内核头文件(linux headers) 三 8th, 2013 2,474 views | 发表评论 | Trackback 一般来说,如果不是自己编译 kernel,那么更新头文 ...

  7. Linux系统命令-rm命令详细介绍.系列【59】

    rm命令是Linux系统中常用的一个命令,可以用来删除文件或目录.下面详细介绍rm命令的使用方法. 1. 命令格式 rm [选项] 文件/目录 2. 命令选项 -f:强制删除文件或目录,无需确认. - ...

  8. Apache Kafka 入门 - Kafka命令详细介绍

    Apache Kafka 入门 Apache Kafka 入门大概分为5篇博客,内容都比较基础,计划包含以下内容: Kafka的基本配置和运行 Kafka命令详细介绍 Kafka-manager的基本 ...

  9. linux ftp 查找文件,Linux shell ftp命令根据文件日期下载文件的方法

    需求:ftp获取远程数据的文件,根据文件的创建时间点下载文件. 可以自行扩展根据文件的大小等其他需求. 知识点总结: 1.获取文件的时间: ls -lrt|awk '{print $6" & ...

最新文章

  1. python自动化之文件处理_Python自动化办公之Word批量转成自定义格式的Excel
  2. 图像分割--PixelNet: Representation of the pixels, by the pixels, and for the pixels
  3. C#和nodejs的互操作
  4. 【计算理论】Pumping 引理 ( 四个等价概念 | 自动机界限 | Pumping 引理简介 | Pumping 引理证明正则表达式 | Pumping 引理示例分析 )
  5. Redisbook学习笔记(3)数据类型之集合
  6. 畅想(2)-计算机发展与教育的关系
  7. c++ int8_t转int_Python 90行代码让微信地球转起来,你也可以!| 原力计划
  8. Memcache存储大数据的问题
  9. 对于线程安全的集合类(例如Vector)的任何操作是不是都能保证线程安全
  10. ListView vs FlatList vs RecyclerListView性能对比
  11. 高质量外链该怎样做?
  12. 网站关键词编写方法,注意事项。
  13. html5 电商模板,多用途电商HTML模板
  14. PTC Onshape 的两个核心弱点
  15. erp352产品安装手册
  16. 基于thinkphp开源cms 对比
  17. 曲终人散,我亦是行人。
  18. 栈和队列的基本操作(栈和队列的区别)
  19. onchange、onpropertychange、oninput和onblur
  20. python迭代廖雪峰_廖雪峰python教程:迭代

热门文章

  1. 无人驾驶运动学模型——线性时变模型预测控制的思路推演过程
  2. Vue中从v-model,model,.sync到双向数据传递,再到双向数据绑定
  3. 杰奇1.7用php53,杰奇1.7模板一库多站配置教程
  4. 软件需求工程 高校教学平台 需求工程计划
  5. 品牌零售号角吹响,开发B2C网站需要注意什么?
  6. ESP32-S2上使用SPI接口芯片DM9051NP转以太网的无线物联网网关开发指导
  7. Maven+Spring Web 项目结构在Eclipse下面的实现
  8. Neyman-Person
  9. 报错(root) Additional property redis is not allowed
  10. GUI,UGUI,NGUI三种编辑UI界面的插件