跳至內容

man 手册

出自 Arch Linux 中文维基

man 手冊頁,指 "manual pages",是類 UNIX 系統的標準手冊工具,包括Arch Linux。這個命令常常被顯示為 man(1)

man手冊頁被設計成獨立的文檔,不能引用其它手冊頁面,於是這限制了它們在討論相似話題時指向其它的手冊頁面。這與支持超連結的 Info 文檔形成鮮明對比,GNU正在將 man 手冊替換成 info 文檔。

安裝

[編輯 | 編輯原始碼]

man-db 提供了 man 命令,lessman 的默認分頁器。mandoc 同樣可供使用。

man-pages 既提供Linux和POSIX.1的man頁面。[1]

中文用戶可以選擇安裝中文版本,其餘語言版本見英文wiki:

你也可以搜索所有可用的本地man頁面在官方倉庫AUR

閱讀手冊頁

[編輯 | 編輯原始碼]

通過以下命令閱讀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頁面

[編輯 | 編輯原始碼]

你可以通過以下軟體來查看man面:

  • Emacs — The extensible and self-documenting editor can also be used to read man pages with the built-in M-x man command.
https://www.gnu.org/software/emacs/ || emacs
  • GNOME Help — Help viewer for GNOME. Part of gnome包組. It can show man pages via yelp man:<name> or the undocumented Ctrl+L keybinding from an existing window.
https://apps.gnome.org/Yelp/ || yelp
  • KHelpCenter — Application to show KDE Applications' documentation. Part of kde-system包組. Man pages are in UNIX manual pages or by running khelpcenter man:<name>.
https://apps.kde.org/khelpcenter/ || khelpcenter
  • Konqueror — KDE file manager and web browser. It can show man pages via man:<name>.
https://konqueror.org/ || konqueror
  • neovim — The editor can be used to read man pages using the built-in :Man name command, or configured as a man pager with export 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 via gO).
https://neovim.io/ || neovim
  • xman — Provides a categorized look at man pages.
https://xorg.freedesktop.org/ || xorg-xman

使用如 lynx and firefox 等瀏覽器來查看man頁面可以使用戶獲得如閱讀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手冊頁:

$ man free | man2html -compress -cgiurl man$section/$title.$section$subsection.html > ~/man/free.html

此外,man2html還可以把man頁轉換為便於列印的文本文件:

$ man free | man2html -bare > ~/free.txt

man -H

[編輯 | 編輯原始碼]

man-db提供的man也具有瀏覽器閱讀功能:

$ man -H free

BROWSER環境變量決定使用的瀏覽器。也可以使用 man -Hlynx(H後無空格)這樣的形式手動設置瀏覽器。

roffit

[編輯 | 編輯原始碼]

安裝 roffitAUR

轉化一個man頁面:

$ gunzip -c /usr/share/man/man1/free.1.gz | roffit > free.html

轉換為 PDF

[編輯 | 編輯原始碼]

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

使用在線手冊頁

[編輯 | 編輯原始碼]
警告:一些發行版與Arch Linux不同的man頁面,這可能是補丁後或過時版本的頁面

許多網站提供在線man手冊頁,詳細列表參見:

注意, man-pages提供的是POSIX.1-2017 (見[2])的man頁面,一個官方的在線參考也存在於:

值得注意的man頁面

[編輯 | 編輯原始碼]

這列舉了一些可能幫助你更深度理解很多事情的頁面,但這並不是很詳盡。它們中的一些可能給你一個很好的參考(如ASCII表)

你也可以看:category 7 (miscellaneous) pages:

$ man -s 7 -k ".*" 

Arch Linux 的特定頁面:

這篇文章的某些內容需要擴充。

原因:Add a section on writing man pages, including conversion tools like pandoc-cli, ruby-ronn-ng, asciidoc, help2man, go-md2man, txt2man, scdoc, info2manAUR, pod2manAUR, ruby-md2manAUR, etc. (在 Talk:Man 手冊 中討論)