2021-05-12 14:32:11
Linux man命令:顯示聯機幫助手冊
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。
快捷鍵 | 作 用 |
---|---|
上箭頭 | 向上移動一行 |
下箭頭 | 向下移動一行 |
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 來說明。
級 別 | 作 用 |
---|---|
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 資料庫即可。
相關文章