Cómo usar el comando man de Linux: secretos ocultos y conceptos básicos

Un indicador de terminal en una computadora portátil con Linux.
Fatmawati Achmad Zaenuri / Shutterstock

Todo lo que necesita saber sobre Linux está en sus páginas de manual. Por ejemplo, puede buscar un comando para realizar una tarea, incluso si no sabe cómo se llama. Pero, ¿cómo puedes encontrar las páginas de manual? A continuación se muestran algunos trucos.

Manual integrado de Linux

Hay una vieja broma de Linux (de la era dorada de Unix) de que el único comando que necesita saber es manel punto de entrada del sistema al manual del usuario . Hay una pizca de verdad en esto, pero incluso manpuede resultar confuso al principio. O, más exactamente, encontrar la información que necesita puede resultar confuso.

¿Alguna vez ha sabido lo que quería hacer, pero no sabía el nombre del comando que haría la tarea? Probablemente todos hemos pasado por eso. Es como intentar buscar una palabra en el diccionario cuando no la conoces.

Entonces, ¿cómo puedes encontrar lo que estás buscando? Bueno, hay formas de sortear este dilema con man.

Los números son otro tema de estudiantes de primer año. ¿Qué son y qué significan? Verá cosas similares man(2)o man(5)citadas en la documentación y en Internet. También verá referencias a comandos seguidos de números, como  mount(2)y mount(8). Seguramente no puede haber más de un mountcomando, ¿verdad? Como veremos, los números son importantes y relativamente simples.

Hablando de simple, buscar dentro manes bastante fácil una vez que sabes cómo hacerlo. De hecho, hay algunas formas interesantes de buscar y navegar man. ¡Vamos a encenderlo y echar un vistazo!

Cómo abrir el manual

Para usarlo man, escribe manen la línea de comando, seguido de un espacio y un comando de Linux. manabre el manual de Linux en la «página de manual» que describe ese comando, si puede encontrarlo, por supuesto.

Escribamos lo siguiente y veamos qué mandice sobre man:

hombre hombre

El comando "man man" en una ventana de terminal.

Se manabre la página de manual de .

La página de manual de "man 1" se abre en una ventana de terminal.

Como puede ver, esta es la man(1)página.

Siga estos consejos para navegar por la página:

  • Para desplazarse por la página de manual una línea a la vez:  Utilice la rueda de desplazamiento del mouse o las teclas de flecha hacia arriba y hacia abajo y Enter.
  • Para moverse por la página de manual una pantalla a la vez: Presione la barra espaciadora y las teclas PgDn y PgUp.
  • Para ir directamente a la parte superior o inferior de la página de manual:  Presione las teclas Inicio y Fin.

Si presiona H, ingresa a la sección de ayuda y ve una tabla de combinaciones de teclas alternativas que puede usar. Los enumerados anteriormente probablemente se sentirán más naturales para la mayoría de las personas.

Para salir  man, simplemente presione Q.

La anatomía de una página de hombre

En la parte superior de la página, verá los títulos «Nombre» y «Sinopsis». Existe una convención para el diseño de las páginas de manual. Hay páginas de manual para comandos, programas y funciones de programación (rutinas de biblioteca). No verá todos estos encabezados en todas las páginas de manual, porque algunos de ellos solo se aplican a ciertos tipos de comandos.

Los siguientes son algunos de los títulos que puede ver:

  • Nombre: el nombre del comando que describe la página de manual.
  • Sinopsis: un resumen del comando y su sintaxis.
  • Configuración: detalles de configuración para un dispositivo.
  • Descripción: Una explicación de lo que hace el programa.
  • Opciones: una descripción de las opciones de la línea de comandos que acepta el comando.
  • Estado de salida: posibles valores de estado de salida para el comando y qué puede hacer que se utilicen.
  • Valor de retorno: si la página del manual es para una rutina de biblioteca, esto describe el valor que la rutina de biblioteca puede enviar de vuelta a la función que llamó a esa rutina.
  • Errores: una lista de los valores que se pueden colocar en  errno caso de error .
  • Entorno: una lista de las variables de entorno que afectan el comando o programa, y ​​de qué manera.
  • Archivos: una lista de los archivos que utiliza el comando o programa, como los archivos de configuración.
  • Atributos: un resumen de varios atributos del comando.
  • Versiones: detalles del kernel de Linux o las versiones de la biblioteca donde una llamada al sistema o una función de biblioteca apareció por primera vez o cambió significativamente de versiones anteriores.
  • Conforme a: una descripción de cualquier estándar con el que el comando podría cumplir, como POSIX .
  • Notas: Notas varias.
  • Errores: problemas conocidos.
  • Ejemplos: uno o más ejemplos que demuestran el uso del comando.
  • Autores: Las personas que escribieron o mantienen el comando.
  • Consulte también: Lectura recomendada relacionada con el comando o tema.
Relacionado:  Cómo crear alias y funciones de shell en Linux

Las secciones del hombre

