MAN. LA AYUDA DEL SISTEMA (PARTE 2) Imprimir
SOFTWARE - General
Miércoles, 19 de Marzo de 2008 10:07
Conoce como utilizar este manual en línea para todos los sistemas Linux.

3.1.- CONTENIDO DE MAN

Es interesante saber que este paquete instala en el sistema una serie de aplicaciones que también sirven para buscar documentación entre otras cosas.

Vemos una breve descripción de las más interesantes:

Programa

Descripción

whatis [opciones] <comando>

Realiza búsquedas del comando especificado en las cabeceras de todas las páginas Man almacenadas y muestra una breve descripción del mismo junto con su nombre y sección entre paréntesis*.

Ejemplo:

usuario@miMaquina:~$ whatis chattr

chattr (1) - change file attributes o­n a Linux second extended file system

*En el apartado “FUNCIONAMIENTO” se verán las secciones de Man.

En este sentido, el funcionamiento es muy similar a Man, solo que whatis muestra la pequeña descripción incluida en la sección “Nombre” de las páginas del manual.

whatis busca coincidencias en palabras completas. Lo vemos:

usuario@miMaquina:~$ whatis clear

clear (1) - clear the terminal screen


usuario@miMaquina:~$ whatis clea

clea: nada apropiado.

Este programa utiliza una base de datos binaria para hacer las búsquedas. Normalmente ubicada en /var/cache/man y de nombre index.db.

Si hacemos mucho uso del comando, seria recomendable actualizar diariamente dicha base de datos, con la herramienta cron por ejemplo.

apropos [opciones] <cadena>

Idéntico cometido que el comando whatis, pero con ventaja de especificar un patrón, no el nombre del comando exacto.

Igual que whatis, apropos buscará el patrón en las cabeceras de todas las páginas Man almacenadas.

Ejemplo:

usuario@miMaquina:~$ apropos clea

cleanlinks (1) - remove dangling symbolic links and empty directories

cleanup-info (8) - clean up the mess that bogus install-info may have done

clear (1) - clear the terminal screen

clear_console (1) - clear the console

clearenv (3) - clear the environment

…..

……

sigreturn (2) - return from signal handler and cleanup stack frame

syslog (2) - read and/or clear kernel message ring buffer; set console_loglevel

tidy (1) - Utility to clean up and pretty print HTML/XHTML/XML

apropos también hace uso de la base de datos utilizada por whatis

mandb

Crea o actualiza la base de datos que utiliza el comando whatis para las búsquedas.

usuario@miMaquina:~$ mandb

Purgando entradas antiguas en la base de datos en /usr/share/man...

Procesando las páginas de manual bajo /usr/share/man...

