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 的特定頁面: