¿Dónde están documentados los commands disponibles en la window de la página man, y estos commands dependen del sistema?

Habiendo usado Linux por años, de repente descubrí que no sé cómo usar el command man correctamente. Es bien sabido que uno puede escribir q para salir de una página de manual, / para search y otros. No sé, sin embargo, dónde están estos documentados. Probé con man man man -a man info man y Google, sin suerte.

Por favor, pónganme en la position correcta para search esta información, incluso si es correcta en man man y la paso por alto, está perfectamente bien, házmelo saber.

¿Son estos commands diferentes para diferentes sistemas operativos o para diferentes distribuciones de Linux?

De hecho, está justo en la página del manual para man , en el subtítulo "Controlling formatized output" y se repite más adelante en la sección "ENVIRONMENT" para una buena medida:

Por defecto, el hombre usa pager -s .

La página del manual explica cómo hay una jerarquía de variables de entorno y opciones de command-line ( PAGER , MANPAGER y --pager ) para anular el valor pnetworkingeterminado.

Así es como se lee en sistemas como Debian Linux. En sistemas como Oracle Linux, en cambio, el package man-db se ha creado con un valor por defecto diferente, que sin embargo sigue reflejado en la página del manual en los mismos lugares:

Por defecto, el hombre usa less -s .

El package man-db intenta detectar automáticamente, en time de compilation, el buscapersonas pnetworkingeterminado para incorporar al command y documentar en su página de manual, de less , more y pager .

En sistemas como Debian Linux, el command de pager forma parte del sistema de "alternativas" y se puede asignar a uno de varios commands reales:

  jdebp% update-alternatives --list pager
 / bin / less
 / bin / más
 / usr / bin / pg
 / usr / bin / w3m
 jdebp% 

Así que uno consulta sus respectivas páginas de manual para saber cómo manejarlas desde el keyboard, de acuerdo con la alternativa que se haya elegido. De manera útil, el sistema de alternativas de Debian mantiene la página del manual sincronizada con el command elegido, por lo que leer esta página de manual es bastante sencillo:

  buscapersonas 

El hombre usa un buscapersonas para mostrar el contenido.

Los detalles exactos dependen de la versión de man que esté usando.

Para la versión utilizada en muchos sistemas:

  • Si se proporciona la opción -p pager pager, se utiliza ese buscapersonas.
  • De lo contrario, si se establece la variable de entorno MANPAGER , se utilizará.
  • De lo contrario, si se establece PAGER , se usa.
  • De lo contrario, el valor pnetworkingeterminado es usar /usr/bin/less

Si la página del manual está en formatting HTML, se usa MANPAGER lugar de MANPAGER / PAGER

Debian usa man-db que tiene diferentes valores pnetworkingeterminados.

Lee man man para los detalles

Gracias a @Rastapopoulos, encuentro una línea relacionada con less in man man en una vieja caja Linux (versión man : 1.6f) en la sección MEDIO AMBIENTE que dice:

NAVEGADOR El nombre de un browser para usar para mostrar páginas de manual HTML. Si no está configurado, se usa /usr/bin/less .

Sin embargo, en una caja más nueva (versión man : 2.6.3) esta línea ha sido reemplazada por

NAVEGADOR Si $ BROWSER está configurado, su valor es una list de commands delimitada por dos puntos, cada uno de los cuales se usa para intentar iniciar un browser web para man –html. En cada command,% s es reemplazado por un file? nombre que contiene el resultado HTML de groff, %% se reemplaza por un solo signo de porcentaje (%), y% c se reemplaza por dos puntos (:).

En base a esta información, creo que está formateado en less por defecto (al less para el primer caso). Sin embargo, incluso si este es el caso, está documentado de una manera que no me parece clara (o he aprendido que el command del man incorrecto).

No hay una manera real de responder completamente su pregunta en general para varios sistemas operativos, ya que la implementación del man no está realmente tan completamente especificada.

La respuesta estándar no basada en POSIX y específica de Linux se puede encontrar en la documentation del man POSIX :

NOMBRE

 man - display system documentation 

SINOPSIS

 man [-k] name... 

VARIABLES DE ENTORNO

Las siguientes variables de entorno afectarán la ejecución del hombre:

LANG

Proporcione un valor pnetworkingeterminado para las variables de internationalization que están desarmadas o nulas. (Consulte Variables de internationalization de XBD para conocer la precedencia de las variables de internationalization utilizadas para determinar los valores de las categorías de configuration regional).

LC_ALL

Si se establece en un valor de cadena no vacío, anula los valores de todas las otras variables de internationalization.

LC_CTYPE

Determine la configuration regional para la interpretación de secuencias de bytes de datos de text como caracteres (por ejemplo, caracteres de un solo byte en oposition a caracteres de múltiples bytes en arguments y en la database de resumen). El valor de LC_CTYPE no tiene por qué afectar el formatting de la información escrita sobre los operandos del nombre.

LC_MESSAGES

Determine la configuration regional que se debe usar para afectar el formatting y el contenido de los posts de diagnóstico escritos en el error estándar y los posts informativos escritos en la salida estándar.

NLSPATH

Determine la location de los catálogos de posts para el procesamiento de LC_MESSAGES.

BUSCAPERSONAS

Determine un command de filtrado de salida para escribir la salida en un terminal. Cualquier cadena aceptable como un operando command_string para el command sh -c será válida. Cuando la salida estándar es un dispositivo terminal, la salida de la página de reference se canalizará a través del command. Si la variable PAGER es nula o no está establecida, el command será more u otra utilidad del paginador documentada en la documentation del sistema.

Tenga en count la sección JUSTIFICACIÓN, que describe por qué el man no está tan completamente especificado:

RAZÓN FUNDAMENTAL

Se reconoce que la utilidad man es solo de utilidad mínima como se especifica. La opinión de los desarrolladores estándar estaba fuertemente dividida en cuanto a la cantidad o la poca información que el hombre debería estar obligado a proporcionar. Consideraron, sin embargo, que la provisión de alguna forma portátil de acceder a la documentation ayudaría a la portabilidad del usuario. Los arguments en contra de una especificación más completa fueron:

  • No se deben requerir grandes cantidades de documentation en un sistema que no tiene exceso de espacio en el disco.

  • El sistema manual actual no presenta información de una manera que ayude en gran medida a la portabilidad del usuario.

  • Un "mejor sistema de ayuda" es actualmente un área en la que los proveedores sienten que pueden agregar valor a sus implementaciones POSIX.

La opción -f se consideró, pero debido a las diferencias de implementación, no se incluyó en este volumen de POSIX.1-2008.

La descripción se cambió para que sea más específica sobre lo que se debe mostrar para una utilidad. Los desarrolladores estándar consideraron que es insuficiente permitir una visualización de solo la sinopsis sin dar una breve descripción de lo que hace cada opción y operando.

La input "propósito" que se includeá en la database puede ser similar al título de la sección (less el prefijo numérico) de este volumen de POSIX.1-2008 para cada utilidad. Estos títulos son similares a los utilizados en los sistemas históricos para este propósito.

Consulte mailx para get información sobre el paginador pnetworkingeterminado.

Se agregó la advertencia en la descripción LC_CTYPE porque no es un requisito que una implementación proporcione páginas de reference para todas las configuraciones regionales admitidas en cada sistema; cambiar LC_CTYPE no necesariamente traslada la página de reference a otro idioma. Esto es equivalente al estado actual de LC_MESSAGES en POSIX.1-2008: los posts específicos de locale aún no son un requisito.

La variable histórica MANPATH no se incluye en POSIX porque no se intenta especificar las convenciones de nombres para los files de página de reference, ni siquiera exigir que sean files en absoluto. En algunas implementaciones, podrían ser una verdadera database, un file de hipertext o incluso cadenas fijas dentro del ejecutable hombre. Los desarrolladores estándar consideraron la portabilidad de las páginas de reference fuera de su ámbito de trabajo. Sin embargo, los usuarios deben tener en count que MANPATH se implementa en varios sistemas históricos y que se puede usar para adaptar el patrón de búsqueda para las páginas de reference de las diversas categorías (utilidades, funciones, formattings de file, etc.) cuando el administrador del sistema revela la location y las convenciones para páginas de reference en el sistema.

El razonamiento razonado del paginador de la página mailx :

El paginador seleccionado cuando PAGER está nulo o no configurado está parcialmente no especificado para permitir la práctica histórica del Sistema V de usar pg como valor pnetworkingeterminado. Pasar por alto la function de pagination, como declarar que cat es el paginador, no cumpliría con el significado pretendido de esta descripción. Sin embargo, cualquier "usuario portátil" tendría que establecer PAGER explícitamente para get su paginador preferido en todos los sistemas. La elección del paginador se hizo parcialmente no especificada, a diferencia de la opción del editor VISUAL (obligatorio para ser vi) porque la mayoría de los localizadores históricos siguen un tema común de la input del usuario, mientras que los editores difieren dramáticamente.