Páginas del manual/Navegación
Esta guía muestra como navegar a través de las páginas del manual usando la orden man.
Introducción
El programa man
Todos nosotros la usamos en algún momento de nuestro recorrido en Linux: la orden man. Aunque el programa parece ser simplista en su diseño, man tiene algunas otras características además de permitir desplazamiento simple a través de una página. Este documento espera dar nuevos bríos acerca de estas capacidades.
Organización de las páginas del manual
Las páginas del manual son mayormente almacenadas en el directorio /usr/share/man. Sin embargo, como una página es localizada mediante la variable de entorno MANPATH, man será capaz de rastrearlas. Generalmente, Gentoo coloca las variables MANPATH en /etc/env.d. Dentro de estos directorios se encuentran algunas carpetas con la estructura 'manX', donde X es el número de sección. Por ejemplo, una distribución de páginas del manual podría lucir así:
user $
ls /usr/share/man | grep man
man0p man1 man1p man2 man3 man3p man4 man5 man6 man7 man8 man9 mann
La numeración de secciones parece bastante estándar. Sin embargo, observe que existen unas carpetas mann y algunas man#p. La siguiente tabla lista los directorios de las páginas de manual y lo que contiene cada uno de ellos:
Directorio man | Descripción |
---|---|
man0p | La "p" aquí representa POSIX, así como el resto de directorios que contienen p en sus nombres. Las páginas del manual en este directorio describen la funcionalidad de algunos ficheros cabecera de POSIX. |
man1 | Esta sección es para las órdenes estándar. La mayoría de programas pondrán sus páginas del manual en esta sección de modo que esta sección tiende a ser la más voluminosa. |
man1p | Esta sección describe las versiones POSIX de las órdenes descritas en 1p. Debido a que se describen únicamente las órdenes básicas es bastante más reducida que man1. |
man2 | Esta sección describe las llamadas la sistema del núcleo Linux. |
man3 | Esta sección describe la biblioteca estándar de C. |
man4 | Esta sección describe los dispositivos especiales. Estos dispositivos están normalmente orientados al núcleo pero el paquete x11-base/xorg-x11 también tiene entradas aquí. |
man5 | Esta sección describes tanto la descripción de ciertos como los ficheros que utilizan los programas. Cuando se lee este documento se encuentran referencias familiares a la orden man 5 portage en la que se describe la estructura de los ficheros de Portage o la orden man 5 make.conf que muestra la descripción del fichero make.conf. |
man6 | Esta sección presenta juegos y otros entretenimientos especiales. |
man7 | Esta sección describe estándares y otros elementos misceláneos. Estos estándares incluyen temas como juegos de caracteres, sentencias SQL, estándares ISO y expresiones regulares. |
man8 | Esta sección describe órdenes administrativas (aquéllas que normalmente lanza el usuario root). |
man9 | Esta sección es un poco caótica y se utiliza para contener documentación sobre algunas partes del núcleo. |
mann | Esta sección la utilizan principalmente los paquetes dev-lang/tcl u dev-lang/tk. La n "n" simboliza nuevo. |
While this is not an extensive and detailed list, it does cover the man pages that most people will be interested in. However, sometimes you can find out what a section does as easily as looking at this table. The next chapter will look at using man to traverse this layout.
Working with the man layout
Browsing the man layout
Now that we understand the man layout, we can begin to look it over for commands. Sometimes we may need to narrow down what man page we want. The first way would be addressing by section. To find out a description of a section, one can use man <section> intro like so:
user $
man 3 intro
## (La salida se ha modificado ligeramente para ajustarse correctamente a este documento) INTRO(3) Linux Programmer's Manual INTRO(3) NAME intro - Introduction to library functions DESCRIPTION This chapter describes all library functions excluding the library functions described in chapter 2, which implement system calls. There are various function groups which can be identified by a letter which is appended to the chapter number: ....
Unfortunately, this does not always work! However, luckily for us there is another way to search for commands that may return multiple results (such as a library call and system command having the same name). To do so, we use the -K
option to the man command like so:
user $
man -K sleep
/usr/share/man/man0p/time.h.0p.gz? [ynq] n /usr/share/man/man0p/unistd.h.0p.gz? [ynq] n /usr/share/man/man2/alarm.2.gz? [ynq] n /usr/share/man/man2/pause.2.gz? [ynq] n /usr/share/man/man2/futex.2.gz? [ynq] n /usr/share/man/man2/nanosleep.2.gz? [ynq] y /usr/share/man/man2/semop.2.gz? [ynq] q
Sometimes the output may be a lot larger. In this case it might be better to specify more specific keywords. Now that we know where to find the man page, the next section will look at viewing the man page.
Viewing man pages
Viewing man pages can be done in 2 ways, first is with man [man page name]
. The second way is man <section> [man page name]
. Take sys-devel/bc for example. I can view either the first man page that comes up on bc (which would be section 1, because it is the lowest section containing a man page on bc):
user $
man bc
bc(1) bc(1) NAME bc - An arbitrary precision calculator language ...
However, what if I want the POSIX version? Then I can use the second form:
user $
man 1p bc
BC(P) POSIX Programmer's Manual BC(P) NAME bc - arbitrary-precision arithmetic language ...
And the man page is displayed. Now that we have the man page up, it is time to work with it. The next section will look at navigation and searching.
Navigating a man page is fairly simple. To move up and down line by line, use the ↑ and ↓ arrow keys. To move up page by page, you can use the Page up and Page down keys. Do however note that these navigation instructions assume the environmental PAGER variable is set to use the default pager, less. Less also has a few other commands for navigation, but the arrow keys usually suffice:
e ^E j ^N CR * Forward one line (or N lines).
y ^Y k ^K ^P * Backward one line (or N lines).
f ^F ^V SPACE * Forward one window (or N lines).
b ^B ESC-v * Backward one window (or N lines).
z * Forward one window (and set window to N).
w * Backward one window (and set window to N).
ESC-SPACE * Forward one window, but don't stop at end-of-file.
d ^D * Forward one half-window (and set half-window to N).
u ^U * Backward one half-window (and set half-window to N).
ESC-) RightArrow * Shift view right one half screen width (or N positions).
ESC-( LeftArrow * Shift view left one half screen width (or N positions).
F Forward forever; like "tail -f".
Searching, however, is more interesting. The two most basic searches are /pattern
and ?pattern
. The first version searches forwards, and the second searches backwards. pattern
is a regular expression pattern that is described in man 7 regex. Let's take for example searching for the -D
option to emerge. First, bring up the emerge man page:
user $
man emerge
Then, at the screen, press the / key to bring up the entry prompt to search forwards and enter in our search pattern:
gracefully handles updating installed packages to newer releases as well.
It handles both source and binary packages, and it can be used to create
binary packages for distribution.
EBUILDS, TBZ2S, CLASSES AND DEPENDENCIES
/\-D
The
\
is done to escape the -
sign, which would normally be used as part of a regular expression.This will search the man page, and bring the searched item into focus:
--deep (-D)
When used in conjunction with --update, this flag forces emerge to consider the entire
dependency tree of packages, instead of checking only the immediate dependencies of
the packages. As an example, this catches updates in libraries that are not directly
listed in the dependencies of a package.
If you hit a search result by accident and want to continue searching for the same results, simply press the / key again, and press Enter (i.e. don't put a pattern it). This will cause the search to default to the last pattern used. Now with some man pages, options are listed, then explained later on. Take the man 5 portage man page. It lists the files used, then explains their usage. Searching forward a few times would return the results, but there's an easier way to handle this, with the second search form, backwards searching. Let's use this to find the description on package.unmask. First, bring up man 5 portage:
user $
man 5 portage
Now press Shift+g. This will bring you to the end of the page:
SEE ALSO
emerge(1), ebuild(1), ebuild(5), make.conf(5)
Portage 2.0.51 Jan 2004 PORTAGE(5)
lines 418-442/442 (END)
Now we'll go ahead and enter the pattern to search for with the ?pattern
backwards search option. First press the ? key to bring up the prompt, and then enter in package.unmask, our query:
SEE ALSO
emerge(1), ebuild(1), ebuild(5), make.conf(5)
Portage 2.0.51 Jan 2004 PORTAGE(5)
?package.unmask
Then hit Enter to bring up the result:
package.unmask
Just like package.mask above, except here you list packages you want to unmask.
Useful for overriding the global package.mask file (see below). Note that
this does not override packages that are masked via KEYWORDS.
...
And the search is complete! Note that just as with /
, using ?
search with no pattern will use the last pattern to search.
Conclusion
This concludes the man guide. This will hopefully shed some light on navigating man pages, and maybe even give a few new tips to the more experienced users. For those who prefer alternate means of navigating man pages, the following are also available:
- sys-apps/man2html - A program for converting man pages to HTML.
- app-text/tkman - A tk based man page browser.
Also the KDE web browser kde-apps/konqueror can browse man pages using the man:
syntax in the address bar.
This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Chris White
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.