首頁 > 軟體

Linux man命令:顯示聯機幫助手冊

2020-06-16 17:13:00

Linux 自帶的幫助命令是最準確、最可靠的資料。筆者不止一次發現通過其他途徑搜尋到的資訊都不準確,甚至是錯誤的。所以,雖然 Linux 自帶的幫助命令是英文的,但是我們要靜下心來慢慢學習。

main 是最常見的幫助命令,也是 Linux 最主要的幫助命令,其基本資訊如下。

  • 命令名稱:man。
  • 英文原意:format and display the on-line manual pages。
  • 所在路徑:/usr/bin/man。
  • 執行許可權:所有使用者。
  • 功能描述:顯示聯機幫助手冊。

命令格式

[root@localhost ~]# man [選項]命令

選項:

  • -f:査看命令擁有哪個級別的幫助
  • -k: 査看和命令相關的所有幫助


man 命令比較簡單,我們舉個例子:

[root@localhost -]# man ls
#獲取ls命令的幫助資訊

這就是 man 命令的基本使用方法,非常簡單。但是幫助命令的重點不是命令如何使用,而是幫助資訊應該如何使用。這些資訊較多,我們通過下面一小節來詳細講解。

man命令的使用方法

還是檢視 ls 命令的幫助,我們看看這個幫助資訊的詳細內容。

[root@localhost -]# man ls

該命令會輸出以下資訊:


(點此檢視高清大圖)


雖然不同命令的 man 資訊有一些區別,但是每個命令 man 資訊的整體結構皆如演示這樣。在幫助資訊中,我們主要査看的就是命令的格式和選項的詳細作用。

不過大家請主意,在 man 資訊的最後,可以看到還有哪些命令可以檢視到此命令的相關資訊。這是非常重要的提示,不同的幫助資訊記錄的側重點是不太一樣的。所以,如果在 man 資訊中找不到想要的內容,則可以嘗試看其他相關幫助命令。

man命令的快捷鍵

man 命令的快捷鍵可以參考表 1。

表 1 man 命令的快捷鍵
快捷鍵作 用
上箭頭 向上移動一行
下箭頭 向下移動一行
PgUp 向上翻一頁
PgDn 向下翻一頁
g 移動到第一頁
G 移動到最後一頁
q 退出
/字串 從當前頁向下搜尋字串
?字串 從當前頁向上搜尋字串
n 當搜尋字串時,可以使用n鍵找到下一個字串
N 當搜尋字串時,使用N鍵反向查詢字串。也就是說,如果使用“/字串”方式搜尋, 則N鍵表示向上搜尋字串;如果使用“?字串”方式搜尋,則N鍵表示向下搜尋字串

man命令的幫助級別

不知道大家有沒有注意到,在執行 man 命令時,命令的開頭會有一個數位標識這個命令的幫助級別。例如:

[root@localhost -]# man ls
LS(1)      User Commands      LS(1)
#這裡(1)就表示這是 ls 的 1 級別的幫助資訊

這些命令的級別號代表什麼含義呢?我們通過表 2 來說明。

表 2 man命令的幫助級別
級 別作 用
1 普通使用者可以執行的系統命令和可執行檔案的幫助
2 核心可以呼叫的函數和工具的幫助
3 C語言函數的幫助
4 裝置和特殊檔案的幫助
5 組態檔的幫助
6 遊戲的幫助(個人版的Linux中是有遊戲的)
7 雜項的幫助
8 超級使用者可以執行的系統命令的幫助
9 核心的幫助


我們來試試,ls 命令的幫助級別是 1,我們已經看到了。那麼我們找一個只有超級使用者才能執行的命令,如 useradd 命令(新增使用者的命令),來看看這個命令的幫助:

[root@localhost ~]# man useradd U
SERADD(8)  System Management Commands    USERADD(8)
#我們可以看到,預設useradd命令的幫助級別是8,因為這是只有超級使用者才可以執行的命令


命令擁有哪個級別的幫助可以通過"-f"選項來進行査看。例如:

[root@localhost -]# man -f ls
ls(1) - list directory contents
#可以看到ls命令只擁有1級別的幫助


ls 是一個比較簡單的 Linux 命令,所以只有 1 級別的幫助。我們再査看一下 passwd 命令(給使用者設定密碼的命令)的幫助:

[root@localhost ~]# man -f passwd
passwd (1) - update user's authentication tokens
#passwd命令的幫助
passwd (5) - password file
#passwd組態檔的幫助
passwd[sslpasswd] (1ssl) - compute password hashes
#這裡是SSL的passwd的幫助,和passwd命令並沒有太大關係


passwd 是一個比較複雜的命令,而旦這個命令有一個相對比較複雜的組態檔 /etc/passwd。所以系統既給出了 passwd 命令的幫助,也給出了 /etc/passwd 組態檔的幫助。大家可以使用如下命令檢視:

[root@localhost ~]# man 1 passwd
#檢視passwd命令的幫助
[root@localhost ~]# man 5 passwd
#檢視/etc/passwd配件的幫助

至於 useradd 和 passwd 命令,我們會在後續章節中詳細講解,這裡只是用這個例子說明 man 命令的不同幫助級別。

man 命令還有一個"-k"選項,它的作用是査看命令名中包含指定字串的所有相關命令的幫助。例如:

[root@localhost ~]# man -k useradd
luseradd(1) - Add an user
useradd(8) - create a new user or update default new user information
useradd [adduser] (8) - create a new user or update default new user information
useradd_selinux (8) -Security Enhanced Linux Policy for the useradd processes
#這條命令會列出系統中所有包含useradd字串的命令,所以才會找到一些包含"useradd"字串,但是和我們要査找的useradd無關的命令。

如果我們使用"man-k ls"命令,則會發現輸出內容會多出幾頁,那是因為很多命令中都包含"ls"這個關鍵字。這條命令適合你只記得命令的幾個字元,用來査找相關命令的情況。

在系統中還有兩個命令。

  • whatis:這個命令的作用和 man -f 是一致的。
  • apropos:這個命令的作用和 man -k 是一致的。

不過這兩個命令和 man 基本一致,所以了解就好。不過 Linux 的命令很有意思,想知道這個命令是幹什麼的,可以執行 whatis 命令;想知道命令在哪裡,可以執行 whereis 命令;想知道當前登入使用者是誰,可以執行 whoami 命令。

如果執行以上兩個命令報錯,那是因為 whatis 資料庫沒有建立。只要手工執行以下命令,重新建立 whatis 資料庫即可。


IT145.com E-mail:sddin#qq.com