Copie todo el texto de una página `man` completa de Terminal.app

Estoy leyendo una página man muy larga ( man ssh). Quiero guardar todo ese texto para una lectura más conveniente en un editor de texto.

Desafortunadamente, elegir cualquiera de:

  • Editar → Seleccionar todo → Copiar

  • Shell → Exportar texto como...

da como resultado guardar solo una pantalla completa del texto, no todo el texto que se desplazó.

¿Cómo extraigo el texto de una manpágina entera?

Hay una aplicación gratuita de terceros, Man Reader. Abre una ventana con una lista a la izquierda de todas las páginas man posibles. Cuando selecciona uno, imprime el contenido en el panel central. Bastante agradable.

Respuestas (6)

Puede enviar texto sin formato al portapapeles canalizando a pbcopy, para pegarlo en cualquier lugar como de costumbre.

man ssh | col -b | pbcopy

o equivalente

man -P "col -b | pbcopy" ssh

el último de los cuales es mejor si desea usarlo como un alias, como mancp ssh, dado:

alias mancp='man -P "col -b | pbcopy"'

Hay métodos para ir a HTML/PDF: ¿Se pueden convertir las páginas man a formato html y/o pdf?


Si lo que busca es una mejor experiencia de lectura, puede hacer clic con el botón derecho en una selección de un comando y abrir su página de manual como una ventana/pestaña separada, con desplazamiento normal y ⌘F buscar.

mejor lectura

Puede personalizar cómo se ve esto en Preferencias de terminal → Perfiles, en el perfil de la página de manual, que es uno de los perfiles predeterminados que existen.
Esto incluye la familia y el tamaño de la fuente (consulte también el menú Ver) y los colores de fondo/primer plano.

Preferencias de perfil de la página de manual

El clic derecho para la página de manual no funciona con iTerm. En mi máquina funciona con una especie de terminal. La ventana parpadeó supongo que 10 veces por segundo. Podía detenerlo haciendo clic, pero no sabía dónde estaba haciendo clic...
@jmh Parece ser un error de Mojave, este parpadeo también lo tiene aquí
pbcopyy pbpasteson dos de las mayores utilidades disponibles en Macos.
¡Gracias! Todas las respuestas son informativas y útiles, pero tuve que aceptar esta. La man ssh | col -b | pbcopysolución aborda directamente los detalles de mi Pregunta. Y luego, como guinda del pastel, el lector de páginas de manual incorporado de la aplicación Terminal.app lo supera por su facilidad de uso.
Una expansión útil de su solución también puede incluir el ancho de columna y/o abrirlo directamente en el editor de texto de su elección, por ejemplo:MANWIDTH=80 MANPAGER="col -bx" man tmutil | open -fa "TextMate"

Si desea leer la página de manual en Vista previa, con un formato agradable como PDF, puede ejecutar

man -t ssh | open -f -a Preview

O

man ssh | col -b | open -f -e

para abrir la versión de texto en TextEdit.

Canalice la salida estándar del mancomando en ejecución a colla utilidad integrada. Ejecute la siguiente línea de comando:

man ssh | col -b > ssh.txt

@BasilBourque También encontré este maravilloso artículo.

La mejor experiencia de lectura para estas tareas se logra cuando se utiliza una aplicación dedicada para eso.

Dos candidatos:

AquaLess

AquaLess es un buscapersonas de texto para Mac OS X. Le permite buscar archivos de texto sin formato y, lo que es más importante, salida de texto de las herramientas de línea de comandos de Unix. AquaLess es un reemplazo de Cocoa para el comando less, que está restringido a la ventana de la terminal. AquaLess abre una ventana separada para cada texto, para que puedas seguir trabajando en la terminal mientras lees.

O hombre abierto

ManOpen es una aplicación GUI de MacOS X para ver las páginas del manual de Unix, que son la documentación estándar para los programas de línea de comandos de Unix, bibliotecas de programadores y otra información del sistema. Puede abrir archivos directamente o recibir títulos, en cuyo caso mostrará la salida del programa de línea de comandos `man'. También se proporciona una interfaz apropiada, que es básicamente una búsqueda rápida y sucia de las bases de datos de la página del manual. Se brindan servicios a otras aplicaciones para abrir archivos/títulos seleccionados o realizar búsquedas apropiadas utilizando el texto seleccionado. ManOpen puede ser útil para abrir una página de manual sin bajar a la línea de comando, navegar y buscar páginas de manual largas y complejas, o simplemente para imprimirlas.

También se incluye una herramienta de línea de comando `openman', que es similar a man, excepto que mostrará las páginas man en ManOpen.app en lugar de mostrarlas directamente en la terminal.

