Linux中國

教你如何比谷歌搜索更快速有效地利用 man

我們通常通過 google 來查詢 Linux 中的命令說明,但是其實還有一個更好的辦法:那就是通過 Linux 自帶的 man 幫助來查詢命令詳盡完整的使用說明。

man 頁面的歷史本身比 Linux 還長,可以追溯到 Unix 早期那個年代。 通過這個 Wikipedia 可以知道,Dennis Ritchie 和 Ken Thompson 在 1971 年寫了第一個 man 幫助頁,那個年代的計算器使用的還是像烤箱一樣的計算機,個人電腦還未出世。man 幫助頁也有它自己的一套設計精鍊的語法,和 Unix 與 Linux 一樣,man 幫助頁也不是一成不變的,它就像 Linux 內核一樣不停地發展更新。

Man 幫助頁通過數字標識符來分成不同類型的內容:

  1. 一般用戶命令
  2. 系統調用命令
  3. 庫函數
  4. 特殊的文件和驅動程序
  5. 文件格式
  6. 遊戲和屏保
  7. 雜項
  8. 系統管理命令和守護進程

儘管如此,用戶一般也不需要知道他們想查詢的命令是屬於哪一個類型的。

這些文件格式化的方式在當今許多用戶看來有點古怪。因為最開始他們是用 trooff 的方式,通過 PostScript 印表機來列印,所以包含了頭部和布局方面的格式化信息。在 Linux 中,取而代之使用了一種叫做 groff 的方法。

在我的 Fedora 系統中,man 幫助頁相關的文件存儲在 /usr/share/man 下的子目錄中(比如 man1 存儲第一部分的命令),還有進一步的子目錄用於存儲 man 幫助頁的翻譯。

如果你在 Shell 中查找 man 命令的 man 幫助頁,你時間看到將是 gzip 工具壓縮的 man.1.gz 文件。想要查詢 man 幫助頁,需要輸入類似如下命令:

man man

這個例子會顯示 man 命令的 man 幫助頁,這將先解壓 man 幫助頁文件,然後解釋格式化指令並用 less 顯示結果,所以導航操作和在 less 中一樣。

所有的 man 幫助頁都應該顯示這些子段落:NameSynopsisDescriptionExamplesSeeAlso。有些還會添加一些額外的子段落,比如 OptionsExitStatusEnvironmentBugsFilesAuthorReportingBugsHistoryCopyright

詳細說明一個 man 幫助頁

為了更詳細地介紹一個典型的 man 幫助頁,就用 ls 命令的幫助頁來分析吧,在 Name 分段下,我們可以看到如下內容:

ls - list directory contents

它會簡要地告訴我 ls 這條命令的作用.

Synopsis 分段下,我們可以看到如下的內容:

ls [OPTION]... [FILE]…

任何在中括弧中的元素都是可選的。你可以只輸入 ls 命令,後面不接任何參數。參數後面的省略號表示你可以添加任意多個彼此兼容的參數,以及許多文件名。對於 [FILE] 參數,你可以指定具體的目錄名,或者可以使用通配符 *,比如這個例子,它會顯示 Documents 文件夾下的 .txt 文件:

ls Documents/*.txt

Description 分段下, 我們可以看到關於這條命令更加詳細的信息,還有關於這條命令各個參數作用的詳細介紹的列表,比如說 ls 命令第一個選項 -a 參數,它的作用是顯示包括隱藏文件/目錄在內的所有文件:

-a, --all 

如果我們想用這些參數,要麼用它們的別名,比如 -a,要麼用它們的全名,比如 --all(兩條中劃線)。然而並不是所有參數都有全名和別名(比如 --author 只有一種),而且兩者的名字並不總是相互關聯的(-F--classify)。當你想用多個參數時,要麼以空格隔開,要麼共用一個連字元 -,在連字元後連續輸入你需要的參數(不要添加空格)。比如下面兩個等價的例子:

ls -a -d -l
ls -adl

但是 tar 這個命令有些例外,由於一些歷史遺留原因,當參數使用別名時可以不用添加連字元 -,因此以下兩種命令都是合法的:

tar -cvf filearchive.tar thisdirectory/

tar cvf filearchive.tar thisdirectory/

lsDescription 分段後是 AuthorReporting BugsCopyrightSee Also 等分段。

See Also 分段會提供一些相關的 man 幫助頁,沒事的話可以看看。畢竟除了命令外還有許多其他類型的 man 幫助頁。

有一些命令不是系統命令,而是 Bash 特有的,比如 aliascd。這些 Bash 特有的命令可以在 BASH_BUILTINS man 幫助頁中查看,和上面的比起來它們的描述更加精鍊,不過內容都是類似的。

其實通過 man 幫助頁讓你可以獲得大量有用的信息,特別是當你想用一個已經很久沒用過的命令,需要複習下這條命令的作用時。這個時候 man 幫助頁飽受非議的簡潔性反而對你來說是更好的。

作者簡介:

Greg Pittman - Greg 是住在肯塔基州路易斯維爾的一位退休神經學家,但是卻對計算機和編程保持著長久的興趣,從二十世紀六十年代就開始搗騰 Fortran IV 了。隨著 Linux 和開源軟體的到來,更加激起了他去學習的興趣並投身於這項事業中,並成為 Scribus 組織的一員。

via: https://opensource.com/article/17/7/using-man-pages

作者:Greg Pittman 譯者:吳霄/toyijiu 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國