Copiez tout le texte d'une page de manuel entière à partir de Terminal.app

20

Je lis une très longue page de manuel ( man ssh). Je veux enregistrer tout ce texte pour une lecture plus pratique dans un éditeur de texte.

Malheureusement, vous avez le choix entre:

  • Édition → Sélectionner tout → Copier

  • Shell → Exporter le texte sous ...

permet de sauvegarder uniquement un écran plein du texte, pas tout le texte qui défilait.

Comment extraire le texte d'une manpage entière ?

Basil Bourque
la source
Il y a une application tierce gratuite Man Reader. Ouvre une fenêtre avec une liste à gauche de toutes les pages de manuel possibles. Lorsque vous en sélectionnez un, il imprime le contenu dans le volet central. Pas mal.
jmh

Réponses:

25

Vous pouvez pousser du texte brut dans le presse-papiers en le canalisant vers pbcopy, pour coller n'importe où comme d'habitude.

man ssh | col -b | pbcopy

ou équivalent

man -P "col -b | pbcopy" ssh

ce dernier est plus agréable si vous voulez l'utiliser comme un alias, comme mancp ssh, étant donné:

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

Il existe des méthodes pour passer au HTML / PDF: les pages de manuel peuvent-elles être converties au format html et / ou pdf?


Si c'est juste la meilleure expérience de lecture que vous recherchez, vous pouvez cliquer avec le bouton droit sur une sélection d'une commande et ouvrir sa page de manuel en tant que fenêtre / onglet séparé, avec un défilement normal et une recherche ⌘F.

Bonne lecture

Vous pouvez personnaliser ce à quoi cela ressemble dans Préférences du terminal → Profils, sous le profil de la page de manuel qui est l'un des profils par défaut à exister.
Cela inclut la famille et la taille de la police (voir également le menu Affichage) et les couleurs d'arrière-plan / de premier plan.

Préférences de profil de la page de manuel

grg
la source
2
Le clic droit pour la page de manuel ne fonctionne pas avec iTerm. Sur ma machine, cela fonctionne en quelque sorte avec le terminal. Je suppose que la fenêtre vacillait 10 fois par seconde. Je pourrais l'arrêter en cliquant mais je ne savais pas où je cliquais ...
jmh
@jmh Semble être un bug Mojave, ce scintillement, l'a aussi fait ici
nohillside
1
pbcopyet pbpastesont deux des meilleurs utilitaires disponibles sur MacOS.
Christopher Schultz
1
Merci! Toutes les réponses sont informatives et utiles, mais j'ai dû accepter celle-ci. La man ssh | col -b | pbcopysolution répond directement aux spécificités de ma Question. Et puis, cerise sur le gâteau, le lecteur de page de manuel intégré de Terminal.app l'emporte sur la facilité d'utilisation.
Basil Bourque
Une extension utile de votre solution peut également inclure la largeur des colonnes et / ou l'ouvrir directement dans l'éditeur de texte de votre choix, par exemple: MANWIDTH=80 MANPAGER="col -bx" man tmutil | open -fa "TextMate"
Asmus
13

Si vous souhaitez lire la page de manuel dans Aperçu, joliment formatée au format PDF, vous pouvez exécuter

man -t ssh | open -f -a Preview

Ou

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

pour ouvrir la version texte dans TextEdit.

nohillside
la source
6

Dirigez la sortie standard de la mancommande en cours d'exécution vers l' colutilitaire intégré . Exécutez la ligne de commande suivante:

man ssh | col -b > ssh.txt

Nimesh Neema
la source
@BasilBourque J'ai également trouvé ce merveilleux article.
Nimesh Neema
4

La meilleure expérience de lecture pour ces tâches est obtenue en utilisant une application dédiée pour cela.

Deux candidats:

AquaLess

AquaLess est un pager de texte pour Mac OS X. Il vous permet de parcourir les fichiers de texte brut et - plus important encore - la sortie de texte des outils de ligne de commande Unix. AquaLess est un remplacement Cocoa pour la commande less, qui est limitée à la fenêtre du terminal. AquaLess ouvre une fenêtre séparée pour chaque texte, afin que vous puissiez continuer à travailler dans le terminal pendant que vous lisez.

Ou ManOpen

