GB | BIG5
|
| 首頁 > 系統管理 > 其它 > 正文 |
 |
| 中文man手冊:man - 格式化顯示 man pages |
| 本文出自:http://www.cmpp.net 作者: (2001-09-21 09:00:00) |
MAN
Section: Linux linux 程序員手冊
(7) Updated: 16 June 1999
命令名
man - 格式化顯示 man pages
總覽
groff -Tascii -man
file
...
groff -Tps -man
file
...
man
[section]
title
描述
本手冊頁對 groff tamc.an 宏命令包以及創建包含這些宏命令的手冊頁
(man pages)的有關約定作一些說明。
本手冊用幫助開發人員創建或發布 linux 手冊頁(linux man pages)。
本手冊與其他版本的兼容性良好,
所以發布不會是個問題
(除非包含 net-2 BSD 版本,它使用完全不同的宏命令包(叫做 mdoc),
您可以察看 mdoc(7) 獲取更詳細的說明)。
不過使用 man -mdoc xxxx 也可以察看 mdoc 格式的文件。
而且我們推薦您使用該參數,因為他會自動檢查文件所使用的宏命令的類別。
導言
手冊頁中的第一個命令一般是:
其中:
-
- 標題
-
手冊頁的標題(通常與命令名相同)(比如: MAN)。
- 章節號
-
手冊頁的章節號(比如: 7 )
- 日期
-
最更新日期 -- 要記得每次更新都把日期改為最新,
這也是進行版本控制 的好方法。
- 資源 ???
-
(MISSING SOME PARTS)
手冊名 手冊名(比如: Linux Programmer's Manual(Linux 程序員手冊))。
注意 BSD mdoc 格式的頁以 Dd 命令開始,而不是 .TH 命令。
手冊的各章節內容通常如下規定:
(一個手冊可以有好幾節,比如 man(1)、man(7)等,
可分別用 man 1 man 、 man 7 man來察看。)
-
- 1 命令
-
命令的使用方法,可以使用的參數等。
- 2 系統調用
-
只有系統才能執行的函數
- 3 庫調用
-
大多是 libc 函數,如 qsort(3)
- 4 特殊文件
-
文件在
/dev
中。
- 文件的格式,比如
-
/etc/passwd
及其他可讀文件。
- 6 遊戲
-
- 7 宏命令包和約定
-
一些描述,關標準文件系統設計、網絡協議,ASCII 和 其他字符編碼、man page
(手冊頁)和其他。
- 8 系統管理命令
-
諸如 mount(8) 之類的命令,多數只有 root 可以執行。
- 9 內核程序
-
這個章節幾乎不用了。
原來曾想把一些關核心的文件放在這裡,
但是實際上只有極少數可以寫成文件放在這裡,而且它們也很快過時了。
核心開發者可以找到其他更好的資源。
段
段以 .SH 開始,跟標題。
如果標題包含空格並且和 .SH 在同一行,則需在標題上加雙引號。
約定(推薦使用)的標題包括:
NAME(命令名),SYNOPSIS(總覽),DESCRIPTION(描述),
RETURN VALUE (or RETURN VALUES)(返回值),
EXIT STATUS(退出狀態),ERROR HANDLING(錯誤處理),
ERRORS(錯誤),OPTIONS(選項),
USAGE(用法),FILES(文件),ENVIRONMENT(環境),
DIAGNOSTICS(診斷),SECURITY(安全),
CONFORMING TO(遵循),NOTES(注意事項),BUGS(已知漏洞),
AUTHOR(作者),和 SEE ALSO(參見).
在適合使用約定標題的地方,請使用他;
這樣做可以使文章更易讀、易懂。
不過,只要您的標題能夠增加易懂性,請放心使用。
唯一必須的標題是 NAME(命令名),他應是手冊頁的第一段,
面應緊跟對該命令的簡單描述。比如:
.SH NAME 命令名 chess - the game of chess
請一定要按照這個格式來寫,注意在短橫線(-)前要有個斜槓()。
這種語法結構在 makewhatis(8)程序中為
whatis(1) 和 apropos(1) 建立簡短命令描述時要用到。
其他約定段的內容應為:
- 總覽
-
簡要描述命令或函數接口。
對命令,顯示他的命令和參數(包括各種選項);黑體表示各種參數,
下劃線(或斜體字)表示可以替換的選項;
方括號[]中的是可選項,豎線 | 用把幾個選項間隔開,
小括號()中的部分可以自動重復。
對函數,顯示需要的數據聲明或需包含的項目,跟函數聲明。
- 描述
-
解釋命令、函數或格式的用途。
說明其如何與文件及標準輸入交互,他們的標準輸出及標準錯誤。
必須要指明的細節。描述一般情況。
選項和參數信息放在 OPTIONS(參數)段。
如果有語法說明和一些復雜的設定,
建議把它們放到 USAGE(用法)段(本段中可寫一個概要)。
- 返回值
-
列出程序或函數會返回的值,指出引發返回值的條件或原因。
- 退出狀態
-
列出可能的退出狀態的值,指出引起返回的程序或原因(可以與“返回值”段合並)。
- 參數
-
指出程序可用的參數,及其作用。
- 用法
-
描述程序的較高級的使用方法。
- 文件
-
列出程序或函數使用到的文件,
比如配置文件、啟動文件和程序直接操作的文件。
給出文件的絕對路徑,
使用安裝程序調整這些路徑以使其與用戶的實際情況相符。
對大多數程序來說,缺省的安裝路徑是 /usr/local,
所以你的文件要與此一致。
- 環境
-
列出影響你的程序的所有環境變量,並說明影響的原因。
- 診斷
-
寫出常會出現的錯誤概述,並說明解決的辦法。
你無需解釋系統錯誤信息或信號,
除非它們會影響到您的程序。
- 安全
-
討論安全問題和相關話題。對應予避免的配置和環境,
可能有安全隱患的命令等等給出警告,
特別是當它們不是很明顯時。
單獨用一段來討論安全並不必要;如果比較好理解的話,把它放在其他段中
(比如 描述 或 用法 段)。但是,不能不寫。
- 約定
-
描述該程序的標準和約定(或是習慣用法)。
- 已知漏洞
-
列出局限、已知的缺點或不便之處,還有其他可能存在的問題。
- 作者
-
列出程序或文件作者,聯系辦法等。
- 參見
-
以字母順序列出相關的手冊頁(man pages)。通常來講,這是一個手冊頁的最一段。
字體
雖然在 UNIX 世界中有各種對手冊頁(man pages)的不同約定,
但在 linux 系統下存在一個字體的標準:
對函數,其參數通常用下劃線(或斜體),
在總覽(SYNOPSIS)中也是這樣,其他部分用黑體。
文件名用下劃線(或斜體),但在總覽(SYNOPSIS)中不是,
包含的文件用黑體(如: #include )。
專用宏,一般大寫表示,用黑體(如: MAXINT)。
列舉錯誤代號時,代號用黑體(這種列舉通常使用 .TP 宏命令)。
對其他手冊頁的引用(或本頁中某主體的引用)用黑體。
手冊章節號用普通體(如: man(7)).
設置字體的宏命令如下:
- .B
-
黑體
.BI
黑體和下劃線(或斜體)交替(描述函數時非常有用)
.BR
黑體和普通體交替(描述引用時非常有用)
.I
下劃線(或斜體)
.IB
下劃線(或斜體)和黑體交替
.IR
下劃線(或斜體)和普通體交替
.RI
普通體和下劃線(或斜體)交替
.SB
小號字和黑體交替
.SM
小號字(用縮寫)
按照慣例,每個命令最多可以有六個小節的參數,
但是 GNU 去除了這個限制。小節之間以空格隔開。
如果某小節含有空格,則需要給其加上雙引號。
各小節在顯示時無間隔,所以 .BR 命令可以指定一個黑體的詞,
跟一個普通體的標點。如果命令無參數,則命令作用下一行。
其他宏命令和字符串
下面是其他一些相關的宏和預定義的字符串。
除非指明,否則所有的宏在本行文本結束時終止。
多數宏使用“流行縮進”(prevailing indent)方式。
“流行縮進”的值由緊跟著宏命令的 i 值指定,
如果不指定,那就會使用當前的“流行縮進”值。
這樣,連續的縮進段就可使用相同的縮進值而不需要重新指定。
普通段(不縮進)將“流行縮進”值重值為缺省值(0.5 英寸)。
缺省時,縮進是有規則的 en(s):用 en(s) 或者 em(s) 作為縮進的單位,
因為它們會自動地調整字體的大小。
(注:度量距離有不同的單位,當請求需要用到不同的距離時,可以使用默認
類型來修飾數字,度量單位是英寸,厘米,pica,en,em,點,unit和垂直行距。
1pica等1/6英寸,1em等字母m的寬度,默認寬度取決troff中使用
的字體。En是em的一半。)
其他宏命令定義如下:
普通段(無縮進)
- .LP
-
與
.PP
相同(開始一個新段)
.P
同上
.PP
開始一個新段,重置“流行縮進”值。
相對縮進
-
-
開始相對縮進 -- 把左邊界右移 i (如果不指定 i 值,則使用“流行縮進”值 )。
同時設定“流行縮進”值為 0.5 英寸。
直到使用
.RE結束這些設定。
- .RE
-
結束相對縮進同時把“流行縮進”恢復原值。
縮進
- .HP i
-
開始懸掛式縮進(段的第一行從左邊揭開時,其余縮進顯示)
- .IP x i
-
在段上標簽 x 。如果不指定 x ,則整個段縮進 i。
如果指定了 x ,則 x 之前的段不縮進,
之的段縮進(有些象 .TP,不過 x 是跟在命令面而不是在下一行)。
如果 x 太長,面的文本會挪到下一行
(文本不會丟 失或割斷)。
做公告列表,可以用
.IP * (bullet) 或 .IP --- (em dash) 要用數字或字母列表
時,可以用 .IP 1. 或 .IP A. ,他們會轉換成其他 格式。
- .TP i
-
在段上懸掛標簽。標簽在下一行指定,但是結果和 .IP 相像。
超文本鏈接宏
- .UR u
-
建立一個超文本鏈接到 URI(URL)
u;
並以
UE
結束。當轉換為 HTML 格式時,他會轉換為 <A HREF="u">。
有個例外:如果 u 是“ :”,則之不能建立任何超級鏈接,
直到以 UE 結束(這用來在不需要超級鏈接時禁止他)。
這個宏比較新,很多程序可能並不對他進行處理。
<A NAME="u" id="u"> </A>
雜項宏
- .DT
-
重置 tab 值為缺省(每一個0.5英寸)。不引起中斷。
- .IX ...
-
插入索引信息(方便搜索系統工作,或打印索引列表)。
在頁中索引信息不能正常顯示。
如果只有一個參數,
參數作為獨立的索引項指向手冊頁的內容。
如果有兩個參數,他可能是 Perl 手冊頁格式;
第一個參數指定類型名
(命令名,標題 ,題頭,子段貨源素之一),
第二個參數指明自己的索引名。
另外,長索引形式:每個參數是一個索引項,
次級索引項,再次級索引項,等等直到以空參數結束,
然是程序名參數,\m,還有一小段描述。
還可能在跟上一個空參數,有可能是頁控制信息
(如: PAGE START)。舉例如下:
"programmingtools""make""""make--- build programs".
- .PD d
-
在段中間垂直距離空開 d (如果不指定,則缺省為 d=0.4v),不引起中斷。
- .SS t
-
子標題 t (象是
.SH,
但是作為段中的字標題使用)
預定義字符串
- \*R
-
注冊符號
- \*S
-
改變成缺省字體大小
- \*(Tm
-
商標符號
- \*(lq
-
左雙引號
- \*(rg
-
右雙引號
安全子集
理論上 man 是一個 troff 宏命令包,
實際上很多工具程序沒有支持所有的 man 宏命令。
因此,為了這些程序可以正常工作最好忽略 troff 的一些比較另類的宏。
避免使用各種不同的 troff 預處理程序
(如果必須的話,用 tbl(1)吧
但是在建立雙列表時請使用 IP 和 TP 命令)。
避免使用計算;大多數其他程序不能處理他。
使用簡單的命令比較容易轉換為其他格式。
下面的宏命令一般認為是安全的(雖然多數時候他們都被忽略了):
\", . , ad , bp , br , ce ,
de, ds, el , ie , if , fi ,
ft, hy, ig , in , na , ne ,
nf, nh, ps , so , sp , tr .
你還可能使用 troff 轉義字符(這些轉移符號以 \ 開始)。
但你要在文本中顯示反斜線時,用\。
其他轉義字符包括:
\' ,\` ,\- ,\. ,\" ,\% ,\*x ,\*(xx ,
\(xx ,\$N ,\nx,
\n(xx ,\fx,\f(xx。
其中 x、xx 是任意字符,N 是任意數字不要使用轉義字符來畫圖。
不要隨意使用 bp(break page(中斷頁))。
sp(vertical space(垂直距離)只應使用正值。
不要用(de(define(定義)))定義與現有的宏同名的宏(無論 man 或 mdoc);
這種重新定義可能會被忽略。
每個正縮進應對應一個負縮進(即使在使用 RS 和 RE 是也不例外)。
可以使用的只有可忽略的轉換(tr).
改變字體命令(ft 和 \f)只能帶如下參數:
1,2,3,4,R,I,B,P,CW
(ft 命令也可以不帶參數)。
如果你是用更多的功能,用各種程序仔細察看一下結果。
如果你肯定某功能是安全的,請告訴我們,以便把他增加到這個列表中。
注意事項
盡量在文本中包含完整的 URL(或URIs);
一些工具軟件(如:man2html(1))能夠自動把它們轉換為超級鏈接。
您也可用 UR 命令指定鏈接到相關信息。
輸入完整的 URL(如: )。 以(.)或(')開始一行,
表明是基 troff 的文件(如: man 或 mdoc)。
如果是(<)表明基 SGML/XML (如:HTML 或 Docbook).
其他可能是純文本。
有些 man 以'\"和空格再加字符列開始,表示他的預處理方法。
為了 troff 翻譯器程序處理起來簡單一些,
您僅應使用 tbl(1) 而不是其他什東東,Linux 可以檢測到這一點。
不過,你或許想要包含這些信息以使其可以在其他系統得到處理。
下面是預處理調用的定義:
e eqn(1) g grap(1) p pic(1) r refer(1) t tbl(1) v vgrind(1)
文件
/usr/local/lib/groff/tmac/tmac.an
/usr/man/whatis
已知漏洞
大多數宏命令描述的是格式(比如:字體和空格)而不是內容描述
(比如: 這段文字指向另外一頁),
與 mdoc 和 DocBook 正好相反(HTML 也有比較多的內容描述)。
這使得 man 難以轉換為其他形式,
不容易與其他文件組合或自動插入交叉引用。
遵照以上的安全說明,就比較容易在將來把他轉換為其他格式。
Sun 的 macro TX 下不能用。
作者
- ---
-
James Clark (jjc@jclark.com) wrote the implementation of the macro package.
- ---
-
Rickard E. Faith (faith@cs.unc.edu) wrote the initial version of this manual page.
- ---
-
Jens Schweikhardt (schweikh@noc.fdn.de) wrote the Linux Man-Page Mini-HOWTO (which influenced this manual
page).
- ---
-
David A. Wheeler (dwheeler@ida.org) heavily modified this manual page, such as adding detailed information on sections
and macros.
參見
apropos(1), groff(1), man(1), man2html(1), mdoc(7), mdoc.samples(7), whatis(1).
[中文版維護人]
姓名:RedCandle E-mail:redcandle51@chinaren.com
[中文版最新更新]
2000年11月06日
(http://www.fanqiang.com)
進入【UNIX論壇】
|
|
| 相關文章 |
關man的問題 (2001-08-02 15:00:01)
|
|
|
|
 |
★ 樊強制作 歡迎分享 ★ |