查詢指令或設定 -Linux 線上手冊 - man

 Linux 線上手冊(man page)

man page(manual page 的簡寫)是在 UNIX/Linux 系統上特有的說明文件格式,在這個領域大家都會直接稱呼這樣的文件為 man page。 參考網址 : Ubuntu manuals官 (外連結)Michael Kerrisk - man page (外連結) 。

基本查詢

一般稍微有經驗的 Linux 使用者大概都知道使用 man 指令加上要查詢的說明主題來閱讀線上手冊,通常主題的名稱就是指令或是函數的名稱,例如查詢 ls 的用法:

  • $man ls
  • $ls(1)、$kill(1)  ....可用指令檢視不同章節的介紹。

指定章節(Section)

Linux 的線上手冊分為幾個主要的章節(sections),每個章節對應不同的類別:

  • man 1:執行檔或程式或是 shell 指令。如: ls、kill ....等。
  • man 2:系統呼叫(system calls,Linux 核心所提供的函數)。
  • man 3:函式庫或例行工作。
  • man 4:特殊檔案(通常位於 /dev)。
  • man 5:檔案格式與協定,如 /etc/passwd。
  • man 6:遊戲。
  • man 7:雜項(巨集等,如 man(7)、groff(7))。
  • man 8:系統管理者指令(通常是管理者 root 專用的)。
  • man 9:內核中的接口和子程序(非標準)。

而在線上手冊中的文件都會以小括弧來標明該文件所屬的章節,例如 LS(1) 就代表這份文件隸屬於第 1 個章節。

有些時候一個主題名稱在不同章節中有不同的說明文件,如果查詢一個主題的時候沒有指定章節,預設會依照 1 n l 8 3 2 3posix 3pm 3perl 5 4 9 6 7 這個順序來搜尋,然後顯示第一個搜尋到的章節。

例如 passwd 這個主題有 passwd(1) 與 passwd(5) 兩個章節,如果不指定章節的話:

  • $man passwd

就會顯示 passwd(1),而若要查詢 passwd(5) 的話,就要明確指定章節數:

  • $man 5 passwd

列出所有章節

有時候我們對於某個主題有興趣,但是卻不知道該主題有哪些章節可以查詢,這時候就可以使用 -aw 參數查詢:

  • $man -aw printf

這樣我們就可以知道 printf 這個主題有兩份說明文件,一份在第 1 個章節,另一份在第 3 個章節,所以我們可以用下面兩個指令來查詢:

  • $man printf
  • $man 3 printf

一次查閱所有章節

如果要一次查閱一個主題的所有章節,可以使用 -a 參數,這樣 man 會依序顯示所有的章節:

  • $man -a printf
當您看完一個章節並按下 q 離開之後,它就會顯示:

接著按下 Enter 鍵即可繼續閱讀下一個章節。

搜尋線上手冊

若想要在所有的線上手冊中以關鍵字搜尋,可以使用 -k 參數,並指定要搜尋的字眼:

  • $man -k printf

輸出會類似這樣

man 在搜尋時其實是以正規表達式(regular expression)來比對的,所以您可以使用任何正規表達式來做更複雜的搜尋,例如搜尋 s 開頭,並且包含 printf 字眼的文件:

  • $man -k "^s.*printf"

指定分頁程式(Pager)

顯示文件用的分頁程式,可以使用 -P 參數指定:

  • $man -P more printf

將線上手冊儲存為文字檔、網頁或 PDF

有時候我們會想要將線上手冊儲存成一般的檔案,方便用其他的方式來查閱,若要儲存成一般的文字檔可以使用:

  • $man printf | col -b > printf.txt
將線上手冊儲存為 HTML 網頁檔:
  • $zcat 'man -w printf | gorff -mandoc -T html > printf.html
將線上手冊儲存為 PDF 檔:
  • $man -t printf " ps3pdf -> printf.pdf

指定語系

現在很多線上手冊都有中文翻譯,如果您的 Linux 系統設定為中文語系,可能就有機會看到中文的說明文件:

如果想要看原文的話(尤其是翻譯翻的不好的時候),可以用 -L 指定語系:

  • $man -L en 5 passwd

彩色的線上文件

將文件的關鍵字加上色彩可以讓人閱讀起來更舒服,在 ~/.bashrc 中加入以下的色彩設定:

這樣就可以讓線上文件變成彩色的:

# Less Colors for Man Pages
export LESS_TERMCAP_mb=$'E[01;31m'       # begin blinking
export LESS_TERMCAP_md=$'E[01;38;5;74m'  # begin bold
export LESS_TERMCAP_me=$'E[0m'           # end mode
export LESS_TERMCAP_se=$'E[0m'           # end standout-mode
export LESS_TERMCAP_so=$'E[38;5;246m'    # begin standout-mode - info box
export LESS_TERMCAP_ue=$'E[0m'           # end underline
export LESS_TERMCAP_us=$'E[04;38;5;146m' # begin underline



參考資料

特色、摘要,Feature、Summary:

關鍵字、標籤,Keyword、Tag:

  • Ubuntu,Linux,

留言

這個網誌中的熱門文章

Ubuntu 常用指令、分類與簡介

iptables的觀念與使用

網路設定必要參數IP、netmask(遮罩)、Gateway(閘道)、DNS

了解、分析登錄檔 - log

Python 與SQLite 資料庫

Blogger文章排版範本

Pandas 模組

如何撰寫Shell Script

下載網頁使用 requests 模組