man指令概述
man
命令是Linux下的帮助指令,通过man
指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。
如果后面的参数包含斜杠(/),则man将其解释为文件规范,以便您可以执行man ./foo.5,甚至man /cd/foo/bar.1.gz。(也就是会显示文件帮助,譬如文件内容格式等说明信息或文件内容)
手册原文写的是“格式化并显示联机手册页”
man指令语法
man [选项] 参数
man指令选项
-a
# 默认情况下,man将在显示它找到的第一个手册页面后退出。使用此选项将强制man显示与名称匹配的所有手册页,而不仅仅是第一个。
# 简言之,他会给你展示所有有关的手册页,而不是仅搜索到的第一个。
-B 指定的浏览器路径
# 指定在HTML文件上使用哪个浏览器。(前面说过man可以尝试打开任何文件)此选项将重写浏览器环境变量。
# 默认情况下,man使用/usr/bin/less-is
-C 配置文件名
# 指定要使用的配置文件;默认为/etc/man.config
-c
# 重新格式化源手册页。即使存在最新版本的目录页,也会重新格式化(回归预置的旧版本)。
# 用于修复手册
-D
# 显示手册页并打印调试信息。
-d
# 不显示手册页打印调试信息。
-F 或 --preformat
# 仅格式化,不显示
# 对指令无效
-f
# 等价于whatis指令,显示给定关键字的简短描述信息。
-H htmlpager
# 指定将HTML文件呈现为文本。此选项覆盖HTMLPAGER环境变量。默认情况下,man使用/bin/cat
-h 或 --help
# 显示该指令的简单帮助。(万用参数)
-K
# 在全部手册页中搜索指定的字符串。
# 手册里给出了很贴心的警告:“这可能很慢!(举个例子,在我的机器上,每500个手册页大约需要一分钟。)”
-k(小写)
# 相当于apropos,在一些特定的包含系统命令的简短描述的数据库文件里查找关键字,然后把结果送到标准输出。
-M [搜索路径]
# 指定要搜索手册页的目录。用冒号分隔目录。空列表与不指定 -m 相同。
-m 系统名称
# 根据指定的系统名称指定一组备用的联机手册。
-P pager
# 指定要使用的pager。此选项重写MANPAGER环境变量,后者反过来重写pager变量。默认情况下,man使用/usr/bin/less-is。
-p(小写) 顺序串
# 指定要在nroff或troff之前运行的预处理程序的顺序。并不是所有的安装都有完整的预处理程序。一些预处理器和用于指定它们的字母是:eqn (e), grap (g), pic (p), tbl (t), vgrind (v), refer (r)。此选项重写MANROFFSEQ环境变量。
# nroff和troff是将文本文件格式化为打印机所需的格式的UNIX命令。
-S(大写) List
# List是一个用冒号隔开的要搜索的手册的列表。此选项重写MANSECT环境变量。
-t
# 使用/usr/bin/groff-tps-mandoc格式化手册页面,将输出传递给stdout。默认的输出格式/usr/bin/groff-tps-mandoc是Postscript
# 有关选择替代格式的方法,请参阅/usr/bin/groff-tps-mandoc的手册页。
-v, -V 或 --version
# 打印版本信息,并退出(万用指令)
-W
# 类似-w,但是打印文件名为每行一个,没有其他信息。
-w 或 --path
# 不实际显示手册页,但打印要格式化或显示的文件的位置。如果没有给出参数:显示(在stdout上)由man搜索手册页的目录列表。
# 如果manpath的是man的一个链接, 那么 "manpath" 就相当于"man --path".
有关pager变量请参见下面执行结果中的手册
man指令的执行结果
- 这里执行
man man
- 结果如下:
会打开一个全新的浏览界面,显示如下:
man(1) # 这里左右都有一个"man(1)",表示这是“man”手册的第(1)章节 man(1)
NAME # 这一栏介绍指令的由来及作用简介
man - format and display the on-line manual pages
SYNOPSIS # 这一栏介绍的语法
man [-acdDfFhkKtvVwW] [--path] [-m system] [-p string] [-C config_file] [-M pathlist] [-P pager]
[-B browser] [-H htmlpager] [-S section_list] [section] name ...
DESCRIPTION # 指令的详细描述
man formats and displays the on-line manual pages. If you specify section, man only looks in that
section of the manual. name is normally the name of the manual page, which is typically the name
of a command, function, or file. However, if name contains a slash (/) then man interprets it as
a file specification, so that you can do man ./foo.5 or even man /cd/foo/bar.1.gz.
See below for a description of where man looks for the manual page files.
MANUAL SECTIONS # 这是一个手册目录,介绍的是手册的标准部分的内容。
The standard sections of the manual include:
1 User Commands
2 System Calls
3 C Library Functions
4 Devices and Special Files
5 File Formats and Conventions
6 Games et. Al.
7 Miscellanea
8 System Administration tools and Daemons
Distributions customize the manual section to their specifics, which often include additional sec-
tions.
OPTIONS # 这里是选项的用法及说明
-C config_file
Specify the configuration file to use; the default is /etc/man.config. (See man.con-
fig(5).)
-M path
Specify the list of directories to search for man pages. Separate the directories with
colons. An empty list is the same as not specifying -M at all. See SEARCH PATH FOR MANUAL
-P pager
Specify which pager to use. This option overrides the MANPAGER environment variable, which
in turn overrides the PAGER variable. By default, man uses /usr/bin/less -is.
-B Specify which browser to use on HTML files. This option overrides the BROWSER environment
variable. By default, man uses /usr/bin/less-is,
-H Specify a command that renders HTML files as text. This option overrides the HTMLPAGER
environment variable. By default, man uses /bin/cat,
-S section_list
List is a colon separated list of manual sections to search. This option overrides the
MANSECT environment variable.
-a By default, man will exit after displaying the first manual page it finds. Using this
option forces man to display all the manual pages that match name, not just the first.
-c Reformat the source man page, even when an up-to-date cat page exists. This can be mean-
ingful if the cat page was formatted for a screen with a different number of columns, or if
the preformatted page is corrupted.
-d Don’t actually display the man pages, but do print gobs of debugging information.
-D Both display and print debugging info.
-f Equivalent to whatis.
-F or --preformat
Format only - do not display.
-h or --help
Print a help message and exit.
-v, -V or --version
Print version information and exit.
-k Equivalent to apropos.
-K Search for the specified string in *all* man pages. Warning: this is probably very slow! It
helps to specify a section. (Just to give a rough idea, on my machine this takes about a
minute per 500 man pages.)
-m system
Specify an alternate set of man pages to search based on the system name given.
-p string
Specify the sequence of preprocessors to run before nroff or troff. Not all installations
will have a full set of preprocessors. Some of the preprocessors and the letters used to
designate them are: eqn (e), grap (g), pic (p), tbl (t), vgrind (v), refer (r). This
option overrides the MANROFFSEQ environment variable.
-t Use /usr/bin/groff -Tps -mandoc to format the manual page, passing the output to stdout.
The default output format of /usr/bin/groff -Tps -mandoc is Postscript, refer to the manual
page of /usr/bin/groff -Tps -mandoc for ways to pick an alternate format.
Depending on the selected format and the availability of printing devices, the output may need to
be passed through some filter or another before being printed.
-w or --path
Don’t actually display the man pages, but do print the location(s) of the files that would
be formatted or displayed. If no argument is given: display (on stdout) the list of direc-
tories that is searched by man for man pages. If manpath is a link to man, then "manpath"
is equivalent to "man --path".
-W Like -w, but print file names one per line, without additional information. This is useful
in shell commands like man -aW man | xargs ls -l
# 从这里开始,将对各条指令的执行的结果、原理、库、设备文件等进行描述,不同指令各不相同
CAT PAGES
Man will try to save the formatted man pages, in order to save formatting time the next time these
pages are needed. Traditionally, formatted versions of pages in DIR/manX are saved in DIR/catX,
but other mappings from man dir to cat dir can be specified in /etc/man.config. No cat pages are
saved when the required cat directory does not exist. No cat pages are saved when they are for-
matted for a line length different from 80. No cat pages are saved when man.config contains the
line NOCACHE.
It is possible to make man suid to a user man. Then, if a cat directory has owner man and mode
0755 (only writable by man), and the cat files have owner man and mode 0644 or 0444 (only writable
by man, or not writable at all), no ordinary user can change the cat pages or put other files in
the cat directory. If man is not made suid, then a cat directory should have mode 0777 if all
users should be able to leave cat pages there.
The option -c forces reformatting a page, even if a recent cat page exists.
HTML PAGES
Man will find HTML pages if they live in directories named as expected to be ".html", thus a valid
name for an HTML version of the ls(1) man page would be /usr/share/man/htmlman1/ls.1.html.
SEARCH PATH FOR MANUAL PAGES
man uses a sophisticated method of finding manual page files, based on the invocation options and
environment variables, the /etc/man.config configuration file, and some built in conventions and
heuristics.
First of all, when the name argument to man contains a slash (/), man assumes it is a file speci-
fication itself, and there is no searching involved.
But in the normal case where name doesn’t contain a slash, man searches a variety of directories
for a file that could be a manual page for the topic named.
If you specify the -M pathlist option, pathlist is a colon-separated list of the directories that
man searches.
If you don’t specify -M but set the MANPATH environment variable, the value of that variable is
the list of the directories that man searches.
If you don’t specify an explicit path list with -M or MANPATH, man develops its own path list
based on the contents of the configuration file /etc/man.config. The MANPATH statements in the
configuration file identify particular directories to include in the search path.
Furthermore, the MANPATH_MAP statements add to the search path depending on your command search
path (i.e. your PATH environment variable). For each directory that may be in the command search
path, a MANPATH_MAP statement specifies a directory that should be added to the search path for
manual page files. man looks at the PATH variable and adds the corresponding directories to the
manual page file search path. Thus, with the proper use of MANPATH_MAP, when you issue the com-
mand man xyz, you get a manual page for the program that would run if you issued the command xyz.
In addition, for each directory in the command search path (we’ll call it a "command directory")
for which you do not have a MANPATH_MAP statement, man automatically looks for a manual page
directory "nearby" namely as a subdirectory in the command directory itself or in the parent
directory of the command directory.
You can disable the automatic "nearby" searches by including a NOAUTOPATH statement in
/etc/man.config.
In each directory in the search path as described above, man searches for a file named topic.sec-
tion, with an optional suffix on the section number and possibly a compression suffix. If it
doesn’t find such a file, it then looks in any subdirectories named manN or catN where N is the
manual section number. If the file is in a catN subdirectory, man assumes it is a formatted man-
ual page file (cat page). Otherwise, man assumes it is unformatted. In either case, if the file-
name has a known compression suffix (like .gz), man assumes it is gzipped.
If you want to see where (or if) man would find the manual page for a particular topic, use the
--path (-w) option.
ENVIRONMENT # 这里是一些可选设置项的效果描述,也就是环境变量
MANPATH
If MANPATH is set, man uses it as the path to search for manual page files. It overrides
the configuration file and the automatic search path, but is overridden by the -M invoca-
tion option. See SEARCH PATH FOR MANUAL PAGES.
MANPL If MANPL is set, its value is used as the display page length. Otherwise, the entire man
page will occupy one (long) page.
MANROFFSEQ
If MANROFFSEQ is set, its value is used to determine the set of preprocessors run before
running nroff or troff. By default, pages are passed through the tbl preprocessor before
nroff.
MANSECT
If MANSECT is set, its value is used to determine which manual sections to search.
MANWIDTH
If MANWIDTH is set, its value is used as the width manpages should be displayed. Otherwise
the pages may be displayed over the whole width of your screen.
MANPAGER
If MANPAGER is set, its value is used as the name of the program to use to display the man
page. If not, then PAGER is used. If that has no value either, /usr/bin/less -is is used.
BROWSER
The name of a browser to use for displaying HTML manual pages. If it is not set,
/usr/bin/less -is is used.
HTMLPAGER
The command to use for rendering HTML manual pages as text. If it is not set, /bin/cat is
used.
LANG If LANG is set, its value defines the name of the subdirectory where man first looks for
man pages. Thus, the command ‘LANG=dk man 1 foo’ will cause man to look for the foo man
page in .../dk/man1/foo.1, and if it cannot find such a file, then in .../man1/foo.1, where
... is a directory on the search path.
NLSPATH, LC_MESSAGES, LANG
The environment variables NLSPATH and LC_MESSAGES (or LANG when the latter does not exist)
play a role in locating the message catalog. (But the English messages are compiled in,
and for English no catalog is required.) Note that programs like col(1) called by man also
use e.g. LC_CTYPE.
PATH PATH helps determine the search path for manual page files. See SEARCH PATH FOR MANUAL
PAGES.
SYSTEM SYSTEM is used to get the default alternate system name (for use with the -m option).
BUGS # 使用时可能遇到的问题及解决方案
The -t option only works if a troff-like program is installed.
If you see blinking \255 or <AD> instead of hyphens, put ‘LESSCHARSET=latin1’ in your environment.
TIPS # 小贴士
If you add the line
(global-set-key [(f1)] (lambda () (interactive) (manual-entry (current-word))))
to your .emacs file, then hitting F1 will give you the man page for the library call at the cur-
rent cursor position.
To get a plain text version of a man page, without backspaces and underscores, try
# man foo | col -b > foo.mantxt
AUTHOR # 指令的最早提倡者(发明者)
John W. Eaton was the original author of man. Zeyd M. Ben-Halim released man 1.2, and Andries
Brouwer followed up with versions 1.3 thru 1.5p. Federico Lucifredi <flucifredi@acm.org> is the
current maintainer.
SEE ALSO # 类似关联文档
apropos(1), whatis(1), less(1), groff(1), man.config(5).
September 19, 2005 man(1)
使用按键q可以退出该界面。
文章存在不足,如果大佬们发现问题,请指正,感谢