man 手册
man 手册页,指 "manual pages",是类 UNIX 系统的标准手册工具,包括Arch Linux。这个命令常常被显示为 man(1)。
man手册页被设计成独立的文档,不能引用其它手册页面,于是这限制了它们在讨论相似话题时指向其它的手册页面。这与支持超链接的 Info 文档形成鲜明对比,GNU正在将 man 手册替换成 info 文档。
man-db包 提供了 man 命令,less 是 man 的默认分页器。mandoc包 同样可供使用。
man-pages包 既提供Linux和POSIX.1的man页面。[1]
中文用户可以选择安装中文版本,其余语言版本见英文wiki:
- man-pages-zh_cn包 简体中文版本
- man-pages-zh_tw包 繁体中文版本
通过以下命令阅读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面:
-
Emacs — The extensible and self-documenting editor can also be used to read man pages with the built-in M-x
mancommand.
-
GNOME Help — Help viewer for GNOME. Part of gnome包组. It can show man pages via
yelp man:<name>or the undocumentedCtrl+Lkeybinding from an existing window.
-
KHelpCenter — Application to show KDE Applications' documentation. Part of kde-system包组. Man pages are in UNIX manual pages or by running
khelpcenter man:<name>.
-
Konqueror — KDE file manager and web browser. It can show man pages via
man:<name>.
-
neovim — The editor can be used to read man pages using the built-in
:Man namecommand, or configured as a man pager withexport 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 viagO).
- xman — Provides a categorized look at man pages.
使用如 lynx包 and firefox包 等浏览器来查看man页面可以使用户获得如阅读info页面的超链接优势,你可以使用以下替代方案:
安装 mandoc包来转换页面,如 free(1):
$ mandoc -Thtml -Ostyle=style.css /usr/share/man/man1/free.1.gz > free.html
然后在你的浏览器中打开free.html
首先,安装软件包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-db包提供的man也具有浏览器阅读功能:
$ man -H free
由BROWSER环境变量决定使用的浏览器。也可以使用 man -Hlynx(H后无空格)这样的形式手动设置浏览器。
安装 roffitAUR。
转化一个man页面:
$ gunzip -c /usr/share/man/man1/free.1.gz | roffit > free.html
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
许多网站提供在线man手册页,详细列表参见:
-
Arch Linux manual pages—contains man pages from Arch Linux packages. Used for man page links from the wiki. You can also use the
!archmanbang with search engines like DuckDuckGo or Brave to search through the Arch manual pages directly. - man7.org—The Linux man-pages project. Upstream of the man-pages包 package. The online pages currently show an outdated version of man-pages (5.13, released in 2021).
- manned.org—collection from various Linux distributions, BSD, etc., with multiple package versions
- linux.die.net
- man.cx—Man pages extracted from Debian testing.
- Debian man pages
- Ubuntu man pages
- DragonFlyBSD man pages
- FreeBSD man pages
- NetBSD man pages
- OpenBSD man pages
- Plan 9 Manual — Volume 1
- Inferno Manual — Volume 1
- The UNIX and Linux forums man page repository
注意, man-pages包提供的是POSIX.1-2017 (见[2])的man页面,一个官方的在线参考也存在于:
这列举了一些可能帮助你更深度理解很多事情的页面,但这并不是很详尽。它们中的一些可能给你一个很好的参考(如ASCII表)
- ascii(7)
- boot(7)
- charsets(7)
- chmod(1)
- credentials(7)
- fstab(5)
- file-hierarchy(7)
- systemd(1)
- locale(1p), locale(5), locale(7)
- printf(3)
- proc(5)
- regex(7)
- signal(7)
- term(5), term(7)
- termcap(5)
- terminfo(5)
- utf-8(7)
你也可以看:category 7 (miscellaneous) pages:
$ man -s 7 -k ".*"
Arch Linux 的特定页面: