xref: /freebsd/contrib/mandoc/man.1 (revision 1323ec57)
1.\"	$Id: man.1,v 1.40 2020/07/20 16:57:30 schwarze Exp $
2.\"
3.\" Copyright (c) 1989, 1990, 1993
4.\"	The Regents of the University of California.  All rights reserved.
5.\" Copyright (c) 2003, 2007, 2008, 2014 Jason McIntyre <jmc@openbsd.org>
6.\" Copyright (c) 2010, 2011, 2014-2020 Ingo Schwarze <schwarze@openbsd.org>
7.\"
8.\" Redistribution and use in source and binary forms, with or without
9.\" modification, are permitted provided that the following conditions
10.\" are met:
11.\" 1. Redistributions of source code must retain the above copyright
12.\"    notice, this list of conditions and the following disclaimer.
13.\" 2. Redistributions in binary form must reproduce the above copyright
14.\"    notice, this list of conditions and the following disclaimer in the
15.\"    documentation and/or other materials provided with the distribution.
16.\" 3. Neither the name of the University nor the names of its contributors
17.\"    may be used to endorse or promote products derived from this software
18.\"    without specific prior written permission.
19.\"
20.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30.\" SUCH DAMAGE.
31.\"
32.\"     @(#)man.1	8.2 (Berkeley) 1/2/94
33.\"
34.Dd $Mdocdate: July 20 2020 $
35.Dt MAN 1
36.Os
37.Sh NAME
38.Nm man
39.Nd display manual pages
40.Sh SYNOPSIS
41.Nm man
42.Op Fl acfhklw
43.Op Fl C Ar file
44.Op Fl M Ar path
45.Op Fl m Ar path
46.Op Fl S Ar subsection
47.Op Oo Fl s Oc Ar section
48.Ar name ...
49.Sh DESCRIPTION
50The
51.Nm
52utility
53displays the
54manual page entitled
55.Ar name .
56Pages may be selected according to
57a specific category
58.Pq Ar section
59or
60machine architecture
61.Pq Ar subsection .
62.Pp
63The options are as follows:
64.Bl -tag -width Ds
65.It Fl a
66Display all matching manual pages.
67.It Fl C Ar file
68Use the specified
69.Ar file
70instead of the default configuration file.
71This permits users to configure their own manual environment.
72See
73.Xr man.conf 5
74for a description of the contents of this file.
75.It Fl c
76Copy the manual page to the standard output instead of using
77.Xr less 1
78to paginate it.
79This is done by default if the standard output is not a terminal device.
80.Pp
81When using
82.Fl c ,
83most terminal devices are unable to show the markup.
84To print the output of
85.Nm
86to the terminal with markup but without using a pager, pipe it to
87.Xr ul 1 .
88To remove the markup, pipe the output to
89.Xr col 1
90.Fl b
91instead.
92.It Fl f
93A synonym for
94.Xr whatis 1 .
95It searches for
96.Ar name
97in manual page names and displays the header lines from all matching pages.
98The search is case insensitive and matches whole words only.
99.It Fl h
100Display only the SYNOPSIS lines of the requested manual pages.
101Implies
102.Fl a
103and
104.Fl c .
105.It Fl k
106A synonym for
107.Xr apropos 1 .
108Instead of
109.Ar name ,
110an expression can be provided using the syntax described in the
111.Xr apropos 1
112manual.
113By default, it displays the header lines of all matching pages.
114.It Fl l
115A synonym for
116.Xr mandoc 1 .
117The
118.Ar name
119arguments are interpreted as filenames.
120No search is done and
121.Ar file ,
122.Ar path ,
123.Ar section ,
124.Ar subsection ,
125and
126.Fl w
127are ignored.
128This option implies
129.Fl a .
130.It Fl M Ar path
131Override the list of directories to search for manual pages.
132The supplied
133.Ar path
134must be a colon
135.Pq Ql \&:
136separated list of directories.
137This option also overrides the environment variable
138.Ev MANPATH
139and any directories specified in the
140.Xr man.conf 5
141file.
142.It Fl m Ar path
143Augment the list of directories to search for manual pages.
144The supplied
145.Ar path
146must be a colon
147.Pq Ql \&:
148separated list of directories.
149These directories will be searched before those specified using the
150.Fl M
151option, the
152.Ev MANPATH
153environment variable, the
154.Xr man.conf 5
155file, or the default directories.
156.It Fl S Ar subsection
157Only show pages for the specified
158.Xr machine 1
159architecture.
160.Ar subsection
161is case insensitive.
162.Pp
163By default manual pages for all architectures are installed.
164Therefore this option can be used to view pages for one
165architecture whilst using another.
166.Pp
167This option overrides the
168.Ev MACHINE
169environment variable.
170.Tg s
171.It Oo Fl s Oc Ar section
172Only select manuals from the specified
173.Ar section .
174The currently available sections are:
175.Pp
176.Bl -tag -width "localXXX" -offset indent -compact
177.It 1
178General commands
179.Pq tools and utilities .
180.It 2
181System calls and error numbers.
182.It 3
183Library functions.
184.It 3p
185.Xr perl 1
186programmer's reference guide.
187.It 4
188Device drivers.
189.It 5
190File formats.
191.It 6
192Games.
193.It 7
194Miscellaneous information.
195.It 8
196System maintenance and operation commands.
197.It 9
198Kernel internals.
199.El
200.It Fl w
201List the pathnames of all matching manual pages instead of displaying
202any of them.
203If no
204.Ar name
205is given, list the directories that would be searched.
206.El
207.Pp
208The options
209.Fl IKOTW
210are also supported and are documented in
211.Xr mandoc 1 .
212The options
213.Fl fkl
214are mutually exclusive and override each other.
215.Pp
216The search starts with the
217.Fl m
218argument if provided, then continues with the
219.Fl M
220argument, the
221.Ev MANPATH
222variable, the
223.Ic manpath
224entries in the
225.Xr man.conf 5
226file, or with
227.Pa /usr/share/man : Ns Pa /usr/X11R6/man : Ns Pa /usr/local/man
228by default.
229Within each of these, directories are searched in the order provided.
230Within each directory, the search proceeds according to the following
231list of sections: 1, 8, 6, 2, 3, 5, 7, 4, 9, 3p.
232The first match found is shown.
233.Pp
234The
235.Xr mandoc.db 5
236database is used for looking up manual page entries.
237In cases where the database is absent, outdated, or corrupt,
238.Nm
239falls back to looking for files called
240.Ar name . Ns Ar section .
241If both a formatted and an unformatted version of the same manual page,
242for example
243.Pa cat1/foo.0
244and
245.Pa man1/foo.1 ,
246exist in the same directory, only the unformatted version is used.
247The database is kept up to date with
248.Xr makewhatis 8 ,
249which is run by the
250.Xr weekly 8
251maintenance script.
252.Pp
253Guidelines for writing
254man pages can be found in
255.Xr mdoc 7 .
256.Sh ENVIRONMENT
257.Bl -tag -width MANPATHX
258.It Ev MACHINE
259As some manual pages are intended only for specific architectures,
260.Nm
261searches any subdirectories,
262with the same name as the current architecture,
263in every directory which it searches.
264Machine specific areas are checked before general areas.
265The current machine type may be overridden by setting the environment
266variable
267.Ev MACHINE
268to the name of a specific architecture,
269or with the
270.Fl S
271option.
272.Ev MACHINE
273is case insensitive.
274.It Ev MANPAGER
275Any non-empty value of the environment variable
276.Ev MANPAGER
277is used instead of the standard pagination program,
278.Xr less 1 .
279If
280.Xr less 1
281is used, the interactive
282.Ic :t
283command can be used to go to the definitions of various terms, for
284example command line options, command modifiers, internal commands,
285environment variables, function names, preprocessor macros,
286.Xr errno 2
287values, and some other emphasized words.
288Some terms may have defining text at more than one place.
289In that case, the
290.Xr less 1
291interactive commands
292.Ic t
293and
294.Ic T
295can be used to move to the next and to the previous place providing
296information about the term last searched for with
297.Ic :t .
298The
299.Fl O Cm tag Ns Op = Ns Ar term
300option documented in the
301.Xr mandoc 1
302manual opens a manual page at the definition of a specific
303.Ar term
304rather than at the beginning.
305.It Ev MANPATH
306Override the standard search path which is either specified in
307.Xr man.conf 5
308or the default path.
309The format of
310.Ev MANPATH
311is a colon
312.Pq Ql \&:
313separated list of directories.
314Invalid directories are ignored.
315Overridden by
316.Fl M ,
317ignored if
318.Fl l
319is specified.
320.Pp
321If
322.Ev MANPATH
323begins with a colon, it is appended to the standard path;
324if it ends with a colon, it is prepended to the standard path;
325or if it contains two adjacent colons,
326the standard path is inserted between the colons.
327.It Ev PAGER
328Specifies the pagination program to use when
329.Ev MANPAGER
330is not defined.
331If neither PAGER nor MANPAGER is defined,
332.Xr less 1
333is used.
334.El
335.Sh FILES
336.Bl -tag -width /etc/man.conf -compact
337.It Pa /etc/man.conf
338default
339.Nm
340configuration file
341.El
342.Sh EXIT STATUS
343.Ex -std man
344See
345.Xr mandoc 1
346for details.
347.Sh EXAMPLES
348Format a page for pasting extracts into an email message \(em
349avoid printing any UTF-8 characters, reduce the width to ease
350quoting in replies, and remove markup:
351.Pp
352.Dl $ man -T ascii -O width=65 pledge | col -b
353.Pp
354Read a typeset page in a PDF viewer:
355.Pp
356.Dl $ MANPAGER=mupdf man -T pdf lpd
357.Sh SEE ALSO
358.Xr apropos 1 ,
359.Xr col 1 ,
360.Xr mandoc 1 ,
361.Xr ul 1 ,
362.Xr whereis 1 ,
363.Xr man.conf 5 ,
364.Xr mdoc 7
365.Sh STANDARDS
366The
367.Nm
368utility is compliant with the
369.St -p1003.1-2008
370specification.
371.Pp
372The flags
373.Op Fl aCcfhIKlMmOSsTWw ,
374as well as the environment variables
375.Ev MACHINE ,
376.Ev MANPAGER ,
377and
378.Ev MANPATH ,
379are extensions to that specification.
380.Sh HISTORY
381A
382.Nm
383command first appeared in
384.At v2 .
385.Pp
386The
387.Fl w
388option first appeared in
389.At v7 ;
390.Fl f
391and
392.Fl k
393in
394.Bx 4 ;
395.Fl M
396in
397.Bx 4.3 ;
398.Fl a
399in
400.Bx 4.3 Tahoe ;
401.Fl c
402and
403.Fl m
404in
405.Bx 4.3 Reno ;
406.Fl h
407in
408.Bx 4.3 Net/2 ;
409.Fl C
410in
411.Nx 1.0 ;
412.Fl s
413and
414.Fl S
415in
416.Ox 2.3 ;
417and
418.Fl I ,
419.Fl K ,
420.Fl l ,
421.Fl O ,
422and
423.Fl W
424in
425.Ox 5.7 .
426The
427.Fl T
428option first appeared in
429.At III
430and was also added in
431.Ox 5.7 .
432