Actualizando el caché de índices para la ruta `/usr/share/man/man8'.

Aguarde...listo.

Controlando si hay páginas cat sin fuentes bajo /usr/share/man...

Controlando si hay páginas cat sin fuentes bajo /var/cache/man...

Purgando entradas antiguas en la base de datos en /usr/local/man...

……….

Procesando las páginas de manual bajo /usr/local/share/man...

2 subdirectorios man tenían páginas de manual más recientes.

Se añadieron 5 páginas de manual.

Se añadieron 0 «cats» sin fuentes.

Se han eliminado 0 entradas antiguas en la base de datos.


NOTA: Algunas distribuciones Linux utilizan el comando makewhatis en vez del mandb.

manpath

Muestra el path o la ruta donde debe buscar el programa Man sus páginas.

catman

Crea o actualiza las páginas de manual con formato. Es decir, guardar las páginas del manual ya formateadas en directorios establecidos al efecto (normalmente en /var/cache/man/cat(nº_de_sección)).

Recordemos que las “manpages” inicialmente vienen comprimidas y sin formatear. El programa Man se ocupa de mostrarlas convenientemente.

Esta solución elimina la necesidad de descomprimir y formatear una pagina del manual la próxima vez que un usuario la solicite.

También catman hace uso de la base de datos index.db para determinar qué ficheros tienen que ser formateados.

Estas páginas son llamadas “páginas cat”.

Para ver todas las posibilidades de los comandos descritos, fácil, tecleamos man < comando>.

4.- FUNCIONAMIENTO

Como se ha comentado, el principal cometido de Man es buscar información sobre programas, útiles y funciones del sistema*.

*Man no sólo nos ofrece información sobre el funcionamiento y uso de programas y aplicaciones, sino que además podemos saber que estructura debe tener un archivo determinado o como llamar y utilizar una librería o función de C por ejemplo.

La sintaxis más básica para invocarlo es la siguiente:

man [opciones] <comando|función|útil>

Por ejemplo:

usuario@miMaquina:~$ man telnet

Dando formato a su(1); aguarde, por favor...

Como vemos, las páginas del manual están organizadas en secciones, como puede ser

  • NOMBRE
  • SIPNOSIS
  • DESCRIPCIÓN
  • OPCIONES
  • etc..

Estas secciones siguen algunos convenios como:

  • texto en negrita : se debe teclear exactamente esto.
  • texto en cursiva : reemplazar el texto por el argumento deseado.
  • [-abc]: ninguno, uno o varios argumentos incluidos entre los corchetes son opcionales.
  • -a|-b: deben usarse el argumento a o el argumento b. No se pueden usar conjuntamente.

4.1.- SECCIONES DE LAS “MANPAGES”

Siempre, al visualizar cualquier página del manual, lo primero que se ve es un “banner” con el comando y entre paréntesis la sección del manual donde está ubicada la página (posteriormente se explicaran las distintas secciones de Man).

En el ejemplo anterior.

TELNET(1) BSD General Commands Manual TELNET(1)

Luego, ira seguido del nombre del comando y una breve definición de su funcionamiento (esta definición es la que aparece al invocar los comandos whatis o apropos):

NOMBRE

telnet - interfaz de usuario para el protocolo TELNET

A continuación se muestra la sintaxis (o sipnosis) del mismo:

….

SINOPSIS

telnet [-8ELadr] [-S tos] [-e escapechar] [-l user] [-n tracefile] [host

[port]]

….

A esto le sigue una descripción completa del comando:

….

DESCRIPCIÓN

El comando telnet se usa en la comunicación interactiva con otro host que

utilice el protocolo TELNET ("telnet> "). Si telnet es invocado con el

parámetro host, la orden open se ejecuta implícitamente; vea la

descripción siguiente.

……

Además, si el comando hace uso de argumentos, parámetros y opciones, se incluirán otras secciones con el significado de los mismos.

…..

Opciones:

-8 Petición de operación de 8-bits. Esto provoca un intento de negociar las TELNET BINARY opciones de entrada y salida. Por defecto telnet no es puramente de 8-bits.

-E Deshabilita la función del carácter escape; es decir, establece que la tecla escape actúa como "no character".

……

Finalmente, es común que la página Man termine con una serie de secciones como:

  • Sección sobre bugs (fallos) conocidos.
  • Notas.
  • Sección “véase también” (see also) con comandos relacionado con el actual.
  • Ficheros de configuración asociados al comando.
  • Autor ó autores del mismo.
  • Autor de la traducción, etc..

En este sentido podemos encontrar información variada en el pié de la página relacionada directamente con la funcionalidad y uso del comando.

Además, como punto interesante a veces aparece una dirección de correo electrónico para comunicar nuevos fallos e instrucciones para obtener más información.

4.2.- SECCIONES DE MAN

La información de las páginas Man de Linux están agrupadas en un conjunto de archivos. Estos ficheros están distribuidos en secciones y, cada sección contiene un tipo específico de información.

Ejecutando el comando manpath podemos saber donde están ubicadas estas secciones.

Descripción de secciones:

1 – Comandos y aplicaciones de usuario.

2 – Llamadas al sistema (funciones del núcleo) y errores del kernel.

3 – Llamadas a librerías del sistema.

4 – Drivers de dispositivos y protocolos de red.

5 – Formatos estándar de archivos.

6 – Juegos y demos.

7 – Ficheros y documentos misceláneos.

8 – Comandos de administración del sistema.

9 – Especificaciones e interfaces del kernel.

Además de estas secciones numeradas, existen otras organizadas por letras:

l - de local.

n - de nuevo.

o - de antiguo (old).

p - de público.

Estas cuatro secciones actualmente están obsoletas.

Cuando ejecutamos Man, éste busca en todas las secciones el comando pasado como argumento, siguiendo un orden específico en las mismas y, devuelve la primera coincidencia, aunque aparezca en más de una sección.

Por ejemplo:

usuario@miMaquina:~$ whatis passwd

passwd (1) - change user password

passwd (5) - the password file

Vemos que existen dos páginas del manual, la 1 y la 5.

Con esto, ejecutando man passwd veríamos solamente la ayuda en línea para la primera sección (Comandos y aplicaciones de usuario).

Veremos mas tarde que es posible especificar en que sección buscar.

El orden de búsqueda por defecto suele ser el siguiente: 1,n,l,8,3,2,5,4,9,6,7.

Podemos cambiar el orden preestablecido de búsqueda modificando el archivo de configuración de Man (en el apartado “FICHEROS DE CONFIGURACIÓN” lo vemos).

4.3.- OPCIONES DE MAN

Se explican las más importantes.

man -w <comando>

Indica que se visualice la ruta completa (path) de las páginas Man en lugar de la página de ayuda asociada al comando.

Ejemplo:

usuario@miMaquina:~$ man –w scp

/usr/share/man/man1/scp.1.gz

man -k <comando>

El funcionamiento de Man es idéntico al del comando apropos (Dirigirse al apartado “CONTENIDO DE MAN” para ver la descripción del comando).

Ejemplo:

usuario@miMaquina:~$ man –k clea

cleanup-info (8) - clean up the mess that bogus install-info may have done

clear (1) - clear the terminal screen

clear_console (1) - clear the console

modclean (8) - automatically unload loadable modules


usuario@miMaquina:~$ apropos clea

cleanup-info (8) - clean up the mess that bogus install-info may have done

clear (1) - clear the terminal screen

clear_console (1) - clear the console

modclean (8) - automatically unload loadable modules

man -h

Muestra la ayuda para Man.

man -f <comando>

El funcionamiento de Man es idéntico al del comando whatis (Dirigirse al apartado “CONTENIDO DE MAN” para ver la descripción del comando).

Ejemplo:

usuario@miMaquina:~$ man –f chattr

chattr (1) - change file attributes o­n a Linux second extended file system


usuario@miMaquina:~$ whatis chattr

chattr (1) - change file attributes o­n a Linux second extended file system

man -a <comando>

Busca por todas las secciones de Man y muestra todas las coincidencias y no solo la primera página del manual encontrada.

Ejemplo:

usuario@miMaquina:~$ man –a passwd

……

PASSWD(1) Manual del Programador Linux PASSWD(1)

NOMBRE

passwd - cambia contraseñas

SINOPSIS

passwd [ -o ] [ -q ] [ -v ] [ usuario [ contraseña ]]

passwd -f [ parámetros para el cambio de nombre completo del usuario ]

passwd -s [ parámetros para el cambio de shell ]

….

Salimos tecleando q:

usuario@miMaquina:~$ man –a passwd

--Man-- próxima: passwd(1) [ ver (return) | siguiente (Ctrl-D) | salir (Ctrl-C) ]

Tecleamos la combinacion Ctrl+D para pasar a la siguiente página de otra sección

--Man-- próxima: passwd(5) [ ver (return) | siguiente (Ctrl-D) | salir (Ctrl-C) ]

Pulsamos la tecla enter

Luego, pulsaremos la combinación de teclas Ctrl-D y seguidamente la tecla “Intro” para acceder a la siguiente sección.

usuario@miMaquina:~$ man –a passwd

……

PASSWD(5) Formatos de Fichero PASSWD(5)

NOMBRE

passwd - fichero de contraseñas

DESCRIPCIÓN

Passwd es un fichero de texto que contiene una lista de las cuentas del sistema, proporcionando para cada cuenta cierta información útil como el

….

Si queremos dirigirnos a una sección en concreto sin pasar secuencialmente por ellas ejecutamos:

man [numero _ sección] <comando>

Por ejemplo:

usuario@miMaquina:~$ man 5 passwd

man -P <paginador> <comando>

Para visualizar una la página Man con el paginador que pasamos como argumento.

El paginador es el indicado en la variable de entorno PAGER (echo $PAGER) o en su defecto Man utiliza el binario /usr/bin/pager* (realmente pager es un enlace simbólico a algún paginador, normalmente a /usr/bin/less).

Por ejemplo:

usuario@miMaquina:~$ man –P /bin/more ls

Seleccionaríamos more como paginador.

man -M <path> <comando>

Indicamos explícitamente donde se deben buscar las páginas del manual.

Podemos saber donde están ubicadas las páginas con el comando manpath:

usuario@miMaquina:~$ manpath

/usr/local/man:/usr/local/share/man:/usr/share/man

Por ejemplo, con la siguiente instrucción veremos la página de manual del comando vi en Francés*:

usuario@miMaquina:~$ man –M /usr/share/man/fr.UTF-8/ vi

*Deberemos tener instalado previamente el paquete “manpages-fr”.

man -C <fichero de configuración> <comando>

Indicamos manualmente el archivo de configuración del cual dependerá la ejecución de Man.

En él, se establecen por ejemplo la ruta donde se ubican las páginas y el orden de secciones a seguir en la búsqueda de las mismas.

El fichero de configuración normalmente se ubica en /etc/man.conf (para sistemas basados en RedHat) ó /etc/manpath.config (para sistemas basados en Debian).

man -L <locales> <comando>

Establecemos manualmente las “locales”.

Por ejemplo, con la siguiente instrucción veríamos las páginas Man con la codificación de caracteres ISO-8859-15*:

usuario@miMaquina:~$ man –L es_ES.iso88591 ls


* Ejecutar el comando locale –a para ver los códigos de idioma que tenemos instalados. Podemos dirigirnos al apartado “POSIBLES PROBLEMAS CON EL IDIOMA” para entender lo que son las “locales”.

man -d <comando>

Primero imprime información de depurado (como realiza Man el formateo de la página en tiempo real) y segundo, vemos la página solicitada:

usuario@miMaquina:~$ man –d ls

ruid=1000, euid=1000

++priv_drop_count = 1

From the config file /etc/manpath.config:

Mandatory mandir `/usr/man'.

