跳转到内容

man 手册

来自 Arch Linux 中文维基

man 手册页,指 "manual pages",是类 UNIX 系统的标准手册工具,包括Arch Linux。这个命令常常被显示为 man(1)

man手册页被设计成独立的文档,不能引用其它手册页面,于是这限制了它们在讨论相似话题时指向其它的手册页面。这与支持超链接的 Info 文档形成鲜明对比,GNU正在将 man 手册替换成 info 文档。

安装

[编辑 | 编辑源代码]

man-db 提供了 man 命令,lessman 的默认分页器。mandoc 同样可供使用。

man-pages 既提供Linux和POSIX.1的man页面。[1]

中文用户可以选择安装中文版本,其余语言版本见英文wiki:

你也可以搜索所有可用的本地man页面在官方仓库AUR

阅读手册页

[编辑 | 编辑源代码]

通过以下命令阅读man手册页:

$ man 手册名

man手册页分为很多段落。每个段落有一段介绍,像intro(1), intro(2)等等。完整的列表可以参考:man-pages(7) § Sections of the manual pages .

man手册页通过名称和所属分类标识。有些不同分类的man手册页名字可能相同,比如 man(1)man(7),这时需要额外指明分类以访问需要的手册。例如:

$ man 5 passwd

会显示有关文件/etc/passwd,而非命令 passwd,的内容。

相同地,我们也可以使用man页面后用一'.'分开,并追加一段落号:

$ man passwd.5

搜索手册页

[编辑 | 编辑源代码]

如果用户压根儿不知道要查阅的手册的名称,该怎么办呢?没事,通过 -k 或者 --apropos 参数就可以按给定关键词搜索相关手册。例如,要查阅有关密码的手册(“password”):

关键词搜索特性是从一个专用的缓存生成的。默认情况下你没有这个缓存,所以无论你搜什么,都会提示你nothing appropriate。你可以通过下面的命令来生成这个缓存:

# mandb

每当你安装新的manpage之后都需要运行这个命令,缓存才会更新。

现在你可以开始搜索了。例如,要查阅有关密码的手册(“password”),可以使用下面的命令:

$ man -k password
$ man --apropos password
$ apropos password

关键字可以使用正则表达式。

如果你想全文搜索的话,你可以用-K选项:

$ man -K password

通过whatis命令,可以只显示需要的man手册页的简要信息。如果只是想获取对命令 ls 的简要说明,使用以下命令:

$ whatis ls
ls (1p)              - list directory contents
ls (1)               - list directory contents

页面宽度

[编辑 | 编辑源代码]

man页面宽度由环境变量MANWIDTH 来控制。

如果终端中的列数很小(比如窗口宽度很小),换行可能会出现错误。这会很影响你阅读。你可以通过设置在man调用时设置MANWIDTH来修复。如Bash

~/.bashrc
man() {
    local width=$(tput cols)
    [ $width -gt $MANWIDTH ] && width=$MANWIDTH
    env MANWIDTH=$width \
    man "$@"
}

阅读本地man页面

[编辑 | 编辑源代码]

你可以通过以下软件来查看man面:

  • Emacs — The extensible and self-documenting editor can also be used to read man pages with the built-in M-x man command.
https://www.gnu.org/software/emacs/ || emacs
  • GNOME Help — Help viewer for GNOME. Part of gnome包组. It can show man pages via yelp man:<name> or the undocumented Ctrl+L keybinding from an existing window.
https://apps.gnome.org/Yelp/ || yelp
  • KHelpCenter — Application to show KDE Applications' documentation. Part of kde-system包组. Man pages are in UNIX manual pages or by running khelpcenter man:<name>.
https://apps.kde.org/khelpcenter/ || khelpcenter
  • Konqueror — KDE file manager and web browser. It can show man pages via man:<name>.
https://konqueror.org/ || konqueror
  • neovim — The editor can be used to read man pages using the built-in :Man name command, or configured as a man pager with export MANPAGER='nvim +Man!'. Supports highlighting and navigation between command-line flags, keywords, and other man pages. Automatically generates an outline using section headers, command-line flags, and keywords as entries (available via gO).
