¿Dónde se documentan los comandos disponibles en la ventana de la página man, y estos comandos dependen del sistema?

9

Después de haber usado Linux durante años, de repente descubrí que no sé cómo usar el mancomando correctamente. Es bien sabido que se puede escribir qpara salir de una página de manual, /buscar y otros. Sin embargo, no sé dónde están documentados. Lo intenté man man man -a man info many busqué en Google, sin suerte.

Indíqueme la posición correcta para buscar esta información, incluso si es correcta man many la he pasado por alto, está perfectamente bien, solo avíseme.

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

Weijun Zhou
fuente
¿No se acaban de ver las páginas man less? (Está en mi distribución, al menos, y hmuestra un resumen de los lesscomandos)
Rastapopoulos
@Rastapopoulos ¿No acaban de verse las páginas man less? No. Porque lessno es una utilidad estándar.
Andrew Henle
Supongo que puede usar readlink -f /usr/bin/pagero readlink -f $(which pager)para averiguar qué buscapersonas tiene (por defecto /bin/less) que manel buscapersonas utilizado. Puede (debería) funcionar directamenteman pager
Hastur
2
Si lee sus páginas de manual utilizando moreo less, puede escribir hpara obtener ayuda. (o simplemente puedes usar emacs...)
Alex Vong
1
Si escribe ?o hen el indicador del localizador, debería darle una lista de comandos.
Barmar

Respuestas:

11

De hecho, está justo en la página del manual para man, bajo el subtítulo "Control de salida formateada" y repetido más adelante en la sección "MEDIO AMBIENTE" para una buena medida:

Por defecto, el hombre usa pager -s.
La página del manual explica cómo hay una jerarquía de las variables de entorno y las opciones de línea de comandos ( PAGER, MANPAGERy --pager) para anular el valor predeterminado.

Así es como se lee en sistemas como Debian Linux. Por el contrario, en sistemas como Oracle Linux, el man-dbpaquete se ha creado con un valor predeterminado diferente, que, sin embargo, todavía se refleja en la página del manual en los mismos lugares:

Por defecto, el hombre usa less -s.

Los man-dbintentos de paquetes de detectar automáticamente, en tiempo de compilación, que por defecto localizador a construir-en el que el comando, y el documento en su página de manual, de less, more, y pager.

En sistemas como Debian Linux, el pagercomando es parte del sistema de "alternativas" y puede correlacionarse con uno de varios comandos reales:

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

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

buscapersonas

JdeBP
fuente
5

El hombre usa un buscapersonas para mostrar el contenido.

Los detalles exactos dependen de la versión manque esté utilizando.

Para la versión utilizada en muchos sistemas:

  • Si -p pagerse da la opción, se usa ese localizador.
  • De lo contrario, si se establece la variable de entorno MANPAGER, se utiliza.
  • De lo contrario, si PAGERse establece, se utiliza.
  • De lo contrario, el valor predeterminado es usar /usr/bin/less

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

Debian usa man-dbque tiene diferentes valores predeterminados.

Leer man manpara los detalles

Flautista de Hamelín
fuente
Gracias por su respuesta. Si bien la respuesta explica cómo manfunciona, me gustaría preguntarle si puede hacer el favor de señalarme el lugar correcto donde se documenta este comportamiento. Gracias.
Weijun Zhou
En mi man mansalida (nuevamente, manversión: 2.6.3) dice que "por defecto, se usa menos -s", ¿entonces espero que esto dependa de la versión y del sistema?
Weijun Zhou
1
Este es solo un ejemplo de la filosofía estándar de Unix: comandos pequeños y simples que operan en flujos de texto y hacen exactamente una cosa y lo hacen bien. Formatear un manual y paginar son dos cosas, por eso son realizadas por dos herramientas diferentes. De esta forma, la herramienta de paginación se puede reutilizar para otras tareas, no solo para mostrar páginas manuales.
Jörg W Mittag
2

Gracias a @Rastapopoulos, encuentro una línea relacionada lessen man manuna vieja caja de Linux ( manversión: 1.6f) en la sección MEDIO AMBIENTE que dice:

NAVEGADOR El nombre de un navegador para usar para mostrar páginas de manual HTML. Si no está configurado, /usr/bin/lessse utiliza.

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

NAVEGADOR Si se establece $ BROWSER, su valor es una lista de comandos delimitada por dos puntos, cada uno de los cuales se utiliza para intentar iniciar un navegador web para man --html. En cada comando,% s se reemplaza por un archivo? nombre que contiene la salida HTML de groff, %% se reemplaza por un solo signo de porcentaje (%) y% c se reemplaza por dos puntos (:).

Según esta información, creo que está formateada lessde forma predeterminada (al menos 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 el mancomando de manera incorrecta).

Weijun Zhou
fuente
2

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

La respuesta estándar POSIX no específica de Linux se puede encontrar en la mandocumentación POSIX :

NOMBRE

man - display system documentation

SINOPSIS

man [-k] name...

...

VARIABLES DE ENTORNO

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

LANG

Proporcione un valor predeterminado para las variables de internacionalización que no están establecidas o son nulas. (Consulte Variables de internacionalización de XBD para conocer la precedencia de las variables de internacionalización utilizadas para determinar los valores de las categorías locales).

LC_ALL

Si se establece en un valor de cadena no vacío, anule los valores de todas las demás variables de internacionalización.

LC_CTYPE

Determine la configuración regional para la interpretación de secuencias de bytes de datos de texto como caracteres (por ejemplo, caracteres de un solo byte en lugar de múltiples bytes en argumentos y en la base de datos de resumen). El valor de LC_CTYPE no necesita afectar el formato de la información escrita sobre el nombre de los operandos.

LC_MESSAGES

Determine la configuración regional que se debe utilizar para afectar el formato y el contenido de los mensajes de diagnóstico escritos con error estándar y los mensajes informativos escritos con salida estándar.

NLSPATH

Determine la ubicación de los catálogos de mensajes para el procesamiento de LC_MESSAGES.

BUSCAPERSONAS

Determine un comando de filtrado de salida para escribir la salida en un terminal. Cualquier cadena aceptable como un operando command_string para el comando será válida. Cuando la salida estándar es un dispositivo terminal, la salida de la página de referencia se canalizará a través del comando. Si la variable PAGER es nula o no está configurada, el comando será una u otra utilidad de paginador documentada en la documentación del sistema.sh-cmore

Observe la sección JUSTIFICACIÓN, que describe por qué manno se especifica tan completamente:

RAZÓN FUNDAMENTAL

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

  • No se requiere una gran cantidad de documentación en un sistema que no tenga espacio en disco en exceso.

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

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

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

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

La entrada de "propósito" que se incluirá en la base de datos puede ser similar al título de la sección (menos 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 conocer las razones relativas al paginador predeterminado.

La advertencia en la descripción LC_CTYPE se agregó porque no es un requisito que una implementación proporcione páginas de referencia para todas sus configuraciones regionales compatibles en cada sistema; cambiar LC_CTYPE no necesariamente traduce la página de referencia a otro idioma. Esto es equivalente al estado actual de LC_MESSAGES en POSIX.1-2008. Los mensajes específicos de la ubicación aún no son un requisito.

La variable histórica MANPATH no se incluye en POSIX porque no se intenta especificar las convenciones de nomenclatura para los archivos de página de referencia, ni siquiera se exige que sean archivos. En algunas implementaciones, podrían ser una verdadera base de datos, un archivo de hipertexto o incluso cadenas fijas dentro del ejecutable man. Los desarrolladores estándar consideraron que la portabilidad de las páginas de referencia está fuera de su alcance de trabajo. Sin embargo, los usuarios deben tener en cuenta que MANPATH se implementa en varios sistemas históricos y que se puede usar para adaptar el patrón de búsqueda de páginas de referencia de las diversas categorías (utilidades, funciones, formatos de archivo, etc.) cuando el administrador del sistema revela la ubicación y las convenciones para las páginas de referencia en el sistema.

...

La discusión de la lógica del paginador de la página mailx :

El paginador seleccionado cuando PAGER es nulo o desarmado está parcialmente sin especificar para permitir la práctica histórica del Sistema V de usar pg como predeterminado. Pasar por alto la función de paginación, como declarar que cat es el paginador, no cumpliría con el significado previsto de esta descripción. Sin embargo, cualquier "usuario portátil" tendría que configurar PAGER explícitamente para obtener su paginador preferido en todos los sistemas. La elección del paginador se realizó parcialmente sin especificar, a diferencia de la elección del editor VISUAL (con el mandato de ser vi) porque la mayoría de los localizadores históricos siguen un tema común de entrada del usuario, mientras que los editores difieren dramáticamente.

Andrew Henle
fuente