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

20

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

Lamentablemente, elegir cualquiera de:

  • Editar → Seleccionar todo → Copiar

  • Shell → Exportar texto como ...

resulta en guardar solo una pantalla llena del texto, no todo el texto que se desplazó.

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

Albahaca Bourque
fuente
Hay una aplicación de terceros gratuita 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.
jmh

Respuestas:

25

Puede insertar texto sin formato en el portapapeles pbcopyal pegar, para pegar 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 quieres 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 la mejor experiencia de lectura, puede hacer clic con el botón derecho en una selección de comando y abrir su página de manual como una ventana / pestaña separada, con desplazamiento normal y ⌘F buscar.

Mejor lectura

Puede personalizar el aspecto 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

grg
fuente
2
El clic derecho para la página man no funciona con iTerm. En mi máquina funciona más o menos con terminal. La ventana parpadeó, supongo que 10 veces por segundo. Podría detenerlo por clic, pero yo no sabía dónde estaba haciendo clic ...
JMH
@jmh Parece ser un error de Mojave, este parpadeo también lo consiguió aquí
nohillside
1
pbcopyy pbpasteson dos de las mejores utilidades disponibles en Macos.
Christopher Schultz el
1
¡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 la guinda del pastel, el lector de páginas de manual incorporado de Terminal.app triunfa sobre eso para facilitar su uso.
Basil Bourque
Una expansión útil de su solución también puede incluir el ancho de la columna y / o abrirla directamente en el editor de texto de su elección, por ejemplo: MANWIDTH=80 MANPAGER="col -bx" man tmutil | open -fa "TextMate"
Asmus
13

Si desea leer la página de manual en Vista previa, bien formateada 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.

nohillside
fuente
6

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

man ssh | col -b > ssh.txt

Nimesh Neema
fuente
@BasilBourque También encontré este maravilloso artículo.
Nimesh Neema
4

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 localizador de texto para Mac OS X. Le permite explorar archivos de texto sin formato y, lo que es más importante, la 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 terminal. AquaLess abre una ventana separada para cada texto, para que pueda seguir trabajando en la terminal mientras lee.

O hombre abierto

ManOpen es una aplicación GUI de MacOS X para ver páginas de manuales de Unix, que son la documentación estándar para los programas de línea de comandos de Unix, las 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. Los servicios se proporcionan a otras aplicaciones para abrir archivos / títulos seleccionados o hacer búsquedas a propósito utilizando el texto seleccionado. ManOpen puede ser útil para abrir una página de manual sin desplegarse a la línea de comando, navegar y buscar en 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 directamente al 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 fáciles de ver. De hecho, Bwana es tan simple: no hay mucho más que podamos decir al respecto. Así que solo descarga Bwana ahora para ver qué tan fácil se integra con tu navegador y qué diferencia hace al ver páginas de manual.

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

function sman
    open -a Bwana man:$1
end

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

Otros candidatos pueden ser Man Reader ($) , Manpager , Manpower ($) , Man Viewer .

LаngLаngС
fuente
3

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

https://man.openbsd.org/ssh

Como puede publicar aquí, obviamente tiene acceso a Internet.

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

db
fuente
44
+1 para el pragmatismo, aunque ahora tiene que 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 comandos son diferentes, por ejemplo, Linux y BSD, o donde las cosas cambiaron mucho entre versiones )
esponjoso
y además de los comentarios de @ fluffy, esto no funcionará para ninguna herramienta de macOS de la que haya muchas, por ejemplo, tmutil para Time Machine.
grg
1
@grg Sí, lo hace ss64.com/osx/tmutil.html
db
1
Ese es un sitio web diferente, ¿llegó a eso buscando desde su enlace en la publicación o solo en Google? Soy consciente de que hay muchas páginas de manual en línea, incluida la referencia del desarrollador de Apple, que de hecho contiene la página de manual de tmutil, pero entonces esta respuesta se convierte en nada más que 'Google it'.
grg
@grg Lo obtuve de Google. Sí, pero el propósito de la pregunta era simplificar la lectura de páginas de manual y las páginas web son una buena manera de lograr ese objetivo.
db
2

Si desea que tenga 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 . Revisaría la página del manual para:

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
}

Por lo tanto, en Terminal , se escribe, por ejemplo, en manp bashlugar de man bashun PDF , si aún no lo ha sido, y luego se abre por la aplicación registrada para manejar documentos PDF . El valor predeterminado es Vista previa , sin embargo, en mi sistema está configurado para usar Skim , ya que su funcionalidad de búsqueda es mejor que Vista previa y, de hecho, encontrará la cadena de búsqueda cuando Vista previa simplemente no lo haga.

Tenga en cuenta que la primera vez que se utiliza 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 PDF es que mantiene el formato, es decir, negrita y cursiva, etc.


Como nota al margen, escribir solo el nombre del comando en Terminal y luego hacer clic derecho sobre é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.

usuario3439894
fuente