Si se desplaza hacia abajo un par de páginas, verá una lista de las secciones en el manual.

Secciones del manual enumeradas en "man" en una ventana de terminal.

Las secciones son:

  1. Comandos generales: comandos que usa en la línea de comando.
  2. Llamadas al sistema: funciones que proporciona el núcleo que un programa puede llamar.
  3. Funciones de biblioteca: los programas de funciones pueden llamar a bibliotecas de códigos (principalmente el estándar C).
  4. Archivos especiales: generalmente dispositivos, como los que se encuentran en / dev, y sus controladores.
  5. Los formatos de archivo y convenciones: Formatos de archivos, como la passwdcronmesa, y tarlos ficheros de archivo.
  6. Juegos:  descripciones de comandos, como  fortune, que muestran citas de una base de datos cuando los ejecuta.
  7. Varios:  descripciones de cosas como inodos, parámetros de arranque y él manmismo.
  8. Administración del sistema: Comandos y demonios generalmente reservados para roottrabajar.
  9. Rutinas del kernel: información relacionada con el funcionamiento interno del kernel. Esto incluye interfaces de función y variables útiles para los programadores que escriben controladores de dispositivos, por ejemplo. En la mayoría de los sistemas, esta sección no está instalada.

Cuando ve un comando seguido de un número, se refiere a la descripción de ese comando en esa sección del manual. Por ejemplo, se man(1) refiere a la entrada en la sección uno del manual que describe el  man comando.

En la imagen de arriba, verá una referencia a man(7). Esto significa que hay más información sobre man en otra sección. Cuando abrimos la página de manual por primera vez, se mostró  man(1). Si escribe solo  man sin número de sección, man busca todas las secciones en orden, buscando una entrada para el comando que escribió. Por supuesto, lo encontró man(1)antes  man(7).

Si desea forzar la manbúsqueda de una entrada de una sección específica, debe incluir el número de sección en la línea de comando.

Por ejemplo, escribimos lo siguiente para abrir la entrada  manen la sección siete:

hombre 7 hombre

El comando "man 7 man" en una ventana de terminal.

El manual se abre a la entrada del hombre en la sección siete.

Relacionado:  Cómo cifrar archivos con gocryptfs en Linux

Una página "man" abierta a la sección siete del manual en una ventana de terminal.

Esta página de manual proporciona instrucciones para escribir páginas de manual. Describe el formato de archivo y las macros que puede utilizar para hacer parte del trabajo por usted. La man(1)página de la sección uno que vimos anteriormente describe cómo se usa man.

Cómo buscar entradas en secciones

Normalmente, si simplemente desea saber cómo usar un comando, no tiene que dar un número de sección. manencontrará la entrada estándar que describe cómo usar ese comando en la sección uno del manual. A veces, sin embargo, es necesario abrir una entrada de comando en una sección en particular porque desea información diferente.

Puede averiguar fácilmente qué secciones del manual contienen entradas para un comando. Cada página de manual tiene un título y una breve descripción. La -fopción (whatis) busca los títulos de las páginas y devuelve una lista de coincidencias.

Para este ejemplo, escribimos lo siguiente:

hombre -f hombre

El comando "man -f man" en una ventana de terminal.

Las dos páginas de manual de manse enumeran junto con sus números de sección y descripciones breves. Sin embargo, tenga cuidado: algunas entradas tienen el mismo nombre, pero describen diferentes comandos y funciones.

Por ejemplo, escribimos lo siguiente:

man -f printf

El comando "man -f printf" en una ventana de terminal.

Parece que se encontraron dos entradas para printf: la primera en la sección uno y otra en la sección tres. Sin embargo, estos son comandos diferentes. La página de manual de la sección uno describe el comando de la línea de printfcomandos, que formatea la salida en la ventana del terminal . La página del manual en la sección tres describe la printf  familia de funciones de biblioteca en el lenguaje de programación C .

También es posible buscar en las descripciones breves, así como en los títulos de las páginas. Para hacerlo, usa la -kopción (apropos). Esto también coincidirá con las apariciones del término de búsqueda dentro de otras palabras más largas.

Escribimos lo siguiente:

man -k printf

El comando "man -k printf" en una ventana de terminal.

Muchos de estos comandos se describen en las mismas páginas de manual porque su funcionalidad principal es básicamente la misma. La página de manual de vprintfdescribe la funcionalidad de 10 de los comandos enumerados en la imagen de arriba.

Puede aprovechar esta funcionalidad para buscar información relacionada con lo que está tratando de lograr, incluso si no sabe el nombre del comando que desea usar.

Supongamos que desea cambiar la contraseña de una cuenta de usuario. Podemos buscar cualquier comando que mencione «usuario» en los títulos o descripciones de la página de manual. Luego, podemos canalizarlo greppara buscar entradas que contengan «contraseña».

Para hacer esto, escribimos lo siguiente:

man -k 'usuario' | grep contraseña

El comando "man -k 'user' | grep password" en una ventana de terminal.

