導讀 | 我們通常透過 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 幫助頁飽受非議的簡潔性反而對你來說是更好的。
以上是優化 man 使用方法,提高效率和速度的詳細內容。更多資訊請關注PHP中文網其他相關文章!