領域 | 描述 | 說明 |
1 | 用戶命令 | 可由任何人啟動的,如env、cat、man、touch文檔 |
2 | 系統調用或內核函數 | 即由內核提供的函數 如link、sethostname、mkdir |
3 | 庫程序 | 即庫函數 如acosh、asctime、btree、locale |
4 | 與設備有關的信息 | 即/dev目錄下的特殊文件 如zero null sda |
5 | 文件格式描述 | 如/etc/passwd 文件格式描述說明在這個分類下 |
6 | 游戲 | 游戲的幫助文件 |
7 | 其他 | 包括 宏命令包、慣例等如 arp、boot、regex、unix utf8 |
8 | 系統管理 | 只能由root啟動 如fdisk、fsck、renice、rpm、yum |
9 | 內核 | 用來存放內核例行程序的文檔 |
n | 新文檔 | 可能要移到更適合的領域 |
o | 老文檔 | 可能會在一段期限內保留 |
l | 本地文檔 | 與本特定系統有關的 |
如果文檔屬于那個類型的,它就放到 MANPATH/語言_區域.字符集/man[n]目錄下面。 沒有區域語言,代表是en英文文檔。就直接放到:MANPATH/man[n]下面,基本上大部分文檔都是這個下面。
舉個列子吧:
linux下面有個命令是:passwd 修改密碼信息的,每個用戶都可以調用,所以它會放到man1/目錄下面
但是同時,/etc/passwd有個保存用戶賬戶信息配置文件,它的格式及說明信息文檔,將放到/man5目錄下了。這樣按照領域(以后都叫這個了,呵呵)區分,不會出現相同名稱文件找錯的情況了。 上面提到的:1,2,3,4,5,7,8這些類型是我們經常用到的。 如果我想知道/dev/null 設備的意思,我可以到:man4這個目錄下面找了。
幫助文件格式:
剛才說了,目錄存放格式,幫助文件一樣有它的格式的。首先是命名格式:
[命令名稱.領域]:名字就是命令、函數或文件名的名稱,后面跟一個點,再跟著領域字符。如:如果passwd命令說明文檔,文件名命名是:passwd.1,加上目錄存放為:man1/passwd.1 ,如果對應passwd格式說明文檔,它將是:man5/passwd.5 。看下下面例子:
[chengmo@centos5 man5]$ ls p* pam.5.gz pam_env.conf.5.gz passwd.5.gz png.5.gz pam.conf.5.gz pam_krb5.5.gz pbm.5.gz pnm.5.gz pam.d.5.gz pam_ldap.5.gz pgm.5.gz ppm.5.gz #/usr/share/man/man5 下面所有以p開頭文件,從文件里面我們就知道它對應于那些配置文件格式說明了。 #pam.d.5.gz就是pam.d目錄結構說明 pam.5.gz是pam模塊結構說明
從這個里面看,.gz結尾,看來是通過gzip壓縮過的,linux系統為節省文檔存儲空間,自帶文檔都經過壓縮的。只是查看時候,我們需要解壓然后查看。文檔內容不會改變。
再啰嗦一下:
細心朋友一定看到個問題,上面顯示:man目錄下面結構例子里面,除了man[n]以及語言地區目錄。還有一類目錄:man1,man0p,man1p,man1x 這里說明下:
加p:表示POSIX Programmer 程序說明文檔
加x:表示x windows桌面程序說明文檔
0p:表示POSIX Programmer 一些c的頭文件庫,如:tcp.h,ulimit.h等說明文檔
man-pages文件內容格式規范
能夠快捷方便查詢linux文檔,除了目錄規范以及命名規范外。對于文檔的內容也有一個格式規范呢。
一個文本文件,又不是用word格式,基本都是ascii字符,還有什么規范?
可能朋友會這么說,是的,它確實是文本文件,編輯一個隨便的txt文件,就可以是一個linux文檔,如:你寫了個:testhellow.sh腳本,然后你寫了一段文本存為:man/man1/testhellow.1文件。這個就算一個文檔了。
你通過linux索引方法,是可以找得到的。 但是:它不是一個規范的文檔。
規范格式文檔是:
手冊頁內容 |
描 述 |
NAME |
程序或者命令的名稱、手冊節號及發布日期 |
SYNOPSIS |
怎樣調用命令,帶有所有選項和參數的完整列表 |
DESCRIPTl0N |
命令及其用法的簡短小結 |
RETURN VALUES |
程序或者庫函數返回值,以及產生特定返回值的環境 |
EXIT STATUS |
經常用來替代服TURNVALUS |
OPTIONS |
按字母順序排列的選項和參數清單,如果有的話 |
FILES |
命令使用的或者能使用的文件清單 |
USAGE |
用程序的語言說明的簡明語法,如果有的話 |
ENVIROMENT |
命令使用的或者能使用的環境變量清單 |
DIAGNOSTICS |
命令產生的錯誤信息及其解決辦法的清單 |
NOTES |
不能夠歸入其他任何一種類別下的所有信息 |
CONFORMING TO |
列出程序遵循的任何標難,比如PoSIX或ISO |
SEE ALSO |
和命令有關的交叉索引和信息 |
BUGS |
指出己知的bug和錯誤功能,以及怎樣和程序的作者聯系修正它們 |
AUTHOR |
命令的作者或者維護者的名字,可能帶有電子郵件地址或URL地址 |
規范的文檔,如果有相關描述,都會包含上面這些節點類型的。我們舉例說明下:
[chengmo@centos5 ~]$ gtbl cat.1 | gtbl | groff -Tascii -man CAT(1) User Commands CAT(1) NAME cat - concatenate files and print on the standard output SYNOPSIS cat [OPTION] [FILE]... DESCRIPTION Concatenate FILE(s), or standard input, to standard output. 省略.... EXAMPLES cat f - g 省略.... AUTHOR Written by Torbjorn Granlund and Richard M. Stallman. REPORTING BUGS Report bugs to bug-coreutils@gnu.org>. COPYRIGHT Copyright (C) 2006 Free Software Foundation, Inc. 省略.... SEE ALSO The full documentation for cat is maintained as a Texinfo manual. If 省略.... cat 5.97 March 2007 CAT(1)
這里自己解壓了一個cat.1.gz然后通過自帶命令查看文檔格式如上圖,這些你看到用到好多命令,顯示一個文檔,在下一節文檔查詢里面我們會知道原因的。
這里主要說的是linux文檔結構,包括目錄,命名,已經文檔名稱,格式等。這些不是強制的,系統也不好強制檢測你自己的文檔是否滿足。但是,你如果有自己文檔想加入系統索引,按照規定去做,才會讓以后管理不止混亂了。俗話說:無規律不成方圓。是這個理。呵呵,今天說的比較啰嗦,不知道有沒有說清楚,這次說的比較理論的,下一節實際檢索文檔方面的東西。