ManOpen est une application graphique de MacOS X pour afficher les pages de manuel Unix, qui sont la documentation standard pour les programmes en ligne de commande Unix, les bibliothèques de programmation et d'autres informations système. Il peut ouvrir des fichiers directement ou avoir des titres, auquel cas il affichera la sortie du programme en ligne de commande `man '. Une interface apropos est également fournie, qui est essentiellement une recherche rapide et sale des bases de données des pages de manuel. Des services sont fournis à d'autres applications pour ouvrir des fichiers / titres sélectionnés ou effectuer des recherches appropriées à l'aide du texte sélectionné. ManOpen peut être utile pour ouvrir une page de manuel sans descendre dans la ligne de commande, parcourir et rechercher des pages de manuel longues et complexes, ou simplement pour les imprimer.

Un outil de ligne de commande `openman ', également similaire à man, est également inclus, sauf qu'il affichera les pages de manuel dans ManOpen.app au lieu de directement sur le terminal.

Ou lire ces pages dans Safari? Alors allez bwana

Téléchargez Bwana et déposez-le dans votre dossier d'applications. Ensuite, sans même l'exécuter, vous pouvez commencer à afficher les pages de manuel Unix à l'aide de votre navigateur. Tapez simplement "man:" suivi de la page de manuel que vous recherchez dans le champ URL de votre navigateur. Appuyez sur Entrée et laissez Bwana faire le reste.

Les pages de manuel générées par Bwana sont simples et précises. Nous avons simplement ajouté de la couleur, des en-têtes audacieux et nettoyé un peu, afin qu'ils soient faciles à regarder. En fait, Bwana est si simple - il n'y a pas grand-chose d'autre à dire à ce sujet. Il vous suffit donc de télécharger Bwana maintenant pour voir à quel point il s'intègre facilement à votre navigateur et quelle différence cela fait dans l'affichage des pages de manuel.

Vous pouvez ensuite créer une fonction shell pour cela comme ceci:

function sman
    open -a Bwana man:$1
end

Par souci d'exhaustivité: si vous avez installé X11, vous l'avez également xman.

Les autres candidats peuvent être Man Reader ($) , Manpager , Manpower ($) , Man Viewer .

LаngLаngС
la source
3

Pourquoi rendre les choses plus compliquées qu'elles ne le sont?

https://man.openbsd.org/ssh

Puisque vous pouvez poster ici, vous avez évidemment accès à Internet.

Si vous parcourez un peu Google, vous pouvez probablement trouver des versions formatées de différentes manières, par exemple, pdf ou autre.

db
la source
4
+1 pour le pragmatisme, bien que vous deviez maintenant déterminer quelle version de la page de manuel que vous recherchez, parfois (pour les divers outils où les arguments de la ligne de commande sont différents entre par exemple Linux et BSD, ou où les choses ont beaucoup changé entre les versions) )
moelleux
et en plus des commentaires de @ fluffy, cela ne fonctionnera pas pour les outils macOS dont il y en a beaucoup, par exemple tmutil pour Time Machine.
grg
1
@grg Oui, c'est le cas ss64.com/osx/tmutil.html
db
1
C'est un site Web différent, y êtes-vous allé en recherchant à partir de votre lien dans le message ou simplement Google? Je sais qu'il y a beaucoup de pages de manuel en ligne, y compris la propre référence de développeur d'Apple qui contient en effet la page de manuel tmutil, mais cette réponse ne devient rien de plus que «Google it»?
grg
@grg Je l'ai obtenu de Google. Oui, mais l'objectif de la question était de simplifier la lecture des pages de manuel et des pages Web sont un bon moyen d'atteindre cet objectif.
db
2

Si vous aimez avoir des copies PDF de vos pages de manuel, voici une fonction que j'ai ajoutée à mon .bash_profilefichier pour créer un PDF de chaque commande BSD. Je vérifierais la page de manuel pour:

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
}

Ainsi, dans Terminal , taper par exemple manp bashau lieu d' man bashun PDF est créé, s'il ne l'a pas déjà été, puis ouvert par l'application enregistrée pour gérer les documents PDF . La valeur par défaut est Aperçu , mais sur mon système, il est configuré pour utiliser Skim , car sa fonctionnalité de recherche est meilleure que Aperçu et, en fait, trouvera la chaîne de recherche lorsque Aperçu ne le sera tout simplement pas.

Notez que la première fois que la fonction est utilisée, elle énumère certaines polices dans la sortie dans Terminal , mais il s'agit d'une énumération unique des polices.

Ce qui est bien avec les copies PDF, c'est qu'elles conservent le formatage, c'est-à-dire les polices en gras et en italique, etc.


En guise de remarque, en tapant juste le nom de la commande dans Terminal , puis en cliquant dessus avec le bouton droit et en sélectionnant Ouvrir la page de manuel , l'affiche dans une fenêtre Terminal entièrement défilable et consultable , ce qui est beaucoup mieux que de taper par exemple man bash.

user3439894
la source