man page
man page—"manual pages" 的缩写 — 是几乎所有类 UNIX 操作系统(包括 Arch Linux)上可用的文档形式。用于显示它们的命令是 man(1)。
尽管 man page 的范围很广,但它们被设计为独立的文档,因此在讨论相关主题时,仅限于参考其他 man page。这与支持超链接的 Info 文档形成鲜明对比,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 for Czech
- man-pages-da for Danish
- man-pages-de for German
- man-pages-el for Greek
- man-pages-es for Spanish
- man-pages-fi for Finnish
- man-pages-fr for French
- man-pages-hu for Hungarian
- man-pages-id for Indonesian
- man-pages-it for Italian
- man-pages-jaAUR for Japanese
- man-pages-mk for Macedonian
- man-pages-nl for Dutch
- man-pages-pl for Polish
- man-pages-pt_br for Brazilian Portuguese
- man-pages-ro for Romanian
- man-pages-ru for Russian
- man-pages-sr for Serbian
- man-pages-sv for Swedish
- man-pages-trAUR for Turkish
- man-pages-uk for Ukrainian
- man-pages-vi for Vietnamese
- man-pages-zh_cn for Simplified Chinese
- man-pages-zh_tw for Traditional Chinese
你也可以在 官方仓库 和 AUR 上搜索所有可用的本地化 man page。
访问 man page
要阅读 man page,只需输入
$ man page_name
手册分为几个 section。每个 section 都有一个介绍,例如 intro(1)、intro(2) 等等。有关完整列表,请参阅 man-pages(7) § Sections of the manual pages。
Man page 通常以其名称加上括号中的 section 编号来引用。通常有多个同名的 man page,例如 man(1) 和 man(7)。在这种情况下,请为 man 提供 section 编号,后跟 man page 的名称,例如
$ man 5 passwd
阅读关于 /etc/passwd
的 man page,而不是 passwd
实用程序的 man page。
或者等效地,man page 后跟 section 编号,用句点分隔
$ man passwd.5
搜索手册
当不知道页面的确切名称时,可以使用以下任何等效命令搜索 man page
$ man -k expression $ man --apropos expression $ apropos expression
expression
默认被解释为正则表达式。
要在整个页面文本中搜索关键字,请改用 -K
选项。
man-db.service
处理,该服务由 man-db.timer
定期触发。如果您每次搜索都收到“nothing appropriate”消息,请尝试以 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 page
- Emacs — 这种可扩展且自文档化的编辑器也可以通过内置的 M-x
man
命令用于阅读 man page。
- KHelpCenter — 用于显示 KDE 应用程序文档的应用程序。是 kde-system 的一部分。Man page 位于UNIX manual pages 中,或者通过运行
khelpcenter man:<name>
。
- Konqueror — KDE 文件管理器和 Web 浏览器。它可以通过
man:<name>
显示 man page。
- neovim — 该编辑器可以使用内置的
:Man name
命令读取 man page,或者配置为 man 分页器,使用export MANPAGER='nvim +Man!'
。支持突出显示以及在命令行标志、关键字和其他 man page 之间导航。自动使用节标题、命令行标志和关键字生成大纲(可通过gO
获得)。
- xman — 提供 man page 的分类视图。
使用 lynx 和 Firefox 等浏览器查看 man page 允许用户获得 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 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 page 一直都是可打印的:它们是用 troff(1) 编写的,troff(1) 本质上是一种排版语言。因此,您可以轻松地将 man page 转换为 groff 支持的任何输出设备格式,groff 由 man-db 使用。有关输出设备列表,请参阅 groff(1) 中的 -T
选项(如果您使用 mandoc 软件包,则为 mandoc(1))。
这将生成一个 PDF 文件
$ man -Tpdf manpage > filename
注意事项:字体通常仅限于硬编码大小的 Times 字体。一些 man page 专门为终端查看而设计,在 PS 或 PDF 格式下看起来可能不正确。
Qman
对于阅读 man page 的另一种界面,该界面支持超链接和历史记录等现代功能,请安装 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 page
- Arch Linux man page—包含来自 Arch Linux 软件包的 man page。用于来自 wiki 的 man page 链接。您也可以使用
!archman
DuckDuckGo bang 直接搜索 Arch man page。 - man7.org—Linux man-pages 项目。man-pages 软件包的上游。在线页面当前显示 man-pages 的过时版本(5.13,发布于 2021 年)。
- manned.org—来自各种 Linux 发行版、BSD 等的集合,具有多个软件包版本。
- linux.die.net
- man.cx—从 Debian testing 中提取的 Man page。
- Debian man page
- Ubuntu man page
- DragonFlyBSD man page
- FreeBSD man page
- NetBSD man page
- OpenBSD man page
- Plan 9 Manual — Volume 1
- Inferno Manual — Volume 1
- The UNIX and Linux forums man page repository
请注意,虽然 man-pages 提供了 POSIX.1-2017 的 man page(请参阅 [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)
更广泛地说,请查看 category 7 (miscellaneous) pages
$ man -s 7 -k ".*"
Arch Linux specific pages
- 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)