Mandatory mandir `/usr/share/man'.

Mandatory mandir `/usr/X11R6/man'.

Mandatory mandir `/usr/local/man'.

Path `/bin' mapped to mandir `/usr/share/man'.

Path `/usr/bin' mapped to mandir `/usr/share/man'.

Path `/sbin' mapped to mandir `/usr/share/man'.

Path `/usr/sbin' mapped to mandir `/usr/share/man'.

Path `/usr/local/bin' mapped to mandir `/usr/local/man'.

Path `/usr/local/bin' mapped to mandir `/usr/local/share/man'.

Path `/usr/local/sbin' mapped to mandir `/usr/local/man'.

Path `/usr/local/sbin' mapped to mandir `/usr/local/share/man'.

…..

Global mandir `/usr/X11R6/man', catdir `/var/cache/man/X11R6'.

Global mandir `/opt/man', catdir `/var/cache/man/opt'.

Added section `1'.

Added section `n'.

Added section `l'.

Added section `8'.

Added section `3'.

…..

`/usr/sbin' `/usr/share/man' `0'

`/usr/local/bin' `/usr/local/man' `0'

`/usr/local/bin' `/usr/local/share/man' `0'

`/usr/local/sbin' `/usr/local/man' `0'

`/usr/local/sbin' `/usr/local/share/man' `0'

…….

`1' `' `-5'

`n' `' `-5'

`l' `' `-5'

`8' `' `-5'

`3' `' `-5'

…..

is a tty

real user = 1000; effective user = 1000

using /usr/bin/pager -s as pager

Como vemos, Man hace uso de su archivo de configuración para establecer valores antes de visualizar la página.

Es muy recomendable utilizar esta opción si queremos entender el funcionamiento interno de Man.

4.4.- OPCIONES DENTRO DE LAS “MANPAGES”

Una vez “dentro” de una página, podemos realizar diversas acciones. Las vemos:

 

TECLA

SIGNIFICADO

q

Salir de la pantalla

h

Despliega la pantalla de ayuda

e

Avanza una línea

y

Regresa una línea

[Barra espaciadora]

Avanza una pantalla

d

Avanza media pantalla

u

Regresa media pantalla

[Flecha a la derecha]

Mueve media pantalla a la derecha

[Flecha a la izquierda]

Mueve media pantalla a la izquierda

¿[cadena]

Busca una cadena de texto hacia arriba

/[cadena]

Busca una cadena de texto hacia abajo

g

Avanza al inicio del manual

G

Avanza al final del manual

Ejecución sin cerrar man

Como en el editor Vi, es posible presionar la tecla ! en cualquier momento y ejecutar el comando que queramos sin cerrar Man, o sin la necesidad de abrir otra shell.

Luego, pulsando la tecla Enter, volveremos a la página Man previa. Lo vemos:

Por ejemplo, ejecutamos la instrucción nslookup:

usuario@miMaquina:~$ man fdisk

…..

FDISK(8) Manual del Programador de Linux FDISK(8)

NOMBRE

fdisk - Manipulador de tablas de particiones para Linux

SINOPSIS

fdisk [-b] [-u] [dispositivo]

!nslookup pntic.mec.es


usuario@miMaquina:~$ man fdisk

Server: 192.168.238.2

Address: 192.168.238.2#53

Non-authoritative answer:

www.cnice.mec.es canonical name = cibeles-2.pntic.mec.es.

Name: cibeles-2.pntic.mec.es

Address: 195.53.123.85

!done (press RETURN)

Marcar una parte del manual

m[letra]

Marca o crea un marcador en la posición actual

'[letra]

Mueve el puntero al marcador establecido anteriormente

Las marcas están activas mientras la página no se cierre. Cuando salgamos de la página, las marcas se perderán.

Todas estas acciones estas directamente relacionadas con el paginador que utiliza Man, que por defecto es “less”. Si utilizamos otro, quizás nos todas las acciones funcionen.

Por supuesto, podremos utilizar estas acciones sobre cualquier documento abierto con “less”.

SEGUIR LEYENDO EL ARTÍCULO