Debido a que incluimos la palabra «usuario» entre comillas simples e incluimos un espacio al final, solo encontrará coincidencias para «usuario», no para «usuarios». Un vistazo rápido a los resultados de la búsqueda nos muestra que el posible candidato es passwd.

Debido a que es una página de manual de la sección uno y no necesitamos incluir el número de sección en el comando, escribimos lo siguiente:

hombre passwd

Digamos que necesitamos un comando que cuente la cantidad de palabras en un archivo de texto. Escribimos lo siguiente para ver si existe algo así:

hombre -k palabra | conteo de grep

El comando "man -k word | grep count" en una ventana de terminal.

Para averiguar todo lo que hay que saber sobre el conteo de palabras, escribimos este comando:

hombre wc

Hablando de wceso, también podemos usar la -kopción (apropos) con un solo punto ( .) como objetivo de búsqueda, que coincidirá con todo. Si lo canalizamos wcy usamos la -lopción (líneas), nos dirá cuántas páginas de manual hay en la computadora.

Relacionado:  Cómo crear un archivo de intercambio en Linux

Para hacer todo esto, escribimos el siguiente comando:

man -k. | wc -l

El comando "man -k. | Wc -l" en una ventana de terminal.

Hay 6.706 páginas de manual en esta computadora Ubuntu, pero no se sorprenda si el número es diferente en la suya. Puede variar según los paquetes de software y las utilidades que tenga en su máquina y las páginas de manual que estén preinstaladas.

Buscando en una página de manual

También puede buscar hacia adelante o hacia atrás desde su posición actual dentro de una página de manual.

Para este ejemplo, escribimos lo siguiente para abrir la página de manual del historycomando:

historia del hombre

El comando "man history" en una ventana de terminal.

Para buscar hacia adelante, presionamos la barra diagonal ( /) y luego escribimos la palabra «evento». El objetivo de búsqueda aparece en la parte inferior de la ventana de la terminal, y presionamos Enter para iniciar la búsqueda.

El comando "/ event" en la página "history man" en una ventana de terminal.

La ventana muestra el primer resultado de las coincidencias encontradas y están resaltadas.

Una página de "history man" con resultados de búsqueda de "evento" resaltados en una ventana de terminal.

Presione “n” para moverse de un resultado a otro hacia la parte inferior de la página. Para buscar hacia atrás a través de la página de manual, presione «N»; esto lo llevará de regreso a la parte superior de la página.

Para activar y desactivar el resaltado, presione Esc + U.

Si está cerca de la parte inferior de la página de manual y desea buscar hacia arriba, presione el signo de interrogación (?) Y luego escriba el término de búsqueda. Buscamos «entrada».

Un término de búsqueda "? Entrada" para buscar hacia arriba en una página de manual en una ventana de terminal.

Nuevamente, se resaltan los resultados coincidentes.

Resultados para el término de búsqueda "entrada" resaltado en una página de manual en una ventana de terminal.

Para buscar el siguiente resultado coincidente, presione “n” para moverse hacia el principio de la página del manual. Presione «N» para ir al resultado de coincidencia anterior y moverse hacia el final de la página del manual.

Hay otra forma de buscar en una página de manual. Oculta todas las líneas que no contienen una coincidencia con su término de búsqueda, por lo que es mejor usar números de línea con esta técnica.

Si escribimos “-N” y presionamos Enter, podemos ver los números de línea en la página del manual.

Una página de manual con números de línea en una ventana de terminal.

Presionamos el signo comercial (&), escribimos nuestro término de búsqueda (número) y luego presionamos Enter.

Una búsqueda de línea coincidente "& / number" en una página de manual en una ventana de terminal.

Solo se muestran las líneas que contienen nuestro término de búsqueda.

Líneas que contienen la palabra "número" en una página de manual en una ventana de terminal.

Es fácil hojearlos y detectar cualquiera que parezca interesante. Creemos que la línea 292 parece prometedora, por lo que queremos ir a esa sección de la página de manual y comprobarla.

Para ver todas las líneas nuevamente, presionamos el signo y (&), y luego presionamos Enter.

El comando "& /" para salir de las líneas coincidentes se muestra en una página de manual en una ventana de terminal.

Escribimos «292» y luego «g» para ir a esa línea.

Un comando para moverse a la línea "292" en una página de manual en una ventana de terminal.

Tan pronto como escribimos «g», se nos lleva a la línea 292 (por lo que la «g» no aparece en la imagen de arriba). La línea 292 se muestra en la parte superior de la ventana de la terminal.

Línea 292 en la parte superior de la pantalla en una página de manual en una ventana de terminal.

Puede presionar «-n» y presionar Enter para eliminar los números de línea.

Lea el fabuloso manual

Hay una gran cantidad de información en las páginas de manual. Incluso con los comandos que cree que conoce bien, es seguro que existen otras opciones de las que nunca ha oído hablar.

Definitivamente también encontrará comandos que no sabía que existían. Con tantas formas diferentes de buscar y rastrear información, es increíble tenerlo todo al alcance de la mano.