手册页

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窗口系统

一些区块利用后缀进一步细分了。例如在一些系统中,区块3C是C函数库调用,3M是数学(Math)函数库,等等。这样做的结果是区块8(系统管理命令)有时也被移动到区块1M(作为命令区块的子区块)。一些子区块后缀有跨区块的一般含义:

子区块 说明
p POSIX规范
x X窗口系统文档

布局

所有的手册页遵循一个常见的布局,其为通过简单的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.

外部链接