手册页
man pages——“manual pages”的缩写——是在几乎所有类 UNIX 操作系统(包括 Arch Linux)上可用的文档形式。用于显示它们命令是 man(1)。
尽管其范围广泛,但 manual pages 被设计成独立的文档,因此在讨论相关主题时,仅限于参考其他 manual pages。这与支持超链接的 Info 文档——GNU 尝试取代传统 manual page 格式的尝试——形成鲜明对比。
安装
man-db 在 Arch Linux 上实现了 man,而 less 是 man 默认使用的分页器。mandoc 也可以使用。
man-pages 提供了 Linux 和 POSIX.1 man pages [1]。
一些本地化的 man pages 也可用
- 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 用于繁体中文
访问手册页
要阅读手册页,只需输入
$ man page_name
手册被分为几个章节。每个章节都有一个介绍,例如 intro(1)、intro(2) 等等。有关完整列表,请参阅 man-pages(7) § 手册页的章节。
手册页通常以其名称加上括号中的章节号来引用。通常有多个同名的手册页,例如 man(1) 和 man(7)。在这种情况下,请提供 man 章节号,后跟手册页的名称,例如
$ man 5 passwd
阅读 /etc/passwd
上的手册页,而不是 passwd
实用程序的手册页。
或者等效地,手册页后跟章节号,用句点分隔
$ man passwd.5
搜索手册
当不知道页面的确切名称时,可以使用以下任何等效命令搜索 man pages
$ man -k expression $ man --apropos expression $ apropos expression
expression
默认被解释为正则表达式。
要在整页文本中搜索关键字,请改用 -K
选项。
man-db.service
处理,该服务由 man-db.timer
定期触发。如果您每次搜索都收到“nothing appropriate”消息,请尝试以 root 身份运行 mandb
手动重新生成缓存。可以使用 whatis
命令显示 man pages 的单行描述。例如,要简要描述关于 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 "$@" }
阅读本地手册页
您可以使用一些应用程序来查看手册页
- Emacs — 可扩展的自文档编辑器也可以用于使用内置的 M-x
man
命令阅读手册页。
- GNOME Help — GNOME 的帮助查看器。gnome 的一部分。它可以显示 man pages,通过
yelp man:<name>
或从现有窗口中通过未记录的Ctrl+L
快捷键。
- KHelpCenter — 用于显示 KDE 应用程序文档的应用程序。kde-system 的一部分。Man pages 在 UNIX manual pages 中,或者通过运行
khelpcenter man:<name>
。
- Konqueror — KDE 文件管理器和 Web 浏览器。它可以显示 man pages,通过
man:<name>
。
- neovim — 该编辑器可以使用内置的
:Man name
命令读取 man pages,或者配置为 man 分页器,使用export MANPAGER='nvim +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 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。
要转换一个手册页
$ gunzip -c /usr/share/man/man1/free.1.gz | roffit > free.html
转换为 PDF
man pages 一直是可打印的:它们是用 troff(1) 编写的,troff(1) 本质上是一种排版语言。因此,您可以轻松地将 man pages 转换为 groff 支持的任何输出设备格式,groff 由 man-db 使用。有关输出设备列表,请参阅 groff(1) 中的 -T
选项(如果您使用 mandoc 软件包,则为 mandoc(1))。
这将生成一个 PDF 文件
$ man -Tpdf manpage > filename
注意事项:字体通常仅限于硬编码大小的 Times 字体。一些 man pages 专门为终端查看而设计,在 PS 或 PDF 格式中看起来不太正确。
Qman
对于阅读 manual pages 的另一种界面,一种支持现代功能(如超链接和历史记录)的界面,请安装 qman-gitAUR。您现在可以使用 qman
代替 man
$ qman ls # Display the manual page for ls $ qman -k ls # Perform apropos on 'ls'
有关更多信息,请参阅该项目的 GitHub 页面。
配置(可选)
Qman 的配置文件位于 ~/.config/qman.conf
(用户特定)或 /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 手册页 — 包含来自 Arch Linux 软件包的 man pages。用于 wiki 中的 man page 链接。您还可以使用
!archman
DuckDuckGo bang 直接搜索 Arch manual pages。 - man7.org — Linux man-pages 项目。man-pages 软件包的上游。在线页面当前显示的是 man-pages 的过时版本 (5.13, released in 2021)。
- manned.org — 来自各种 Linux 发行版、BSD 等的集合,具有多个软件包版本。
- linux.die.net
- man.cx — 从 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
- UNIX 和 Linux 论坛手册页仓库
请注意,虽然 man-pages 提供了 POSIX.1-2017 的手册页(参见 [2]),但官方在线参考也存在
还有一个在线数据库的比较表。
curl -sL 'https://man.archlinux.org/man/clang.raw' | man -l -
值得注意的手册页
以下是一个非详尽的值得注意的页面列表,这些页面可能有助于您更深入地了解很多事情。其中一些可以作为很好的参考(例如 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)