man page
man pages—“manual pages”(手册页)的缩写—是在几乎所有类 UNIX 操作系统(包括 Arch Linux)上可用的一种文档形式。用于显示它们命令是 man(1)。
尽管手册页范围广泛,但其设计目的是成为独立的文档,因此在讨论相关主题时,仅限于参考其他手册页。这与超链接感知的 Info 文档—GNU 试图取代传统手册页格式形成鲜明对比。
安装
man-db 在 Arch Linux 上实现了 man,而 less 是 man 使用的默认分页器。mandoc 也可以使用。
man-pages 提供了 Linux 和 POSIX.1 手册页 [1]。
一些本地化的手册页也可用
- 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 pages。
访问 man pages
要阅读 man page,只需输入
$ man page_name
手册分为几个章节。每个章节都有一个简介,例如 intro(1)、intro(2) 等等。有关完整列表,请参见 man-pages(7) § 手册页的章节。
Man pages 通常以其名称加上括号中的章节号来引用。通常有多个同名的 man pages,例如 man(1) 和 man(7)。在这种情况下,请在 man 命令中给出章节号,后跟 man page 的名称,例如
$ man 5 passwd
阅读关于 /etc/passwd
的 man page,而不是 passwd
实用程序的 man page。
或者等效地,man page 后跟章节号,用句点分隔
$ 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 "$@" }
阅读本地 man pages
您可以使用一些应用程序来查看 man pages
- Emacs — 这种可扩展和自文档编辑器也可以用于使用内置的 M-x
man
命令读取 man pages。
- KHelpCenter — 用于显示 KDE 应用程序文档的应用程序。是 kde-system 的一部分。Man pages 位于UNIX manual pages 中,或者通过运行
khelpcenter man:<name>
。
- Konqueror — KDE 文件管理器和 Web 浏览器。它可以通过
man:<name>
显示 man pages。
- 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 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) 编写的,它从根本上来说是一种排版语言。因此,您可以轻松地将 man pages 转换为 groff 支持的任何格式,groff 由 man-db 使用。有关输出设备的列表,请参见 groff(1) 中的 -T
选项(如果您使用 mandoc 软件包,则为 mandoc(1))。
这将生成一个 PDF 文件
$ man -Tpdf manpage > filename
注意事项:字体通常仅限于 Times 的硬编码大小。某些 man pages 专门为终端查看而设计,在 PS 或 PDF 格式下看起来不正确。
Qman
对于读取手册页的替代界面,一种支持现代功能(如超链接和历史记录)的界面,请安装 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
在线 man pages
- Arch Linux 手册页—包含来自 Arch Linux 软件包的 man pages。用于来自 wiki 的 man page 链接。您也可以使用
!archman
DuckDuckGo bang 直接搜索 Arch 手册页。 - 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 pages
以下是一个非详尽的值得注意的页面列表,这些页面可能会帮助您更深入地了解很多事情。其中一些可以用作良好的参考(如 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)