¿O leer esas páginas en Safari? Entonces ve bwana

Descarga Bwana y suéltalo en tu carpeta de aplicaciones. Luego, sin siquiera ejecutarlo, puede comenzar a ver las páginas del manual de Unix usando su navegador. Simplemente escriba "man:" seguido de la página de manual que está buscando en el campo URL de su navegador. Presiona enter y deja que Bwana haga el resto.

Las páginas man generadas por Bwana son simples y precisas. Simplemente agregamos un poco de color, algunos encabezados en negrita y lo limpiamos un poco, para que sean agradables a la vista. De hecho, Bwana es tan simple que no hay mucho más que podamos decir al respecto. Así que simplemente descargue Bwana ahora para ver qué tan fácil se integra con su navegador y qué diferencia hace al ver las páginas del manual.

A continuación, puede crear una función de shell para ello de esta manera:

function sman
    open -a Bwana man:$1
end

Para completar: si tiene instalado X11, entonces también tiene xman.

Otros candidatos podrían ser Man Reader ($) , Manpager , Manpower ($) , Man Viewer .

Si desea tener copias en PDF de las páginas de su manual, aquí hay una función que agregué a mi .bash_profilearchivo para crear un PDF de cada comando BSD que buscaría en la página del manual :

manp () 
{ 
    docDir="$HOME/Documents/BSD Commands"
    [[ ! -d $docDir ]] && mkdir -p "$docDir"
    if [[ ! -f $docDir/$1.pdf ]]; then
        man -t "$1" | pstopdf -i -o "$docDir/$1.pdf"
        open "$docDir/$1.pdf"
    else
        open "$docDir/$1.pdf"
    fi
}

Entonces, en la Terminal , se crea, por ejemplo, escribir manp bashen lugar de man bashun PDF , si aún no se ha creado, y luego lo abre la aplicación registrada para manejar documentos PDF . El valor predeterminado es Preview , sin embargo, en mi sistema está configurado para usar Skim , ya que su funcionalidad de búsqueda es mejor que Preview y, de hecho, encontrará la cadena de búsqueda cuando Preview simplemente no lo haga.

Tenga en cuenta que la primera vez que se usa la función , enumerará algunas fuentes en la salida en Terminal , sin embargo, esta es una enumeración única de las fuentes.

Lo bueno de las copias en PDF es que mantiene el formato, es decir, fuente en negrita y cursiva, etc.


Como nota al margen, escribir solo el nombre del comando en Terminal y luego hacer clic con el botón derecho en él y seleccionar Abrir página de manual , lo muestra en una ventana de Terminal totalmente desplazable y con capacidad de búsqueda , que es mucho mejor que escribir, por ejemplo man bash.

¿Por qué hacer las cosas más complicadas de lo que son?

https://man.openbsd.org/ssh

Ya que puedes publicar aquí, obviamente tienes acceso a Internet.

Si busca un poco en Google, probablemente pueda encontrar versiones formateadas de diferentes maneras, por ejemplo, pdf o algo así.

+1 por pragmatismo, aunque ahora debe averiguar qué versión de la página de manual está buscando, a veces (para las diversas herramientas donde los argumentos de la línea de comando son diferentes entre, por ejemplo, Linux y BSD, o donde las cosas cambiaron mucho entre versiones )
y además de los comentarios de @fluffy, esto no funcionará para ninguna de las herramientas macOS de las que hay muchas, por ejemplo, tmutil para Time Machine.
@grg Sí lo hace ss64.com/osx/tmutil.html
Ese es un sitio web diferente, ¿llegaste a eso buscando desde tu enlace en la publicación o solo en Google? Soy consciente de que hay muchas páginas de manual en línea, incluida la propia referencia de desarrollador de Apple que, de hecho, contiene la página de manual de tmutil, pero luego esta respuesta se convierte en nada más que 'Google it'.
@grg Lo obtuve de Google. Sí, pero el propósito de la pregunta era simplificar la lectura de las páginas del manual y las páginas web son una buena manera de lograr ese objetivo.