Linux man 命令

Linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。本文主要介绍Linux man 命令。

1、命令简介

man:用于查看命令的手册页或文档。它允许用户浏览和搜索各种命令的详细信息,包括命令的功能、用法、选项、参数等。

2、命令语法

 man [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L locale] [-m system[,...]] [-M path] [-S list] [-e extension] 
[-i|-I] [--regex|--wildcard] [--names-only] [-a] [-u] [--no-subpages] [-P pager] [-r prompt] [-7] [-E encoding] [--no-hyphenation] 
[--no-justification] [-p string] [-t] [-T[device]] [-H[browser]] [-X[dpi]] [-Z] [[section] page ...] ... 
 man -k [apropos options] regexp ...
 man -K [-w|-W] [-S list] [-i|-I] [--regex] [section] term ...
 man -f [whatis options] page ...
 man -l [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L locale] [-P pager] [-r prompt] [-7] [-E encoding] [-p string] [-t] [-T[device]] [-H[browser]] [-X[dpi]] [-Z] file ...
 man -w|-W [-C file] [-d] [-D] page ...
 man -c [-C file] [-d] [-D] page ...
 man [-hV]

3、命令描述

man 是系统的手册分页程序。每个传递给 man 的页面参数通常是程序、实用工具或函数的名称。然后,man 会找到并显示与这些参数中的每一个相关联的手册页。如果提供了一个章节,man 将指示仅在手册的该章节中查找。默认操作是在所有可用的章节中搜索,遵循预定义的顺序,并且仅显示找到的第一页,即使该页面存在于多个章节中。

4、命令选项

选项

描述

-C file, --config-file=file

使用此用户配置文件,而不是默认的 ~/.manpath

-d, --debug

打印调试信息。

-D, --default

此选项通常作为第一个选项发出,

并将 man 的行为重置为其默认值。

其作用是重置可能在 $MANOPT 中设置的那些选项。

任何跟随 -D 的选项都将具有其通常的效果。

--warnings[=warnings]

启用来自 groff 的警告。

这可用于对手册页的源文本执行合理性检查。

warnings 是逗号分隔的警告名称列表;

如果未提供,则默认为 "mac"。

-f, --whatis

等效于 whatis。从手册页显示一个简短的描述。

-k, --apropos

在短手册页描述中搜索关键字并显示任何匹配项。

-K, --global-apropos

在所有手册页中搜索文本。

这是一种蛮力搜索,可能需要一些时间;

如果可能,您应该指定一个章节,

以减少需要搜索的页面数量。

搜索术语可以是简单字符串(默认),

也可以是正则表达式(如果使用 --regex 选项)。

-l, --local-file

激活 `local' 模式。格式化并显示本地手册文件,

而不是在系统的手册集合中搜索。

每个手册页参数将被解释为正确格式的 nroff 源文件。

不会生成 cat 文件。

如果 '-' 列为参数之一,输入将从 stdin 获取。

如果未使用此选项,

并且 man 无法找到所需的页面,

在显示错误消息之前,

它将尝试像已提供此选项一样执行,

将名称用作文件名并查找完全匹配项。

-w, --where, --location

不实际显示手册页,

但会打印将要格式化的源 nroff 文件的位置。

-W, --where-cat, --location-cat

不实际显示手册页,

但会打印将要显示的 cat 文件的位置。

如果同时指定 -w-W

则用空格分隔打印两者。

-c, --catman

此选项不适用于一般用途,

只应由 catman 程序使用。

-R encoding, --recode=encoding

输出源转换为指定编码,

而不是以通常的方式格式化手册页。

如果已知源文件的编码,

也可以直接使用 manconv(1)。

但是,此选项允许您将多个手册页转换为单个编码,而无需显式指定每个编码,

前提是它们已经安装在类似手册页层次结构的结构中。

-L locale, --locale=locale

man 通常通过调用 C 函数 setlocale 来确定当前区域设置,

该函数会查询各种环境变量,

可能包括 $LC_MESSAGES$LANG

要临时覆盖确定的值,

请使用此选项将区域设置字符串直接提供给 man。请注意,

它将在实际开始搜索页面之前不会生效。

始终以最初确定的区域设置显示诸如帮助消息之类的输出。

-m system[,...], --systems=system[,...]

如果此系统可以访问其他操作系统的手册页,

则可以使用此选项访问它们。

要从 NewOS 的手册页集合中搜索手册页,

使用选项 -m NewOS。

-M path, --manpath=path

指定要使用的替代 manpath

默认情况下,man 使用 manpath 派生的代码来确定要搜索的路径。

此选项会覆盖 $MANPATH 环境变量,

并导致忽略选项 -m

作为 manpath 指定的路径必须是手册页层次结构的根,

以章节如 man-db 手册中所述进行结构化。

-S list, -s list, --sections=list

列表是一个以冒号或逗号分隔的“特定顺序”的手册节列表,

用于搜索。此选项会覆盖 $MANSECT 环境变量。

-e sub-extension, --extension=sub-extension

一些系统将大型手册页软件包(例如附带 Tcl 软件包的软件包)合并到主手册页层次结构中。

为了解决与同名手册页的问题,

如 exit,Tcl 页面通常都分配给部分 l。

-i, --ignore-case

在搜索手册页时忽略大小写。这是默认设置。

-I, --match-case

区分大小写地搜索手册页。

--regex

显示名称或描述的任何部分与每个页面参数匹配的所有页面,如 apropos。

由于在搜索正则表达式时通常没有合理的方法来选择“最佳”页面,

因此此选项隐含 -a

--wildcard

使用 shell 风格的通配符显示名称或描述的任何部分与每个页面参数匹配的所有页面,

如 apropos(1) --wildcard

页面参数必须完全匹配名称或描述,

或在描述中匹配单词边界。

由于在搜索通配符时通常没有合理的方法来选择“最佳”页面,因此此选项隐含 -a

--names-only

如果使用了 --regex--wildcard 选项,

则仅匹配页面名称,不匹配页面描述,

whatis。否则,无效。

-a, --all

默认情况下,

man 在显示找到的最合适的手册页后退出。

使用此选项将强制 man 显示所有名称

与搜索条件匹配的手册页。

-u, --update

此选项导致 man 在其数据库缓存上执行“inode 级别”的一致性检查,

以确保它们是文件系统的准确表示。

只有在 man 安装了设置了 setuid 位的情况下才会有用。

--no-subpages

默认情况下,

man 尝试将在命令行上给出的手册页名称对解释为等同于包含连字符

或下划线的单个手册页名称。

-P pager, --pager=pager

指定要使用的输出分页程序。

默认情况下,man 使用分页程序 -s

此选项会覆盖 $MANPAGER 环境变量,

后者会覆盖 $PAGER 环境变量。

不与 -f-k 一起使用。

值可以是简单的命令名称,

也可以是带参数的命令,

并且可以使用 shell 引号(反斜杠、单引号或双引号)。

-r prompt, --prompt=prompt

如果使用较新版本的 less 作为分页程序,

man 将尝试设置其提示符和一些合理的选项。

-7, --ascii

在 7 位终端或终端模拟器上查看纯 ascii(7) 手册页时,

使用带有 GNU nroff 的 latin1(7) 设备描述可能无法正确显示某些字符。

此选项允许将纯 ascii 手册页

显示为带有 latin1 设备的 ascii。

不会翻译任何 latin1 文本。

-E encoding, --encoding=encoding

生成与默认字符编码不同的字符编码的输出。

为了向后兼容,编码可以是 nroff 设备,

例如 ascii、latin1 或 utf8,

也可以是真正的字符编码,例如 UTF-8

--no-hyphenation, --nh

通常,nroff 会自动在换行处对文本进行连字符处理,

即使单词中不包含连字符,

如果需要在行上排列单词而不会产生过多的间距。此选项禁用自动连字符处理,

因此仅对已经包含连字符的单词进行连字符处理。

--no-justification, --nj

通常,nroff 会自动将文本两边对齐。

此选项禁用完全对齐,仅保留左边对齐,

有时称为“右对齐”文本。

如果您正在编写手册页,

并且只想阻止 nroff 对某些段落进行对齐,

请不要使用此选项,而是查阅 nroff 文档;

例如,可以使用 ".na"、".nf"、".fi"

和 ".ad" 请求临时禁用调整和填充。

-p string, --preprocessor=string

指定在运行 nroff 或 troff/groff 之前要运行的预处理器序列。并非所有安装都会有完整的预处理器集。其中一些预处理器及用于指定它们的字母为:

eqn (e)、grap (g)、pic (p)、tbl (t)、vgrind (v)、refer (r)。

此选项会覆盖 $MANROFFSEQ 环境变量。

zsoelim 总是作为第一个预处理器运行。

-t, --troff

使用 groff -mandoc 将手册页格式化为标准输出。

此选项与 -H、-T 或 -Z 不需要一起使用。

-T[device], --troff-device[=device]

此选项用于更改 groff(或可能是 troff 的)输出,使其适用于除默认设备外的其他设备。

-H[browser], --html[=browser]

此选项将导致 groff 生成 HTML 输出,

并在 Web 浏览器中显示该输出。

浏览器的选择取决于可选的浏览器参数(如果提供),

取决于 $BROWSER 环境变量,

或者如果未设置该变量(通常为 lynx),

取决于编译时的默认设置。此选项隐含 -t

并且仅适用于 GNU troff。

-X[dpi], --gxditview[=dpi]

此选项使用 gxditview 程序

在图形窗口中显示 groff 的输出。

dpi(每英寸点数)

可以是 75、75-12、100 或 100-12,

默认为 75;-12 变体使用 12 点基本字体。

此选项隐含具有 X75、X75-12、X100

或 X100-12 设备的 -T。

-Z, --ditroff

groff 将运行 troff,

然后使用适当的后处理器生成适合所选择设备的输出。

如果 groff -mandoc 是 groff,

此选项将传递给 groff,

并将禁用后处理器的使用。隐含 -t

-h, --help

打印帮助消息并退出。

-V, --version

显示版本信息。

5、使用示例

1)显示项目(程序)ls的手册页

$ man ls

2)连续显示所有包含在手册中的可用 intro 手册页。可以在连续的显示之间退出或跳过任何一个

$ man -a intro

3)将引用为 alias 的手册页(通常是一个 shell 手册页)格式化为默认的 troff 或 groff 格式,并将其发送到名为 ps 的打印机

$ man -t alias | lpr -Pps

4)以正则表达式形式搜索关键字 printf 的短描述和手册页名称。打印出任何匹配项。相当于 apropos -r printf

$ man -k printf

5)查找由 mkdir 引用的手册页,并打印出找到的任何内容的简短描述。相当于 whatis -r mkdir

$ man -f mkdir

6)调用子命令本身

$ man -aw git diff

推荐阅读
cjavapy编程之路首页