Comment passer à un drapeau particulier dans une page de manuel Unix?

21

Lors de la lecture d'une page de manuel Unix dans le terminal, comment puis-je accéder facilement à la description d'un drapeau particulier?

Par exemple, j'ai besoin de connaître la signification du -odrapeau mount. Je cours man mountet veux sauter à l'endroit où -oest décrit. Actuellement, je cherche /-ocependant cette option est mentionnée à plusieurs endroits avant la section qui la décrit, donc je dois sauter un peu.

Merci.

dotancohen
la source

Réponses:

26

Ce que je fais est de mettre quelques espaces vides devant le drapeau comme suit:

/     -o

Ce n'est pas fiable à 100%, mais vous passez à travers beaucoup moins de cerceaux. Si vous voulez un meilleur taux de réussite, essayez "/^ +-o". Cela trouverait des lignes commençant par des blancs et suivies de -o. Cependant, je ne voudrais pas taper cette étrange chaîne souvent.

Akostadinov
la source
11

J'ai défini cette fonction dans mon .bashrc

function manswitch () { man $1 | less -p "^ +$2"; }

que vous pouvez utiliser comme suit

manswitch grep -r

Je l'ai eu de cette ligne de commande .

Remarque: l'argument de -pswitch lessest une expression rationnelle qui dit moins pour rechercher une ligne commençant par ( ^) un ou plusieurs espaces ( +) suivi du commutateur (second argument $2), ce qui présente l'avantage de pouvoir utiliser un formatage différent.

ggll
la source
5

Vous pouvez également ouvrir la page de manuel sur une position spécifique à partir de la ligne de commande avec

man -P 'less -p "     -o"' mount
se ruer
la source
On a voté pour être possible, mais c’est un peu plus difficile à taper qu’à chercher dans l’homme. Merci quand même!
dotancohen
C'est assez utile d'envoyer quelqu'un à l'endroit exact dans la page man :)
rush
Oui, je pensais simplement que si je devais ouvrir une page de manuel dans un script pour une raison quelconque, cela serait également utile. Je vous remercie!
dotancohen
3

La réponse de @ piccobello est excellente, mais elle mangeait les couleurs de mes pages de manuel. Au lieu de diriger vers less(puisque manutilise déjà lesspar défaut généralement), je passe simplement la lesscommande modifiée à man:

function manswitch() { man -P "less -p \"^ +$2\"" $1 }

Cela conserve la fonctionnalité que @piccobello avait dans sa fonction, mais conserve les couleurs.

Jorge Israel Peña
la source
1

Les autres solutions sont assez bonnes, mais n'oubliez pas que les pages de manuel ne sont que des données et que vous pouvez facilement faire presque tout avec Linux.

man une commande> fichier.txt

convertit la page en un fichier de texte brut que vous pouvez ensuite manipuler. Je garde une copie du manuel bash sous forme de texte dans mon répertoire bin afin de pouvoir simplement la charger dans mon éditeur de texte pour rechercher des éléments et les copier / coller pendant la modification de scripts.

Ou vous pouvez le diriger vers des filtres tels que

homme une commande | grep -A lignes-après "quelque motif"

Bien que cela ne fonctionne pas pour vous dans un terminal, j'ai (avec l'aide d'un ami) même écrit un script qui saisit une page de manuel et l'affiche dans un navigateur Web afin que je puisse utiliser ses fonctionnalités de navigation / recherche qui sont bien meilleures que moins. C'est un peu dépendant de kde, mais facile à modifier.

http://dl.dropbox.com/u/54584985/kman

Joe
la source
3
Vous voudrez peut-être essayer man://dans Konqueror. KDE a une page de manuel KIOSLAVE!
dotancohen
@ Dancoce - Cool. Je ne savais pas à ce sujet.
Joe
@dotancohen -Je viens de l'essayer dans dolphin et cela fonctionne aussi, mais affiche les pages de manuel sous forme de répertoires et de fichiers et lance votre navigateur par défaut lorsque vous cliquez sur un fichier. Je ne comprends pas la partie sur KIOSLAVE. J'ai essayé man: // kioslave et c'était la même chose que man: //.
Joe
@dotancohen - ça ne fait rien - j'ai regardé les kioslaves sur wikipedia. fr.wikipedia.org/wiki/KIO
Joe
Oui, KDE a à peu près tout. Prendre plaisir!
dotancohen
1

J'ai écrit un outil qui fait justement cela, appelé flagman . Encore en développement mais déjà utilisable. Par exemple:

$ ./flagman mount -o
       -o, --options opts
              Use the specified mount options.  The opts argument is a comma-separated list.  For example:

                     mount LABEL=mydisk -o noatime,nodev,nosuid


              For more details, see the FILESYSTEM-INDEPENDENT MOUNT OPTIONS and FILESYSTEM-SPECIFIC MOUNT OPTIONS sections.
droitier
la source