1.命令簡介
man(manual) 命令用於查看命令幫助、配置文件幫助和編程幫助等信息。
Linux 提供了豐富的命令以及幫助手冊,當需要了解某個命令的作用及用法時,可以使用 man 查看一下其幫助手冊,同時也可以使用 man man 查看 man 命令的使用方法。當需要了解與編程相關的系統調用以及庫函數的用法時,也可以通過 man 查看接口的幫助手冊。此外,系統相關的配置文件的介紹也可以通過 man 來查看。
man 可以查詢不同類型的幫助手冊,當目標存在多個不同類型的幫助手冊時,我們可以指定要查找的手冊類型,也可以不指定,此時 man 會搜索所有類型的幫助手冊,但是隻會按照預定義的順序展示第一個。預定義的順序可以使用環境變量 $MANSECT 或配置文件 /usr/local/etc/man_db.conf 中的 SECTION 指令指定,默認爲:
1 8 3 2 5 4 9 6 7
幫助手冊分爲多種類型,即不同的 section,主要有:
1 可執行程序或 Shell 命令
1p 可執行程序或 Shell 命令(POSIX 版)
2 系統調用(內核提供的函數)
3 庫調用(程序庫中的函數)
4 特殊文件(通常在/dev中找到)
5 文件格式和約定,如 /etc/passwd
6 遊戲
7 雜項(包括宏包和約定),例如 man(7)、groff(7)
8 系統管理命令(通常只針對 root 用戶)
9 內核相關文件[非標準]
幫助手冊約定內容包括:
NAME 名稱
SYNOPSIS 簡介
CONFIGURATION 配置
DESCRIPTION 描述
OPTIONS 選項
EXIT STATUS 退出碼
RETURN VALUE 返回值
ERRORS 錯誤
ENVIRONMENT 環境變量
FILES 相關文件
VERSIONS 版本
CONFORMING TO 遵循的規則
NOTES 注意事項
BUGS 缺陷
EXAMPLE 示例
AUTHORS 作者
COPYRIGHT 版權
SEE ALSO 拓展閱讀
HISTORY 維護歷史
在表現形式上,手冊遵循如下規則:
粗體內容:重點關鍵詞
斜體內容:待替換內容。因爲終端渲染問題,一般使用下劃線或彩色文本替代斜體
[-abc]:中括號內的選項或內容是可選的
-a|-b:被 | 分隔的選項是多選一,不能一起使用
...:三個點號表示重複
2.命令格式
man [OPTION]... [[SECTION] PAGE]...
man 可以不跟任何選項與參數,會輸出如下提示信息:
What manual page do you want?
3.選項說明
閱讀下面的選項說明,需要注意以下幾點:
(1)沒有參數的選項可以重複出現,有參數的選項如果重複出現,後面選項的參數將會覆蓋前面的參數;
(2)長選項的必填參數對於短選項也是必須的。
一般選項:
-C, --config-file=FILE
使用指定的用戶配置文件而不是默認的 ~/.manpath
-d, --debug
打印 debug 信息
-D, --default
此選項通常作爲第一個選項,將 man 的行爲重置爲默認行爲。它的用途是重置那些可能已經在 $MANOPT 中設置的選項。在 -D 後面的選項會正常生效
--warnings[=WARNINGS]
啓動來自 groff 的告警。groff 是 GNU 版 troff,是文字排版工具
主要操作模式:
-f, --whatis
等同於 whatis 命令,顯示手冊頁中的簡短說明(如果可用),詳見 whatis(1)
-k, --apropos
等同於 apropos 命令,按照關鍵字搜索手冊頁中的簡短描述並顯示任何匹配,詳見 apropos(1)
-K, --global-apropos
在所有手冊頁中搜索文本。這是蠻力搜索,可能需要一些時間,如果可以,應該指定一個 section 來減少需要搜索的手冊頁數量
-l, --local-file
激活本地模式。格式化和顯示本地手冊文件,而不是通過搜索系統的手冊集
-w, --where, --path, --location
不顯示手冊頁內容,輸出手冊的位置
-W, --where-cat, --location-cat
不顯示手冊頁內容,輸出 cat 文件的位置
-c, --catman
此選項不用於一般用途,只能由管理員命令 catman 使用
-R encoding, --recode=encoding
以指定編碼輸出手冊內容
尋找手冊頁:
-L, --locale=LOCALE
man 通常通過調用 C 函數setlocale(3)來確定當前的語言環境,該函數詢問各種環境變量,可能包括 $LC_MESSAGES 和 $LANG。該選項可以臨時改變 man 的語言環境
-m, --systems=SYSTEM[,...]
訪問其他系統的手冊頁集,可指定多個不同的系統
-M, --manpath=path
指定手冊頁的路徑。該選項將會覆蓋環境變量 $MANPATH 且使 man 忽略選項 -m 選項
-S, -s, --sections=LIST
指定 man 搜索的手冊頁類型列表,使用冒號或逗號分隔,man 將按照給定的順序進行搜索。該選項將覆蓋環境變量 $MANSECT
-e , --extension=SUB-EXTENSION
將搜索限制在擴展類型爲 SUB-EXTENSION 的手冊頁之內
-i, --ignore-case
搜索手冊頁時忽略大小寫(默認)
-I, --match-case
搜索手冊頁時大小寫敏感
--regex
以正則表達式搜索手冊頁並顯示所有匹配的手冊頁
--wildcard
以通配符搜索手冊頁並顯示所有匹配的手冊頁
--names-only
當使用選項 --regex 或 --wildcard 時,只搜索手冊頁的 NAME 部分,不搜索 DESCRIPTION 部分
-a, --all
顯示所有匹配的手冊頁而不是僅顯示第一個匹配的手冊頁
-u, --update
該選項導致 man 對其數據庫緩存執行 inode 級別的一致性檢查,以確保它們是文件系統的準確表示。只有安裝了設置了 setuid 位的 man 纔會產生有用的效果
--no-subpages
出線成對的手冊頁名時,第二個手冊頁名作爲單獨的手冊頁名,而是不第一個手冊頁的子手冊頁。比如有些命令存在子命令,例如 git
控制格式化輸出:
-P, --pager=PAGER
指定瀏覽手冊頁的工具,man 默認使用 less -s。該選項覆蓋 $MANPAGER 環境變量,後者又覆蓋 $PAGER 環境變量。它不與 -f 或 -k 連用
-r, --prompt=PROMPT
如果使用 less 作爲手冊頁的瀏覽工具,man 將嘗試設置其提示和一些合理的選項。默認提示爲 Manual page name(sec) line x
-7, --ascii
使用 ASCII 字符瀏覽手冊頁
-E, --encoding=ENCODING
使用指定編碼輸出手冊也內容
--no-hyphenation, --nh
換行處不使用連字符
--no-justification, --nj
不調整字距離以鋪滿整行
-p, --preprocessor=STRING
指定在 nroff 或 troff/groff 之前運行的預處理程序的順序
-t, --troff
使用 groff -mandoc 將手冊頁格式化爲標準輸出。給定 -H、-T 或 -Z 不需要此選項
-T, --troff-device[=DEVICE]
此選項用於更改 groff(或 troff)的輸出設備,使其適合於默認設備之外的設備
-H, --html[=BROWSER]
此選項將導致 groff 生成 HTML 輸出,並將在 web 瀏覽器中顯示該輸出
-X, --gxditview[=DPI]
使用 gxditview 程序在圖形窗口中顯示 groff 的輸出。DPI(點/英寸)可能是 75、75-12、100 或 100-12,默認爲 75
-Z, --ditroff
groff 將運行 troff,然後使用適當的後處理器生成適合所選設備的輸出。如果 groff 表示 groff -mandoc,那麼 該選項將抑制 groff 使用後處理器
獲取幫助:
-?, --help
輸出幫助並推出
--usage
打印一個簡短的用法並退出
-V, --version
輸出版本並退出
實際上,日常使用 man 時很少會用到 man 的選項,最常用的是指定手冊類型和手冊名:
man SECTION PAGE
4.交互式命令
由於 man 默認使用 less 作爲手冊的瀏覽工具,這裏給出 less 常用的瀏覽導航交互式命令。如果忘記命令,可以鍵入 h 或 H 查看命令的幫助信息。
ENTER 向前滾動一行
y 向後滾動一行
d 向前滾動半屏
u 向後滾動半屏
f 向前滾動一屏
b 向後滾動一屏
g 跳轉到文件首行
G 跳轉到文件末行
/PATTERN 向前搜索指定內容
n 跳轉到下一個匹配項
N 跳轉到前一個匹配項
h 顯示幫助信息
q 退出
5.常用示例
(1)查看用戶命令 man 的幫助手冊。
man man
# 或
man 1 man
如果想查看 POSIX 版本的命令幫助手冊,指定 SECTION 爲 1p 即可。
man 1p man
(2)查看系統調用 read 的幫助手冊。
man 2 read
(3)查看庫函數 printf 的幫助手冊。
man 3 printf
(4)查看特殊的設備文件 tty 的幫助手冊。
man 4 tty
(5)查看用戶信息文件 /etc/passwd 格式說明。
man 5 passwd
(6)查看用於格式化手冊的宏。
man 7 man
(7)查看系統管理命令 mount。
man 8 mount
(8)查看手冊的地址而不是手冊內容,以 man 命令爲例。
man -w man
/usr/share/man/man1/man.1.gz
參考文獻
[1] man(1) manual
[2] GNU troff (Groff) — a GNU project
[3] Linux 命令(89)—— less 命令