man - 格式化并显示在线帮助手册页

时间:2022-04-18 00:21:51

总览

man [-acdfFhkKtwW] [-m 系统名] [-p <前处理程序>] [-C <配置文件>] [-M <路径>] [-P <浏览方式>] [-S <区段清单>] [区段名称] 帮助主题 ...

描述

man 格式化并显示在线帮助手册页面。此版本支持 MANPATH(MAN)PAGER 环境变量,因此,你可以拥有你自己的一系列 man 手册页并决定使用哪个程序来显示此格式的页面。如果定义了区段, man 将只查找在指定区段内的文档。你也可以通过命令行或环境变量来指定查找区段的顺序和预定义将要执行的程序。如果主题中有“/”符号,则将其作为文件名的一部分处理,也就是说你可以用 man ./foo.5 也可以用 man /cd/foo/bar.1.gz来查看各man 文档。

选项

-C 配置文件
定义man.conf供使用;默认使用的是 /etc/man.config 。(参见 man.conf(5))。
-M 路径
定义一组查找man手册页的目录。如果没有指定此参数,系统环境变量 MANPATH将被使用。 如果查无到此环境变量,则按默认 /etc/man.config 文件中指定的查找。一个空的 MANPATH 子字符串表示使用默认清单。
-P 浏览方式
定义浏览的方式。此选项将覆盖 MANPAGER 环境变量(此变量将覆盖 PAGER 变量)。若不指定此参数,则使用 MANPAGERPAGER 环境变量中的设置。此选项的预设的显示方式为 /usr/bin/less-is。
-S 区段清单
该清单是一组用冒号分隔的欲查找的手册清单。此选项将覆盖 MANSECT 环境变量。有些指令或程序可能有一个以上的主题,它们位于不同的区段中。因此,要查看较后的区段,你可以在此指定 man 查找区段的顺序。具体区段划分如下所示:
区段1:用户指令
区段2:系统调用
区段3:程序库调用
区段4:设备
区段5:文件格式
区段6:游戏

区段7:杂项
区段8:系统指令
区段9:内核内部指令
区段n:Tcl或Tk指令
-a
默认情况下,man在显示完每一个所查到的man手册页时会自动退出程序。而使用此选项,则可使man显示所有与此主题相匹配的手册页内容,而不仅仅是第一项。
-c
即使已存在最近已排版过的帮助文件(即以前曾查询过该主题的帮助文档),使用该参数后仍会再次执行一次排版操作。此参数适用于已排版过的帮助文件已损坏或屏幕的行列数有改变时。
-d
不显示帮助文档的具体内容,只显示调试排错信息。
-D
既显示帮助文档内容,同时又显示调试排错信息。
-f
相当于运行whatis 的操作。即:显示工具指令与工具程序的简单说明。
-F 或 --preformat
只进行格式化操作,而不真正的显示出来。
-h
显示man的语法和参数说明,执行完成后退出程序。
-k
查当于使用 apropos 命令。
-K
在所有的帮助文件中查找包含有指定关键字的帮助文档。此操作可能很慢,所以在使用此参数时最好配合-s
的参数来查找指定区段。(这只是一个粗略的概念,在作者本人的机器上每分钟可查500个man文档。)
-m
系统名定义所要查找的man文档所属的系统名。
-p
字串定义在排版帮助文件这前所要执行的预处理程序的次序。不是所有的安装都有完整预处理程序组。一般有6个预处理程序,它们是:eqn(e)、grap(g)、pic(p)、tbl(t)、vgrind(v)和
reger(r)。此参数将覆盖环境变量MANROFFSEQ。
-t
使用 /usr/bin/groff - Tps - mandoc 来排版man手册页,并输出到标准输出。从
/usr/bin/groff - Tpa - madoc 输出的内容可能需要某些其它过滤才能真正输出到标准输出打印。
-w 或 --path
不显示帮助文档的具体内容而只显示相应帮助主题文件的位置。如果没有给定参数,则将在标准输出显示一组由man所查到的相匹配的man
文档所在目录。如果命令manpath是一个到m an的链接,那么执行“manpath”就相当于执行“man --path”。
-W
相当于-w参数,但所显示的内容以分行方式显示。此参数方便其它指定或程序对其输出做进一步处理,如: man -aW man | xargs ls
-l

CAT页

Man
会试着对所查的文档进行保存,为的是便于下次使用此帮助页时可节约格式化时间。传统上,被格式化的DIR/manX文档会被存储在DIR/catX中,但你可以在
/etc/man.config 配置文件中指定其它的目录。如果所需的cat目录不存在时,系统就不对格式化后的man文档进行保存。

对于使用man命令的人,man命令可能对其进行setuid的操作。因此,如果一个cat目录属于
man并且其模式是0755(只有man对其有写的权限),而且,cat文件也属于man和其模式是064
4或0444(只有man对其有写权限或根本就没有写权限),则普通用就不能更改cat文档页,也不能在此目录中存放其它文件。而如果man没有执行setuid的操作,那么,为了能使所有用户都能存放cat页到cat目录,则必须将这个cat目录设置成0777模式。

参数 -c 可以强制生成一个新的man页,既使已经有一个cat页存在。

环境变量

MANPATH
如果 MANPATH 有定义,那么它的值将在查找man文档页时做为搜索路径来使用。
MANROFFSEQ
如果 MANROFFSEQ
有定义,则此变量的值将用来决定在nroff或troff执行前将要执行的预处理程序的次序。默认情况下,手册页会在nroff处理前选取进行表格处理。
MANSECT
如果 MANSECT 有定义,它的值将决定man有搜索时的查找区段。
MANWIDTH
如果MANWIDTH有定义,它的值将决定显示man手册页时的宽度。否则,将是以全屏的方式来显示。
MANPAGER
如果 MANPAGER
有定义,它的值将指定用来显示man文档的程序。如果没有在此指定,那么将使用由PAGER变量指定的程序。如果还是没有指定,那么会默认使用/usr/bin/less
-is 。
LANG
如果 LANG 有定义,它的值将指定man在查找文档时首先查找的子目录。因此,命令“LAN G=dk man 1
foo”会使man在查找man页时首先查找../dk/man1/foo.1,如果在其中没有找到相关文档,则查找../man/foo.1,此目录是由查找路径指定的。
NLAPATH,LC_MESSAGES,LANG
环境变量 NLAPATHLC_MESSAGES (或当后一个不存在时使用 LANG
)充当了定位文档目录的角色。(但英文信息是编译进命令的,所以针对英文而言,就没有目录存在)。注意,象col (1)这样被man调用的程序也使用象
LC_CTYPE 这样的变量。
PATH
变量 PATH 是在解释查找man手册页路径时使用的。
SYSTEM
变量 SYSTEM 是用来得到默认的系统名(用-m参数可以得到同样的效果)。