一、目的
在linux的使用過程中,如果忘記某個命令的使用方法或者某個接口函數的定義,我們一般都會使用man命令;man是manual的縮寫,man命令是linux在線幫助文檔的接口;熟練掌握man命令可以幫助我們提升使用linux的能力。
本文將詳細介紹man命令的使用方法相關內容。
二、pager和section
在介紹man之前先理解兩個概念:pager和section。
pager是程序、函數的名稱,也就是待查找的程序或者函數的名稱。例如:ls(程序)、mkdir(函數)。
section是幫助文檔的分類,每個類別描述特定內容的幫助信息,目前共有8個section,每個section的含義如下:
section1、用戶程序;
section2、系統調用;
section3、庫函數調用;
section4、特定文件(通常位於/dev目錄下);
section5、文件格式;
section6、遊戲;
section7、其他項;
section8、系統管理;
一個pager可能在多個section中有描述,例如:mkdir既是程序也是系統調用,因此section1和section2中都mkdir的描述。section1側重描述mkdir程序的使用方法,而section2側重描述mkdir行參和返回值的含義。
通常情況,幫助文檔放在/usr/share/man目錄下,section1-section8分別存放在man1-man8這8個目錄中;爲了節省磁盤空間,存放的都是壓縮格式的幫助文檔。MANPATH環境變量指定了幫助文檔存放的路徑,並且使用manpath命令也可以顯示存放路徑。
如果一個pager在多個section中有描述的話,默認顯示查找到的第一個section的幫助文檔;如果想要查看指定section的幫助文檔,可以在man的命令行選項中指定section號,例如:man 2 mkdir;如果需要查看所有section的幫助文檔,可以使用-a選項,例如:man -a mkdir。
三、幫助文檔的組織結構
每個section中的幫助文檔一般包含以下內容:
1、名字(name):名稱及簡單描述;
2、概要(synopsis):語法的完整性描述;
3、配置信息(configuration):配置信息;
4、描述(description):pager的描述;
5、選項(options):命令行選項的詳細信息;
6、退出值(exit status):命令退出值;
7、返回值(return value):函數返回值;
8、錯誤(errors):錯誤描述;
9、環境變量(environment):命令相關的環境變量;
10、文件(files):相關的文件信息,例如配置文件;
11、版本(versions):版本信息;
12、遵循規則(conforming to):遵循規則描述;
13、提示信息(notes):使用提示信息;
14、漏洞(bugs):已知缺陷描述;
15、示例(example):使用樣例;
16、作者(authors):作者列表;
17、參閱(see also):相關pager列表;
以上只是建議的文檔組織結構,不需要實現全部的內容,也不需要完全按照順序編寫;同時,作者也可以根據自己的需要增加自定義的章節,例如歷史信息(history)、版權(copyright)等。
在幫助文檔的概述(synopsis)中,通常粗體表示重點內容;斜體表示使用合適的參數替換;[-abc]表示所有選項都是可選的;-a|-b表示-a和-b選項不能同時使用;...表示可以是多個內容,例如:man...表示可以pager可以是多個(man ls mkdir);同樣,find[path...]表示path可以是多個(find / .)。
四、查找原理
幫助文檔有兩種格式:文本文件和壓縮文件,壓縮文件是文本文件經過壓縮後得到的。通常,壓縮文件存儲在/usr/share/man路徑下;文件文件存儲在/var/cache/man路徑下,但是,也可以不存儲文本文件。
爲了提高查找效率,系統使用mandb命令把幫助文檔建立了一個索引文件index.db;通常索引文件存儲在/var/cache/man路徑下。在使用man命令查找pager的幫助文檔時,首先在索引文件中查找;如果查找不到,再去幫助文檔的存儲路徑下查找。
五、常用man命令選項
man命令的語法簡單描述爲:man[option] [section] pager...
option可以在命令行中指定,也可以在MANOPT環境變量中設置,並且MANOPT環境變量的優先級高於命令行,-D可以關閉MANOPT中的選項。
1、-f選項:顯示全字符匹配pager名稱的概要(synopsis)內容,相當於whatis命令;
2、-k選項:顯示部分匹配pager名稱的概要(synopsis)的內容,相當於apropos命令;
3、-K選項:顯示包含pager關鍵字的幫助文檔;
4、-l選項:顯示本地幫助文檔,而不是系統默認的幫助文檔;
5、-w選項:顯示幫助文檔(壓縮格式)的路徑;
6、-W選項:顯示幫助文檔(文本格式)的路徑;
7、-I選項:pager大小寫敏感;
8、-a選項:顯示所有section中的幫助文檔;
9、-m OS選項:顯示指定操作系統OS的幫助文檔;
10、-M path選項:顯示指定路徑path的幫助文檔;
六、總結
man命令是linux在線幫助文檔的入口,靈活掌握man可以幫助解決linux環境下遇到的大多數問題。通過使用man命令也可以增強獨立解決問題的能力,最終很大程度上提升使用linux的能力。
版權聲明:
原創作品,如非商業性轉載,請註明出處;如商業性轉載出版,請與作者聯繫。