線上手冊

Unix或类Unix操作系统的软件文档

線上手冊(英語:man pageManual pages的縮寫)是指在Unix或類Unix作業系統中查詢指令使用手冊,用戶可以執行man命令查詢指令用法。簡體中文直譯為手册页,臺灣繁體中文翻譯為使用手冊線上手冊。在Unix類Unix作業系統中有非常多的指令,通常用戶(甚至是資深的系統管理者)都無法記住每個指令的詳細使用方式,尤其是那些有非常多參數可以用的指令,就算是天天在用的-ls,可能也不是很清楚它所有的參數如何使用。所幸一般 UNIX/Linux 系統中的指令都會附帶相關的線上說明手冊(Manual pages,簡稱 man page),提供用戶查詢與參考,內容包括電腦程式函數庫系統呼叫)。[1][2][3]

man 指令使用手冊


用法

為查閱某個Unix命令的線上手冊,用戶可以在命令列介面執行如下命令:[4]

man <command_name>
#範例:查詢 cal(calendar) 指令用法。
[user101@twfo-mdc ~]$ man cal
CAL(1)                    BSD General Commands Manual                   CAL(1)

NAME
     cal - displays a calendar

SYNOPSIS
     cal [-smjy13] [[month] year]

DESCRIPTION
     Cal displays a simple calendar.  If arguments are not specified, the cur-
     rent month is displayed.  The options are as follows:

     -1      Display single month output.  (This is the default.)

     -3      Display prev/current/next month output.

     -s      Display Sunday as the first day of the week.  (This is the
             default.)

     -m      Display Monday as the first day of the week.

     -j      Display Julian dates (days one-based, numbered from January 1).

q     -y      Display a calendar for the current year.

     A single parameter specifies the year (1 - 9999) to be displayed; note
     the year must be fully specified: “cal 89 will not display a calendar
     for 1989.  Two parameters denote the month (1 - 12) and year.  If no
     parameters are specified, the current month's calendar is displayed.

     A year starts on Jan 1.

     The Gregorian Reformation is assumed to have occurred in 1752 on the 3rd
     of September.  By this time, most countries had recognized the reforma-
     tion (although a few did not recognize it until the early 1900's.)  Ten
     days following that date were eliminated by the reformation, so the cal-
     endar for that month is a bit unusual.

HISTORY
     A cal command appeared in Version 6 AT&T UNIX.

OTHER VERSIONS
     Several much more elaborate versions of this program exist, with support
     for colors, holidays, birthdays, reminders and appointments, etc. For
     example, try the cal from http://home.sprynet.com/~cbagwell/projects.html
     or GNU gcal.

BSD                              June 6, 1993                              BSD


例如,「man ftp」。為了方便用戶查閱輸出的資訊,man命令一般會提供一個Less終端機分頁檢視程式英語Terminal pager

按慣例,man頁面可以按照「程式名(區段)」的標記來查閱:例如ftp。相同的線上手冊標記可能出現在多個不同的區段(section)中,例如相同的名字在系統呼叫、用戶命令Troff[註 1]中重複出現的時候。比如manman,以及exitexit

訪問非預設線上手冊區段的語法在不同的軟件實現中是不一樣的。例如,在Solaris中,閱讀printf的語法為:

man -s 3c printf

Linux和類BSD系統中,相同的命令語法為:

man 3 printf

此命令在線上手冊的第3區段中搜尋「printf」的資訊。


歷史

 
xman,一個早期的X11應用,用於檢視線上手冊
 
在文字控制台中顯示的OpenBSD intro第8區段的線上手冊

UNIX程式設計師手冊頁面存檔備份,存於互聯網檔案館)》1971年11月3日第一次出版。1971年,在主管道格拉斯·麥克羅伊的堅持下,丹尼斯·里奇肯·湯普遜編寫了第一份實際意義上的線上手冊。除了線上手冊,《UNIX程式設計師手冊》還彙整了一些簡短的論文,其中一部分是教程英語Tutorial(例如Unix的一般用法、C語言,以及Yacc等工具),另一部分是對作業系統功能的更詳細的說明。手冊的印刷版最初裝在一個活頁夾中,但PWB/UNIX英語PWB/UNIXResearch Unix第七版的手冊被分為兩卷,印刷版的線上手冊成為了其第1卷。[5]

Unix或類Unix作業系統線上手冊是用troff軟件套件排版的,是一組-man巨集。當時,線上手冊系統帶來的連線文件可用性被認為是一項偉大的進步。時至今日,幾乎所有的Unix命令列應用程式都附帶了線上手冊,而很多Unix用戶將缺少線上手冊視為低質素應用程式的一個標誌。事實上,有些專案(如Debian)不辭勞苦的為缺乏線上手冊的應用編寫線上手冊;4.4BSD的現代繼任者也將線上手冊作為系統文件的主要形式之一(將舊的-man巨集用新的-mdoc巨集取代)[註 2]

幾乎沒有什麼替代品能像man那樣流行,只有GNU計劃info英語Texinfo系統[註 3]可能是個例外。] 此外,一些Unix圖形化使用者介面應用程式(尤其是那些使用GNOMEKDE開發環境構建的)現在提供的HTML版本的終端使用者手冊,並包含內嵌的HTML閱讀器,如Yelp,以供閱讀應用程式中的說明文件。

Unix或類Unix作業系統線上手冊通常是用英文寫的,在某些系統上可能有翻譯成其他語言的版本。

線上手冊的預設格式是troff,使用-man巨集軟件套件英語Troff macros(着重展現)或-mdocmandoc英語mandoc巨集軟件套件(着重語意)。可以把線上手冊排版成PostScriptPDF和其他各種格式進行檢視或列印。

大多數Unix系統有一個man2html命令的軟件套件,該命令允許用戶使用HTML瀏覽器瀏覽線上手冊(例如,FreeBSD的textproc/man2html,或某些Linux發行版中的man)。

2010年,OpenBSD宣佈淘汰troff,改用mandoc英語mandoc[註 4]展示線上手冊。

手冊區段

Research UnixBSDOS XLinux中,手冊通常被分為8個區段,安排如下:

區段 說明
1 一般命令
2 系統呼叫
3 函數庫函數,涵蓋C標準函式庫
4 特殊檔案(通常是/dev中的裝置)和驅動程式
5 檔案格式和約定
6 電子遊戲螢幕保護裝置
7 雜項
8 系統管理命令守護行程

Unix System V採用了類似的編號方案,但順序不同:

區段 說明
1 一般命令
1M 系統管理命令守護行程
2 系統呼叫
3 C函式庫函數
4 檔案格式和約定
5 雜項
6 電子遊戲螢幕保護裝置
7 特殊檔案(通常是/dev中的裝置)和驅動程式

在某些系統中還有下述的區段可用:

區段 描述
0 C函式庫標頭檔
9 內核常式
n Tcl/Tk關鍵字
x X Window系統

一些區段利用字尾進一步細分了。例如在一些系統中,區段3C是C函式庫呼叫,3M是數學(Math)函式庫,等等。這樣做的結果是區段8(系統管理命令)有時也被移動到區段1M(作為命令區段的子區段)。一些子區段字尾有跨區段的一般含義:

子區段 說明
p POSIX規範
x X Window系統文件

佈局

所有的線上手冊遵循一個常見的佈局,其為通過簡單的ASCII文字展示而最佳化,而這種情況下可能沒有任何形式的突顯或字型控制。一般包括以下部分內容:

NAME(名稱)
該命令或函數的名稱,接着是一行簡介。
SYNOPSIS(概要)
對於命令,正式的描述它如何執行,以及需要什麼樣的命令列參數。對於函數,介紹函數所需的參數,以及哪個標頭檔包含該函數的定義。
DESCRIPTION(說明)
命令或函數功能的文字描述。
EXAMPLES(範例)
常用的一些範例。
SEE ALSO(參見)
相關命令或函數的列表。

也可能存在其他部分內容,但這些部分沒有得到跨線上手冊的標準化。常見的例子包括:OPTIONS(選項),EXIT STATUS(退出狀態),ENVIRONMENT(環境),BUGS(程式漏洞),FILES(檔案),AUTHOR(作者),REPORTING BUGS(已知漏洞),HISTORY(歷史)和COPYRIGHT(著作權)。

使用線上手冊

參考:archlinux社區的使用線上手冊頁面存檔備份,存於互聯網檔案館

備註

  1. ^ 原編輯譯名用『宏軟件套件』,因為「巨集」(英語:Macro)的中國大陸常用別名是「宏」
  2. ^ 「宏」是「巨集」(英語:Macro)的中國大陸常用別名
  3. ^ Texinfo是一個早期的、簡單的超文字系統。
  4. ^ mandoc是專用於線上手冊的編譯器/格式化程式,原生支援輸出到PostScriptHTMLXHTML終端

參見

參考文獻

  1. ^ man page. dywang.csie.cyut.edu.tw. [2023-11-03]. (原始內容存檔於2023-03-29). 
  2. ^ 中文 man 手册页计划. man-pages-zh. 2023-10-31 [2023-11-03]. (原始內容存檔於2023-11-27). 
  3. ^ 簡介. dywang.csie.cyut.edu.tw. [2023-11-03]. (原始內容存檔於2023-11-03). 
  4. ^ 命令列基本操作. dywang.csie.cyut.edu.tw. [2023-11-03]. (原始內容存檔於2023-03-29). 
  5. ^ Darwin, Ian; Collyer, Geoffrey. UNIX Evolution: 1975-1984 Part I - Diversity. [2012-12-22]. (原始內容存檔於2012-07-17).  Originally published in Microsystems 5(11), November 1984.

外部連結