Gentoo Logo

Guía Man de Gentoo

Contenido:

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
(Salida algo modificada para ajustarla bien al documento)
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.



Imprimir

Página actualizada 18 de junio, 2006

Sumario: Esta guía muestra cómo navegar por las páginas man utilizando el comando man.

Chris White
Autor

Enrique Barbeito García
Traductor

Donate to support our development efforts.

Copyright 2001-2013 Gentoo Foundation, Inc. Questions, Comments? Contact us.