man page
man pages——"manual pages" 的缩写——是几乎所有类 UNIX 操作系统(包括 Arch Linux)都提供的文档形式。用于显示它们的命令是 man(1)。
尽管 man page 的范围很广,但它们被设计成独立的文档,因此在讨论相关主题时,只会有限地引用其他 man page。这与支持超链接的 Info 文档形成了鲜明对比——这是 GNU 试图取代传统 man page 格式的尝试。
安装
man-db 在 Arch Linux 上实现了 man 命令,而 less 是 man 命令默认使用的分页器。也可以使用 mandoc。
man-pages 提供了 Linux 和 POSIX.1 的 man page [1]。
也提供了一些本地化的 man page
- man-pages-cs 适用于捷克语
- man-pages-da 适用于丹麦语
- man-pages-de 适用于德语
- man-pages-el 适用于希腊语
- man-pages-es 适用于西班牙语
- man-pages-fi 适用于芬兰语
- man-pages-fr 适用于法语
- man-pages-hu 适用于匈牙利语
- man-pages-id 适用于印度尼西亚语
- man-pages-it 适用于意大利语
- man-pages-jaAUR 适用于日语
- man-pages-mk 适用于马其顿语
- man-pages-nl 适用于荷兰语
- man-pages-pl 适用于波兰语
- man-pages-pt_br 适用于巴西葡萄牙语
- man-pages-ro 适用于罗马尼亚语
- man-pages-ru 适用于俄语
- man-pages-sr 适用于塞尔维亚语
- man-pages-sv 适用于瑞典语
- man-pages-trAUR 适用于土耳其语
- man-pages-uk 适用于乌克兰语
- man-pages-vi 适用于越南语
- man-pages-zh_cn 适用于简体中文
- man-pages-zh_tw 适用于繁体中文
您还可以 在官方仓库 和 AUR 中搜索所有可用的本地化 man page。
访问 man page
要阅读 man page,只需输入
$ man page_name
手册被分为几个 部分。每个部分都有一个介绍,例如 intro(1)、intro(2) 等等。完整的列表请参见 man-pages(7) § 手册页的章节。
Man page 通常通过其名称后跟括号中的节号来引用。通常有多个同名 man page,例如 man(1) 和 man(7)。在这种情况下,请在 man 命令后跟节号,然后是 man page 名称,例如
$ man 5 passwd
以阅读关于 /etc/passwd 的 man page,而不是 passwd 工具。
或者等效地,man page 后跟节号,用句点分隔
$ man passwd.5
搜索手册
当不确定 man page 的确切名称时,可以使用以下任一等效命令来搜索 man page
$ man -k expression $ man --apropos expression $ apropos expression
expression 默认被解释为正则表达式。
要搜索整个页面文本中的关键字,请改用 -K 选项。
man-db.service 处理,它会由 man-db.timer 定期触发。如果您收到“没有合适的结果”的消息,请尝试以 root 身份运行 mandb 来手动重新生成缓存。可以使用 whatis 命令显示 man page 的单行描述。例如,要简要描述关于 ls 的 man page 章节,请键入
$ whatis ls
ls (1p) - list directory contents ls (1) - list directory contents
页面宽度
man page 的宽度由 MANWIDTH 环境变量控制。
如果终端的列数太少(例如窗口宽度很窄),换行符将不正确。这会严重影响阅读。您可以通过在调用 man 命令时设置 MANWIDTH 来解决此问题。使用 Bash,则会是
~/.bashrc
man() {
local width=$(tput cols)
[ $width -gt $MANWIDTH ] && width=$MANWIDTH
env MANWIDTH=$width \
man "$@"
}
阅读本地 man page
您可以使用一些应用程序来查看 man pages
- Emacs — 可扩展且自文档化的编辑器,也可以使用内置的 M-x
man命令来阅读 man pages。
- GNOME Help — GNOME 的帮助查看器。属于 gnome。它可以通过
yelp man:<name>或从现有窗口中未公开的Ctrl+L快捷键来显示 man pages。
- KHelpCenter — 显示 KDE 应用程序文档的应用程序。属于 kde-system。Man pages 位于 UNIX manual pages 中,或通过运行
khelpcenter man:<name>。
- Konqueror — KDE 文件管理器和网页浏览器。它可以通过
man:<name>显示 man pages。
- neovim — 该编辑器可以使用内置的
:Man name命令来阅读 man pages,或者通过export MANPAGER='nvim +Man!'配置为 man 分页器。支持高亮显示和在命令行标志、关键字以及其他 man pages 之间导航。使用节标题、命令行标志和关键字作为条目自动生成大纲(通过gO可用)。
- xman — 提供 man pages 的分类视图。
使用 lynx 和 Firefox 等浏览器查看 man pages 可以让用户获得 info pages 的主要好处,即超文本链接。替代方法包括以下选项
转换为 HTML
mandoc
安装 mandoc 包。要转换一个页面,例如 free(1)
$ mandoc -Thtml -Ostyle=style.css /usr/share/man/man1/free.1.gz > free.html
现在在您喜欢的浏览器中打开名为 free.html 的文件。
man2html
首先,从官方仓库安装 man2html。
现在,转换一个 man page
$ man free | man2html -compress -cgiurl man$section/$title.$section$subsection.html > ~/man/free.html
man2html 的另一个用途是导出为纯文本,适合打印
$ man free | man2html -bare > ~/free.txt
man -H
man-db 的实现也能够自己完成这项工作
$ man -H free
这将读取您的 BROWSER 环境变量来确定浏览器。您可以通过将二进制文件传递给 -H 选项来覆盖此设置。
roffit
首先安装 roffitAUR。
要转换一个 man page
$ gunzip -c /usr/share/man/man1/free.1.gz | roffit > free.html
转换为 PDF
man pages 始终是可打印的:它们是用 troff(1) 编写的,而 troff 本质上是一种排版语言。因此,您可以轻松地将 man pages 转换为 man-db 使用的 groff 支持的任何输出格式。输出设备的列表,请参见 groff(1) (或如果您使用 mandoc 包,请参见 mandoc(1)) 中的 -T 选项。
这将生成一个 PDF 文件
$ man -Tpdf manpage > filename
注意:字体通常限于 Times 字体,并使用硬编码的尺寸。有些 man pages 是专门为终端查看设计的,在 PS 或 PDF 格式下看起来不会很好。
Qman
如果您需要一个支持现代功能(如超链接和历史记录)的 man pages 阅读替代界面,请安装 qmanAUR 或 qman-gitAUR。您现在可以使用 qman 来代替 man。
$ qman ls # Display the manual page for ls $ qman -k ls # Perform apropos on 'ls'
有关更多信息和故障排除,请参见项目的 GitHub 页面。
在线 man page
- Arch Linux man pages—包含来自 Arch Linux 包的 man pages。用于 wiki 中的 man page 链接。您也可以使用
!archman这样的命令前缀,在 DuckDuckGo 或 Brave 等搜索引擎中直接搜索 Arch man pages。 - man7.org—Linux man-pages 项目。是 man-pages 包的上游。在线页面目前显示的是一个过时的 man-pages 版本(5.13,发布于 2021 年)。
- manned.org—来自各种 Linux 发行版、BSD 等的集合,包含多个包版本。
- linux.die.net
- man.cx—从 Debian testing 中提取的 man pages。
- 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 的 man pages(参见 [2]),但也有一个官方在线参考
还有一个 在线数据库的比较表。
curl -sL 'https://man.archlinux.org/man/clang.raw' | man -l -值得注意的 man page
以下是一个非详尽列表,其中包含值得注意的页面,它们可能会帮助您更深入地理解许多内容。其中一些页面可能是一个很好的参考(例如 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)
更广泛地说,可以查看 第 7 类(杂项)页面
$ man -s 7 -k ".*"
Arch Linux 特有页面
- alpm-hooks(5)
- libalpm(3)
- makepkg(8)
- makepkg.conf(5)
- makepkg-template(1)
- mkinitcpio(8)
- pacman(8)
- pacman.conf(5)
- pacman-conf(8)
- pacman-key(8)