https://neovim.io/ || neovim
  • xman — Provides a categorized look at man pages.
https://xorg.freedesktop.org/ || xorg-xman

使用如 lynx and firefox 等浏览器来查看man页面可以使用户获得如阅读info页面的超链接优势,你可以使用以下替代方案:

转换为 HTML

[编辑 | 编辑源代码]

mandoc

[编辑 | 编辑源代码]

安装 mandoc来转换页面,如 free(1):

$ mandoc -Thtml -Ostyle=style.css /usr/share/man/man1/free.1.gz > free.html

然后在你的浏览器中打开free.html

man2html

[编辑 | 编辑源代码]

首先,安装软件包man2html

然后使用它转换man手册页:

$ man free | man2html -compress -cgiurl man$section/$title.$section$subsection.html > ~/man/free.html

此外,man2html还可以把man页转换为便于打印的文本文件:

$ man free | man2html -bare > ~/free.txt

man -H

[编辑 | 编辑源代码]

man-db提供的man也具有浏览器阅读功能:

$ man -H free

BROWSER环境变量决定使用的浏览器。也可以使用 man -Hlynx(H后无空格)这样的形式手动设置浏览器。

roffit

[编辑 | 编辑源代码]

安装 roffitAUR

转化一个man页面:

$ gunzip -c /usr/share/man/man1/free.1.gz | roffit > free.html

转换为 PDF

[编辑 | 编辑源代码]

man pages 是可以打印的,遵循 troff(1) 格式,本来就是一种打印设置语言。因此,你可以很容易地通过groff将man页面转换为输出设备支持的任意格式,这也被man-db 所使用。通过groff(1) (如果你使用mandoc,请使用mandoc(1))的-T选项来列出所有输出设备。

如下命令将会为你导出PDF文件:

$ man -Tpdf ''manpage'' > ''filename''

注意,这里只能使用Times字体的硬编码大小,一些man页面是特地为终端查看而设计的,并且不会在PDF或PS格式中正确被渲染。

这是一个提供查看man页面的界面的替代软件,它支持像超链接和历史记录等现代的功能,安装qman-gitAUR。然后你可以使用qman来代替man了:

$ qman ls    # 显示ls的man页面
$ qman -k ls # 'ls'上执行apropos命令

查看这个项目的 GitHub页面 以了解更多

可选配置

[编辑 | 编辑源代码]

Qman 的配置文件在 ~/.config/qman.conf (用户的) or /etc/xdg/qman.conf (全局的).

如果你正在使用一个支持256色和Unicode的现代终端,你可能想要使用一个自定义配置来为这个软件提供一个更现代化的界面

默认的Qman是通过xdg-open来打开超链接和电子邮件链接。你可以通过在你的配置文件中添加如下行来更改:

[misc]
browser_path=/path/to/your/browser
mailer_path=/path/to/your/email/client

使用在线手册页

[编辑 | 编辑源代码]
警告:一些发行版与Arch Linux不同的man页面,这可能是补丁后或过时版本的页面

许多网站提供在线man手册页,详细列表参见:

注意, man-pages提供的是POSIX.1-2017 (见[2])的man页面,一个官方的在线参考也存在于:

值得注意的man页面

[编辑 | 编辑源代码]

这列举了一些可能帮助你更深度理解很多事情的页面,但这并不是很详尽。它们中的一些可能给你一个很好的参考(如ASCII表)

你也可以看:category 7 (miscellaneous) pages:

$ man -s 7 -k ".*" 

Arch Linux 的特定页面:

这篇文章的某些内容需要扩充。

原因:Add a section on writing man pages, including conversion tools like pandoc-cli, ruby-ronn-ng, asciidoc, help2man, go-md2man, txt2man, scdoc, info2manAUR, pod2manAUR, ruby-md2manAUR, etc. (在 Talk:Man 手册 中讨论)