教你如何比谷歌搜索更快速有效地利用 man
我們通常通過 google 來查詢 Linux 中的命令說明,但是其實還有一個更好的辦法:那就是通過 Linux 自帶的 man 幫助頁來查詢命令詳盡完整的使用說明。
man 頁面的歷史本身比 Linux 還長,可以追溯到 Unix 早期那個年代。 通過這個 Wikipedia 可以知道,Dennis Ritchie 和 Ken Thompson 在 1971 年寫了第一個 man 幫助頁,那個年代的計算器使用的還是像烤箱一樣的計算機,個人電腦還未出世。man 幫助頁也有它自己的一套設計精鍊的語法,和 Unix 與 Linux 一樣,man 幫助頁也不是一成不變的,它就像 Linux 內核一樣不停地發展更新。
Man 幫助頁通過數字標識符來分成不同類型的內容:
- 一般用戶命令
- 系統調用命令
- 庫函數
- 特殊的文件和驅動程序
- 文件格式
- 遊戲和屏保
- 雜項
- 系統管理命令和守護進程
儘管如此,用戶一般也不需要知道他們想查詢的命令是屬於哪一個類型的。
這些文件格式化的方式在當今許多用戶看來有點古怪。因為最開始他們是用 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 幫助頁都應該顯示這些子段落:Name、 Synopsis、 Description、Examples、See、Also。有些還會添加一些額外的子段落,比如 Options、 Exit、Status、 Environment、Bugs、Files、Author、Reporting、Bugs、History、Copyright。
詳細說明一個 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/
ls 的 Description 分段後是 Author、Reporting Bugs、Copyright、 See Also 等分段。
See Also 分段會提供一些相關的 man 幫助頁,沒事的話可以看看。畢竟除了命令外還有許多其他類型的 man 幫助頁。
有一些命令不是系統命令,而是 Bash 特有的,比如 alias
和 cd
。這些 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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive