手册页
手册页(英語:,Manual pages的縮寫)是指在Unix或類Unix作業系統中查詢指令使用手冊,使用者可以執行man
命令查詢指令用法。簡體中文直譯為,臺灣正體中文翻譯為使用手冊、線上手冊。在Unix或類Unix操作系统中有非常多的指令,通常使用者(甚至是資深的系統管理者)都無法記住每個指令的詳細使用方式,尤其是那些有非常多參數可以用的指令,就算是天天在用的-ls
,可能也不是很清楚它所有的參數如何使用。所幸一般 UNIX/Linux 系統中的指令都會附帶相關的線上說明手冊(Manual pages,簡稱 man page),提供使用者查詢與參考,内容包括计算机程序(库和系统调用)。[1][2][3]
用法
为查阅某个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終端機分頁檢視程式。
按惯例,man页面可以按照“程序名(区段)”的标记来查阅:例如系统调用、用户命令或Troff[註 1]中重复出现的时候。比如 与 ,以及 与 。
。相同的手册页标记可能出现在多个不同的区段(section)中,例如相同的名字在访问非默认手册页区段的语法在不同的软件实现中是不一样的。例如,在Solaris中,阅读 的语法为:
man -s 3c printf
在Linux和类BSD系统中,相同的命令语法为:
man 3 printf
此命令在手册页的第3区段中搜寻“printf”的信息。
历史
《UNIX程序员手册 (页面存档备份,存于)》1971年11月3日第一次出版。1971年,在主管道格拉斯·麥克羅伊的坚持下,丹尼斯·里奇和肯·汤普逊编写了第一份实际意义上的手册页。除了手册页,《UNIX程序员手册》还彙整了一些简短的论文,其中一部分是教程(例如Unix的一般用法、C语言,以及Yacc等工具),另一部分是对操作系统功能的更详细的说明。手册的印刷版最初装在一个活页夹中,但PWB/UNIX和Research Unix第七版的手册被分为两卷,印刷版的手册页成为了其第1卷。[5]
Unix或類Unix作業系統手册页是用troff软件包排版的,是一组-man
巨集。当时,手册页系统带来的联机文档可用性被认为是一项伟大的进步。时至今日,几乎所有的Unix命令行应用程序都附带了手册页,而很多Unix用户将缺少手册页视为低质量应用程序的一个标志。事实上,有些项目(如Debian)不辞劳苦的为缺乏手册页的应用编写手册页;4.4BSD的现代继任者也将手册页作为系统文档的主要形式之一(将旧的-man
巨集用新的-mdoc
巨集取代)[註 2]。
几乎没有什么替代品能像man
那样流行,只有GNU計劃的info
系统[註 3]可能是个例外。]
此外,一些Unix图形用户界面应用程序(尤其是那些使用GNOME和KDE开发环境构建的)现在提供的HTML版本的最终用户手册,并包含内嵌的HTML阅读器,如Yelp
,以供阅读应用程序中的帮助文档。
Unix或類Unix作業系統手册页通常是用英文写的,在某些系统上可能有翻译成其他语言的版本。
手册页的默认格式是troff,使用-man
巨集软件包(着重展现)或-mdoc
mandoc巨集软件包(着重语义)。可以把手册页排版成PostScript、PDF和其他各种格式进行查看或打印。
大多数Unix系统有一个man2html命令的软件包,该命令允许用户使用HTML浏览器浏览手册页(例如,FreeBSD的textproc/man2html,或某些Linux发行版中的man)。
手册区段
在Research Unix、BSD、OS X和Linux中,手册通常被分为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(版权)。
備註
- 原編輯譯名用『宏软件包』,因為「巨集」(英語:Macro)的中國大陸常用別名是「宏」
- 「宏」是「巨集」(英語:Macro)的中國大陸常用別名
- Texinfo是一个早期的、简单的超文本系统。
- mandoc是专用于手册页的编译器/格式化程序,原生支持输出到PostScript、HTML、XHTML和终端。
参见
- Unix实用程序列表
- 九号计划应用程序列表
- info (Unix)
- RTFM
- ManOpen - NeXT/OS X图形化man实用程序
参考文献
- . dywang.csie.cyut.edu.tw. [2023-11-03]. (原始内容存档于2023-03-29).
- . man-pages-zh. 2023-10-31 [2023-11-03]. (原始内容存档于2023-11-27).
- . dywang.csie.cyut.edu.tw. [2023-11-03]. (原始内容存档于2023-11-03).
- . dywang.csie.cyut.edu.tw. [2023-11-03]. (原始内容存档于2023-03-29).
- Darwin, Ian; Collyer, Geoffrey. . [2012-12-22]. (原始内容存档于2012-07-17). Originally published in Microsystems 5(11), November 1984.