Print this page
Latest round of fixes per RM and AL. Fix bugs found in man.c.
*** 1,137 ****
! .\"
! .\" This file and its contents are supplied under the terms of the
! .\" Common Development and Distribution License ("CDDL"), version 1.0.
! .\" You may only use this file in accordance with the terms of version
! .\" 1.0 of the CDDL.
! .\"
! .\" A full copy of the text of the CDDL should have accompanied this
! .\" source. A copy of the CDDL is also available via the Internet at
! .\" http://www.illumos.org/license/CDDL.
! .\"
! .\"
! .\" Copyright 2012 Nexenta Systems, Inc. All rights reserved.
! .\" Copyright 2014 Garrett D'Amore <garrett@damore.org>
! .\"
! .Dd October 18, 2012
.Dt MAN 1
.Os
.Sh NAME
.Nm man
.Nd find and display reference manual pages
.Sh SYNOPSIS
.Nm
! .Op Fl alptw
! .Op Fl M Ar manpath
! .Op Fl s Ar mansect
! .Ar page ...
.Nm
! .Op Fl s Ar mansect
.Fl f
! .Ar keyword ...
.Nm
! .Op Fl s Ar mansect
! .Fl k
! .Ar keyword ...
.Sh DESCRIPTION
The
.Nm
! utility finds and displays reference manual pages.
.Pp
! Options that
.Nm
! understands:
.Bl -tag -width indent
- .It Fl M Ar manpath
- Forces a specific colon separated manual path instead of the default
- search path.
- Overrides the
- .Ev MANPATH
- environment variable.
.It Fl a
! Display all manual pages instead of just the first found for each
! .Ar page
! argument.
! .It Fl f
! Emulate
! .Xr whatis 1 .
! .It Fl k
! Emulate
! .Xr apropos 1 .
.It Fl l
! Display the location of the manual page instead of the contents of
! the manual page.
! .It Fl p
! Output current path used for searching.
! .It Fl s Ar mansect
! Restrict manual sections searched to the specified colon delimited list.
.It Fl t
! Send the content formatted as PostScript to the default printer.
.It Fl w
! Create
.Nm whatis
! databases used by
! .Xr apropos 1
! and
! .Xr whatis 1 .
.El
! .Sh ENVIRONMENT
! The following environment variables affect the execution of
! .Nm :
! .Bl -tag -width ".Ev MANPATH"
! .It Ev LC_ALL , LC_CTYPE , LANG
! Used to find locale-specific manual pages.
! .It Ev MANPATH
! Used to find the location of the manual files.
! Corresponds to the
! .Fl M
! option.
! .It Ev MANWIDTH
! Defines the width of output. If set to
! .Dq Li tty ,
! and output is to a terminal, full width of terminal is used.
! .It Ev PAGER
! Program used to display files. If unset,
! .Dq Li "less -ins"
! is used.
! .It Ev PATH
! Used to find location of manual files if
.Ev MANPATH
and
! .Fl M
! are not specified.
.El
.Sh FILES
! .Bl -tag -width indent -compact
.It Pa man.cf
! Per-manpath configuration settings. The file is formatted as follows:
! .Bd -literal -offset indent
! MANSECT=\fIsection\fR[,\fIsection\fR]...
! .Ed
! .Pp
! Each section consists of a section in the reference manual. The file
! may also contain comment blank lines or lines consisting of comments, where
! the first character in the line is `#'. Both blank lines and comment lines are
! ignored.
.El
.Sh CODE SET INDEPENDENCE
Enabled.
.Sh INTERFACE STABILITY
- The
- .Nm
- utility is
- .Nm Standard ,
- as is the
- .Fl k
- option. The other options are
.Nm Committed .
.Sh SEE ALSO
.Xr apropos 1 ,
! .Xr intro 1 ,
.Xr mandoc 1 ,
.Xr whatis 1 ,
.Xr man 5 ,
! .Xr mdoc 5 ,
! .Xr standards 5
.Sh NOTES
! Some pages may contain information which cannot be properly displayed on
! all terminals. In such cases, some information may be lost.
--- 1,401 ----
! .\" Copyright 2014 Garrett D'Amore <garrett@damore.o
! .\" Copyright (c) 2008, Sun Microsystems, Inc. All Rights Reserved.
! .\" Copyright (c) 1980 Regents of the University of California.
! .\" The Berkeley software License Agreement specifies the terms and conditions
! .\" for redistribution.
! .Dd Jul 18, 2014
.Dt MAN 1
.Os
.Sh NAME
.Nm man
.Nd find and display reference manual pages
.Sh SYNOPSIS
.Nm
! .Op Fl
! .Op Fl adFlrt
! .Op Fl T Ar macro-package
! .Op Fl M Ar path
! .Op Fl s Ar section
! .Ar name ...
.Nm
! .Op Fl M Ar path
! .Op Fl s Ar section
! .Fl k
! .Ar keyword
! .Ar ...
! .Nm
! .Op Fl M Ar path
! .Op Fl s Ar section
.Fl f
! .Ar
.Nm
! .Op Fl M Ar path
! .Fl w
.Sh DESCRIPTION
The
.Nm
! command displays information from the reference manuals. It
! displays complete manual pages that you select by
! .Ar name ,
! or one-line summaries selected either by
! .Ar keyword
! .Pq Fl k ,
! or by the name of an associated file
! .Pq Fl f .
! If no manual page is located,
! .Nm
! prints an error message.
! .Ss "Source Format"
! Reference Manual pages are marked up with either
! .Xr man 5 ,
! or
! .Xr mdoc 5
! language tags. The
! .Nm
! command recognizes the type of markup and
! processes the file accordingly.
! .
! .Ss "Location of Manual Pages"
! .
! The online Reference Manual page directories are conventionally located in
! .Pa /usr/share/man .
! Each directory corresponds to a
! section of the manual. Since these directories are optionally installed, they
! might not reside on your host. You might have to mount
! .Pa /usr/share/man
! from a host on which they do reside.
! The
! .Nm
! command reformats a page whenever it is requested.
.Pp
! If the standard output is not a terminal, or if the
! .Fl
! flag is given,
.Nm
! pipes its output through
! .Xr cat 1 .
! Otherwise,
! .Nm
! pipes its output through a pager such as
! .Xr more 1
! to handle paging and underlining on the screen.
! .Sh OPTIONS
! The following options are supported:
.Bl -tag -width indent
.It Fl a
! Shows all manual pages matching
! .Ar name
! within the
! .Ev MANPATH
! search path. Manual pages are displayed in the order found.
! .It Fl d
! Debugs. Displays what a section-specifier evaluates to, method used for
! searching, and paths searched by
! .Nm .
! .It Fl f Ar file ...
! Attempts to locate manual pages related to any of the given
! .Ar file
! names. It strips the leading path name components from each
! .Ar file ,
! and then prints one-line summaries containing the resulting basename or names.
! This option also uses the
! .Pa whatis
! database.
! .It Fl F
! This option is present for backwards compatibility and is documented
! here for reference only. It performs no function.
! .It Fl k Ar keyword ...
! Prints out one-line summaries from the
! .Pa whatis
! database (table of contents) that contain any of the given
! .Ar keyword .
! The
! .Pa whatis
! database is created using the
! .Fl w
! option.
.It Fl l
! Lists all manual pages found matching
! .Ar name
! within the search path.
! .It Fl M Ar path
! Specifies an alternate search path for manual pages. The
! .Ar path
! is a colon-separated list of directories that contain manual page directory
! subtrees. For example, if
! .Ar path
! is
! .Pa /usr/share/man:/usr/local/man ,
! .Nm
! searches for
! .Ar name
! in the standard location, and then
! .Pa /usr/local/man .
! When used with the
! .Fl k ,
! .Fl f ,
! or
! .Fl w
! options, the
! .Fl M
! option must appear first. Each directory in the
! .Ar path
! is assumed to contain subdirectories of the form
! .Pa man* ,
! one for each section. This option overrides the
! .Ev MANPATH
! environment variable.
! .It Fl r
! Reformats the manual page, checking for formatting errors, but does not
! display it.
! .It Fl s Ar section
! Specifies sections of the manual for
! .Nm
! to search. The directories searched for
! .Ar name
! are limited to those specified by
! .Ar section .
! .Ar section
! can be a numerical digit, perhaps followed by one or more letters
! to match the desired section of the manual, for example,
! .Li "3libucb".
! Also,
! .Ar section
! can be a word, for example,
! .Li local ,
! .Li new ,
! .Li old ,
! .Li public .
! .Ar section
! can also be a letter. To specify multiple sections,
! separate each section with a comma. This option overrides the
! .Ev MANPATH
! environment variable and the
! .Pa man.cf
! file. See
! .Sx Search Path
! below for an explanation of how
! .Nm
! conducts its search.
.It Fl t
! Arranges for the specified manual pages to be sent to the default
! printer as PostScript.
! .It Fl T Ar macro-package
! This option is present for backwards compatibility and is documented
! here for reference only. It performs no function.
.It Fl w
! Updates the
.Nm whatis
! database.
.El
! .Sh OPERANDS
! The following operand is supported:
! .Bl -tag -width indent
! .It Ar name
! The name of a standard utility or a keyword.
! .El
! .Sh USAGE
! The usage of
! .Nm
! is described below:
! .
! .Ss "Manual Page Sections"
! .
! Entries in the reference manuals are organized into
! .Em sections .
! A section
! name consists of a major section name, typically a single digit, optionally
! followed by a subsection name, typically one or more letters. An unadorned
! major section name, for example,
! .Qq 9 ,
! does not act as an abbreviation for
! the subsections of that name, such as
! .Qq 9e ,
! .Qq 9f ,
! or
! .Qq 9s .
! That is, each subsection must be searched separately by
! .Nm
! .Fl s .
! Each section contains descriptions apropos to a particular reference category,
! with subsections refining these distinctions. See the
! .Em intro
! manual pages for an explanation of the classification used in this release.
! .
! .Ss "Search Path"
! .
! Before searching for a given
! .Ar name ,
! .Nm
! constructs a list of candidate directories and sections.
! It searches for
! .Ar name
! in the directories specified by the
.Ev MANPATH
+ environment variable.
+ .Lp
+ In the absence of
+ .Ev MANPATH ,
+ .Nm
+ constructs its search path based upon the
+ .Ev PATH
+ environment variable, primarily by substituting
+ .Li man
+ for the last component of the
+ .Ev PATH
+ element. Special provisions are added
+ to account for unique characteristics of directories such as
+ .Pa /sbin ,
+ .Pa /usr/ucb ,
+ .Pa /usr/xpg4/bin ,
+ and others. If the file argument contains
+ a
+ .Qq /
+ character, the
+ .Em dirname
+ portion of the argument is used in place of
+ .Ev PATH
+ elements to construct the search path.
+ .Lp
+ Within the manual page directories,
+ .Nm
+ confines its search to the
+ sections specified in the following order:
+ .Bl -bullet
+ .It
+ .Ar sections
+ specified on the command line with the
+ .Fl s
+ option
+ .It
+ .Ar sections
+ embedded in the
+ .Ev MANPATH
+ environment variable
+ .It
+ .Ar sections
+ specified in the
+ .Pa man.cf
+ file for each directory specified in the
+ .Ev MANPATH
+ environment variable
+ .El
+ If none of the above exist,
+ .Nm
+ searches each directory in the manual
+ page path, and displays the first matching manual page found.
+ .Lp
+ The
+ .Pa man.cf
+ file has the following format:
+ .Lp
+ .Dl Pf MANSECTS= Ar section , Ns Op Ar section...
+ .Lp
+ Lines beginning with
+ .Sq Li #
+ and blank lines are considered comments, and are
+ ignored. Each directory specified in
+ .Ev MANPATH
+ can contain a manual page
+ configuration file, specifying the default search order for that directory.
+ .Sh "Referring to Other Manual Pages"
+ If the first line of the manual page is a reference to another manual
+ page entry fitting the pattern:
+ .Lp
+ .Dl \&.so man*/\fIsourcefile\fR
+ .Lp
+ .Nm
+ processes the indicated file in place of the current one. The
+ reference must be expressed as a path name relative to the root of the manual
+ page directory subtree.
+ .Lp
+ When the second or any subsequent line starts with \fB\&.so\fR, \fBman\fR
+ ignores it; \fBtroff\fR(1) or \fBnroff\fR(1) processes the request in the usual
+ manner.
+ .Sh ENVIRONMENT VARIABLES
+ See
+ .Xr environ 5
+ for descriptions of the following environment variables
+ that affect the execution of
+ .Nm man :
+ .Ev LANG ,
+ .Ev LC_ALL ,
+ .Ev LC_CTYPE ,
+ .Ev LC_MESSAGES ,
and
! .Ev NLSPATH .
! .Bl -tag -width indent
! .It Ev MANPATH
! A colon-separated list of directories; each directory can be followed by a
! comma-separated list of sections. If set, its value overrides
! \fB/usr/share/man\fR as the default directory search path, and the \fBman.cf\fR
! file as the default section search path. The \fB-M\fR and \fB-s\fR flags, in
! turn, override these values.)
! .It Ev PAGER
! A program to use for interactively delivering
! output to the screen. If not set,
! .Sq Nm more Fl s
! is used. See
! .Xr more 1 .
.El
.Sh FILES
! .Bl -tag -width indent
! .It Pa /usr/share/man
! Root of the standard manual page directory subtree
! .It Pa /usr/share/man/man?/*
! Unformatted manual entries
! .It Pa /usr/share/man/whatis
! Table of contents and keyword database
.It Pa man.cf
! Default search order by section
.El
+ .Sh EXIT STATUS
+ .Ex -std man
+ .Sh EXAMPLES
+ .
+ .Ss Example 1: Creating a PostScript Version of a man page
+ .
+ The following example spools the
+ .Xr pipe 2
+ man page in PostScript to the default printer:
+ .Pp
+ .Dl % man -t -s 2 pipe
+ .Pp
+ Note that
+ .Xr mandoc 1
+ can be used to obtain the PostScript content directly.
+ .Ss Example 2: Creating a Text Version of a man page
+ The following example creates the
+ .Xr pipe 2
+ man page in ASCII text:
+ .Pp
+ .Dl % man pipe.2 | col -x -b > pipe.text
.Sh CODE SET INDEPENDENCE
Enabled.
.Sh INTERFACE STABILITY
.Nm Committed .
.Sh SEE ALSO
.Xr apropos 1 ,
! .Xr cat 1 ,
! .Xr col 1 ,
.Xr mandoc 1 ,
+ .Xr more 1 ,
.Xr whatis 1 ,
+ .Xr environ 5 ,
.Xr man 5 ,
! .Xr mdoc 5
.Sh NOTES
! The
! .Fl f
! and
! .Fl k
! options use the
! .Nm whatis
! database, which is
! created with the
! .Fl w
! option.
! .Sh BUGS
! The manual is supposed to be reproducible either on a phototypesetter or on an
! ASCII terminal. However, on a terminal some information (indicated by
! font changes, for instance) is lost.