Guía Man de Gentoo
1.
Introducción
El programa man
Todo el mundo lo ha utilizado en algún momento de su experiencia con Linux.
"Él" es el comando man. No obstante, aunque el programa por sí mismo
parece ser bastante simplista en su estructura, dispone de algunas
capacidades extra además de poder pasar las páginas. Este documento espera
arrojar algo de luz en torno a estas capacidades.
Esquema de Man
Las páginas man se almacenan principalmente en el directorio
/usr/share/man. De todos modos, con tal de que una página man sea
localizada en la variable de entorno MANPATH, man podrá encontrarla. Por
regla general, Gentoo almacenará las variables MANPATH en
/etc/env.d. En estos directorios se encuentran otros con la
estructura manX, donde la X representa el número de sección. Por ejemplo, un
esquema de man estándar se parece a lo siguiente:
Listado de Código 1.1: Estructura estándar de man |
$ ls /usr/share/man | grep man
man0p
man1
man1p
man2
man3
man3p
man4
man5
man6
man7
man8
man9
mann
|
Este tipo de numeración parece bastante estándar. Sin embargo, dese cuenta en
que hay un directorio mann y algunos man#p. La
siguiente tabla enumera los directorios antedichos y lo que contienen:
| Diretorio Man |
Descripción |
| man0p |
La p es de POSIX, como en el resto de directorios con una p en sus
nombres. Las páginas man de este directorio describen la funcionalidad de
algunos de los ficheros de cabecera de POSIX.
|
| man1 |
Esta sección es para los comandos estándar. La mayoría de los programas
pondrán aquí sus páginas man, por lo que ésta es la sección que tiende a
ser la más grande.
|
| man1p |
Esta sección describe las versiones POSIX de los comandos descritos en 1p.
Puesto que ésta solo describe comandos básicos, es mucho más pequeña que
man1.
|
| man2 |
Esta versión describe las llamadas al sistema del núcleo Linux. |
| man3 |
Esta sección describe librerías estándar de funciones C. |
| man4 |
Esta sección describe dispositivos especiales. Éstos, generalmente, están
orientados al núcleo, aunque Xorg-X11 también tiene entradas aquí.
|
| man5 |
Esta sección describe tanto la constitución de ciertos ficheros como
aquellos ficheros que un determinado programa utilice. Quienes lean este
documento puede que estén familiarizados con las referencias a man 5
portage para una descripción de la estructura del fichero de
portage y a man 5 make.conf sobre el aspecto de
make.conf.
|
| man6 |
Esta sección presenta juegos y otros juguetes peculiares. |
| man7 |
Esta sección describe estándares y otros elementos de diversa índole. Estos
estándares incluyen aspectos como conjuntos de caracteres, cláusulas SQL,
estándares ISO y expresiones regulares.
|
| man8 |
Esta sección describe comandos de administración (aquellos que normalmente
ejecuta el usuario root).
|
| man9 |
Esta sección es algo escasa, aunque está ideada para contener documentación
para algunas partes del núcleo.
|
| mann |
Esta sección es principalmente utilizada por Tcl/Tk. La n es
de nuevo.
|
Aunque ésta no es una lista extensa ni detallada, cubre las páginas man en lo
que la mayoría de las personas estará interesada. De todos modos, a veces se
puede averiguar lo que hace una sección tan fácilmente como mirar en esta
tabla. El siguiente capítulo analizará cómo utilizar man para recorrer este
esquema.
2.
Trabajar con el esquema de man
Echar un vistazo al esquema de man
Ahora que conocemos el esquema de man, podemos empezar a examinarlo. Puede que
a veces necesitemos saber qué página man queremos. El primer modo sería
examinar por sección. Para averiguar la descripción de una sección, se puede
usar man section intro, de este modo:
Listado de Código 2.1: Utilizar man intro para describir una sección |
$ man 3 intro
INTRO(3) Manual del Programador de Linux INTRO(3)
NOMBRE
intro - Introducción a las funciones de biblioteca
DESCRIPCIÓN
Esta sección describe todas las funciones de biblioteca, excluyendo las
descritas en la sección 2, que implementan las llamadas al sistema. Hay
varios grupos de funciones que pueden identificarse con una letra que se
añade al número de la sección:
....
|
Por desgracia ¡No siempre funciona! De todos modos, existe otro método para
buscar comandos que puede devolver más de un resultado (por ejemplo, la llamada
a una librería y un comando del sistema que tengan el mismo nombre). Para
hacerlo, usemos el parámetro -K de man, así:
Listado de Código 2.2: Utilizar man -K para buscar por cadena |
$ 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
|
Hay veces en que la salida puede ser mucho más grande. En tal caso, puede que
sea mejor especificar palabras clave más concretas. Ahora que conocemos cómo
buscar la página man, la próxima sección muestra cómo consultar dicha página
man.
Consultar páginas man
Consultar páginas man puede hacerse de dos maneras; la primera es mediante
man [nombre de la página man]. La segunda con man [sección] [nombre
de la página man]. Tomemos a bc como ejemplo. Puedo ver la primera
página man que sale sobre bc (la cual estaría en la sección 1 puesto que
es la más baja que contiene una página man sobre bc):
Listado de Código 2.3: Consultar la página man inicial |
$ man bc
bc(1) bc(1)
NOMBRE
bc - Un lenguaje de cálculo de precisión arbitraria
...
|
Sin embargo ¿Y si quiero la versión POSIX? En tal caso, puedo utilizar la
segunda forma:
Listado de Código 2.4: Consultar una página man en concreto por sección |
$ man 1p bc
BC(P) Manual del Programador de POSIX BC(P)
NOMBRE
bc - Un lenguaje de cálculo de precisión arbitraria
...
|
Y la página man se mostrará. Ahora que tenemos la página man a la vista, es
hora de trabajar con ella. La siguiente sección examinará la navegación y
búsqueda.
Navegar y buscar en páginas man
Navegar por una página man es bastante sencillo. Para moverse arriba y abajo,
línea a línea, utilice las teclas de dirección arriba y abajo. Para moverse
página por página, puede utilizar las teclas de avance y retroceso de página.
Tenga de todos modos en cuenta que estas instrucciones de navegación consideran
que la variable de entorno PAGER está configurada para utilizar el
paginador por defecto, less, el cual dispone también de otros comandos
de navegación, aunque las teclas de dirección normalmente son suficientes:
Listado de Código 2.5: Teclas de navegación adicionales de less |
e ^E j ^N CR * Avance de una (o N) línea/s.
y ^Y k ^K ^P * Retroceso de una (o N) línea/s.
f ^F ^V SPACE * Avance de una página (o N líneas).
b ^B ESC-v * Retroceso de una página (o N líneas).
z * Avance de una página (y fija la página a N).
w * Retroceso de una página (y fija la página a N).
ESC-SPACE * Avance de una página, sin parar al final del fichero.
d ^D * Avance de media página (y fija la mitad de página a N).
u ^U * Retroceso de media página (y fija la mitad de página a N).
ESC-) RightArrow * Mueve la mitad del ancho de pantalla a la izquierda (o N posiciones).
ESC-( LeftArrow * Mueve la mitad del ancho de pantalla a la derecha (o N posiciones).
F Avance continuo; como "tail -f".
|
Buscar, sin embargo, es más interesante. Las dos búsquedas más sencillas son
/patrón y ?patrón. La primera de ellas busca hacia delante, la
segunda hacia atrás. patrón es un modelo de expresión regular descrito
en man 7 regex. Tomemos como ejemplo la búsqueda de la opción -D
de emerge. Lo primero, saque la página man de emerge:
Listado de Código 2.6: Sacar la página man de emerge |
$ man emerge
|
Entonces, en la ventana del paginador, presione la tecla / para sacar el
cursor para buscar hacia delante e introduzca nuestro patrón de
búsqueda:
Listado de Código 2.7: Sacar el cursor para buscar hacia delante |
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
|
Nota:
La \ es para evitar el signo -, la cual es normalmente utilizada
como parte de una expresión regular.
|
Esto buscará en la página man y pondrá el resultado buscado en el foco:
Listado de Código 2.8: Resultados de la búsqueda hacia delante |
--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.
|
Si se topa con un resultado no deseado y quiere continuar buscando por los
mismos resultados, simplemente presione de nuevo la tecla / y pulse
Enter (sin poner un patrón). Esto hará que el patrón de búsqueda por defecto
sea el último usado. Ahora con varias páginas man, las opciones serán listadas
y explicadas más tarde. Coja la página man man 5 portage. Ésta lista los
ficheros usados, luego explica su uso. Buscando hacia delante varias veces
devolvería los resultados, pero hay un modo más sencillo para controlar esto,
con la segunda forma de buscar, hacia atrás. Usemos esto para encontrar la
descripción de package.unmask. Primero saque man 5 portage:
Listado de Código 2.9: Sacar la página man 5 portage |
$ man 5 portage
|
Ahora pulse la combinación SHIFT+g. Ésta le llevará al final de la
página:
Listado de Código 2.10: Final de la página man después de pulsar SHIFT+g |
SEE ALSO
emerge(1), ebuild(1), ebuild(5), make.conf(5)
Portage 2.0.51 Jan 2004 PORTAGE(5)
lines 418-442/442 (END)
|
Ahora continuamos introduciendo el patrón ?patrón para buscar hacia
atrás. Primero pulse la tecla ? para sacar el cursor y luego introduzca
package.unmask. Nuestra consulta:
Listado de Código 2.11: Especificar nuestra búsqueda |
SEE ALSO
emerge(1), ebuild(1), ebuild(5), make.conf(5)
Portage 2.0.51 Jan 2004 PORTAGE(5)
?package.unmask
|
Luego presione Enter para obtener el resultado:
Listado de Código 2.12: Nuestro resultado de búsqueda |
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.
...
|
¡Y la búsqueda está completa! Fíjese que, al igual que con /, utilizando
? sin patrón, cogerá el último patrón de búsqueda para buscar.
Conclusión
Aquí concluye la guía de man con la esperanza de haber arrojado algo de luz
sobre la navegación de páginas man y, tal vez, haber aportado también nuevos
trucos a los usuarios más experimentados. Para quienes prefieren alternar
medios de navegación de páginas man, tienen disponible lo siguiente:
- app-text/man2html - programa que convierte páginas man a HTML
- app-text/tkman - navegador de páginas man basado en Tk
El navegador web Konqueror de KDE puede también visualizar
páginas man empleando la sintaxis man: en la barra de direcciones.
El contenido de este documento, a no ser que se especifique
expresamente, está registrado bajo los términos de la licencia
CC-BY-SA-2.5. Se aplican las
Pautas de
Utilización del logotipo y nombre de Gentoo.
|