Trucs et astuces pour trouver des informations dans les pages de manuel [fermé]


80

Quelqu'un at-il des astuces et conseils pour rechercher des informations dans les pages de manuel?


1
man --help/ man -het son frère plus complet man mana des astuces de recherche et de navigation.
Anton Tarasenko

Réponses:


51

Faites attention au numéro de section: Supposons que vous souhaitiez obtenir de l'aide printf. il y en a au moins deux: en shell et en C. La version bash de printf est dans la section 1, la version C est dans la section 3 ou 3C. Si vous ne savez pas laquelle vous voulez, tapez man -a printfet toutes les pages du manuel seront affichées.

Si vous recherchez le format de printf avec tous les codes% et que celui-ci n'apparaisse pas sur la page de manuel de printf, vous pouvez accéder aux pages de manuel associées répertoriées dans la section VOIR AUSSI. Vous pouvez trouver quelque chose comme formats(5), qui vous suggère de taper man 5 formats.

Si vous êtes contrarié par ce man printfqui vous donne printf (1) et que vous voulez seulement printf (3), vous devez modifier l’ordre des répertoires analysés dans la MANPATHvariable d’environnement et placer ceux du langage C avant ceux des commandes du shell. Cela peut se produire également lorsque les pages de manuel Fortran ou TCL / Tk sont répertoriées avant les versions C.

Si vous ne savez pas par où commencer, tapez man introou man -s <section> intro. Cela vous donne un résumé des commandes de la section demandée.

Les sections sont bien définies:

  • 1 est pour les commandes shell,
  • 2 est pour les appels système,
  • 3 est destiné aux interfaces de programmation (parfois 3C pour C, 3F pour Fortran ...)
  • 5 concerne les formats de fichier et autres règles telles que les formats printf ou regex.

Dernier point mais non le moindre: les informations fournies dans les pages de manuel ne sont pas redondantes. Lisez-les attentivement du début à la fin pour augmenter vos chances de trouver ce dont vous avez besoin.


11
Sur la plupart des systèmes, vous pouvez vérifier man manpour voir une description complète des différentes sections.
Steven D

1
Ce serait cool s'il y avait un programme pour rechercher une page par un «mots clés». C'est-à-dire que récemment, je ne me souvenais plus du nom de la fonction c pour trouver une sous-chaîne (the strstr()) , et je n'avais pas d'internet autour de moi.
Salut-Angel

3
@ Hi-Angel man -k substringou vous apropos substringaurait aidé.
Kusalananda


37

recherche homme

Cela vous donnera une liste de toutes les pages de manuel relatives à la recherche.


2
Et d'énumérer toutes les pages de manuel qui se rapportent à « recherche » dans la section spécifique (numéro 3, par exemple) , on pourrait utiliser cela: man -k search -s 3 aussi mentionné dans superuser.com/a/677969/599957
Kenichi

Je sais que des commentaires comme celui-ci sont mal vus, mais merci, merci, merci! Je cherchais littéralement une commande de ce genre depuis plus longtemps que je ne voudrais bien avouer… des années !!
MikeyE

19

Comme @Steven D dit, n'oubliez pas les infopages.

De plus, ne soyez pas intimidé par les infopages. Je connais beaucoup de personnes qui n'utilisent pas les pages d'informations à cause du système de navigation intégré. Ma solution préférée consiste à diriger les pages d’information vers less:

info gpg |less

De cette façon, je peux naviguer dans les infopages en utilisant mon téléavertisseur préféré. Les infopages se comporteront désormais comme les manpages.


1
C'est un bon conseil pour la navigation
glenn jackman

18

Cet aproposutilitaire est très utile pour trouver la page de manuel appropriée.


1
man -k== apropos, n'est-ce pas?
Phunehehe

1
aproposC’est ce que j’utilise tout le temps lorsque je cherche quelque chose qui n’a pas de page de manuel pour lui-même.
polemon

1
'homme homme' dit que 'homme -k' est équivalent à 'apropos -r'. Je pense à propos est un peu plus puissant. J'utilise généralement 'man -k' car il est légèrement plus court.
Kristof Provost

16

Le pageur par défaut pour lire une page de manuel est less. Il y a de la documentation less ici .

En particulier:

  • Faire défiler d'une page vers le haut / bas: b/ space
  • Défilement vers le haut / bas d’une demi-page: u/ d
  • Recherche en avant / en arrière: // ?, puis tapez une expression régulière,
    • puis appuyez sur n pour aller au match suivant ou
    • shift+ Npour aller au match précédent.
    • Si la page est couverte de correspondances sans intérêt, spacecliquez pour aller à la page suivante.
  • Ajoutez un @avant l'expression régulière à rechercher depuis le début.

C'est la meilleure réponse. Points supplémentaires pour l'utilisation des symboles kbd. ;)
Chiramisu

Vous pouvez également faire défiler d’une page à l’autre avec ctrl+space/ f, ce qui peut être utile selon les doigts que vous préférez utiliser pour la navigation.
joelostblom

8

Toujours vérifier ce qui est dans la section VOIR AUSSI. Les commandes présentées dans cette section de la infopage peuvent être sélectionnées en plaçant le curseur sur la commande souhaitée, puis en appuyant sur la touche Entrée. Souvent, je trouve d'autres commandes ou fonctions utiles de cette façon.


7

Si vous êtes plus à l'aise avec votre éditeur qu'avec le pageur par défaut, vous pouvez le définir MANPAGERdans votre environnement. Par exemple, j'ai cette ligne dans mon ~/.bashrc:

export MANPAGER="col -b | vim -c 'set ft=man nomod nolist ignorecase' -"

4

Je suppose que l’utilisation de la plupart des pagettes est une bonne idée. Ce téléavertisseur est très puissant, mais la principale caractéristique pour moi est l’affichage de pages de manuel en couleurs. Cette fonctionnalité améliore la perception du texte brut et facilite la recherche des informations nécessaires.

Regardez la capture d'écran ci-jointe, le texte est très joli, n'est-ce pas?

la plupart des pager


2
Vous avez omis l’information la plus importante: comment puis-je mostafficher les pages de manuel?
user1968963

2
@ACK_stoverflow - ce n'est probablement pas une bonne idée de recommander au gars de le faire, > ~/.bashrccar il écrasera ce qu'il contient déjà. Mieux vaut ajouter ( >>) ou ajouter la chaux manuellement à mon avis.
vatsug

@vatsug Wow bon appel, voici ce que mon commentaire aurait dû dire: Installer et l' essayer: aptitude install most; export MANPAGER="most"; man man. Pour le rendre permanent:echo 'export MANPAGER="most"' >> ~/.bashrc
ACK_stoverflow le

4

Sous Linux man, vous pouvez faire man -K string(notez la lettre majuscule K) faire une recherche par force brute d'un terme donné

   -K, --global-apropos
          Search for text in all manual  pages.   This  is  a  brute-force
          search,  and is likely to take some time; if you can, you should
          specify a section to reduce the number of pages that need to  be
          searched.   Search terms may be simple strings (the default), or
          regular expressions if the --regex option is used.

très utile lorsque vous ne savez pas où chercher.


3

Ne pas ignorer les infopages. De nombreux outils GNU ont des pages d’informations beaucoup plus complètes que les pages de manuel. Souvent, la section SEE ALSO dit: "La documentation complète de foo est gérée dans un manuel Texinfo." Ceci est particulièrement vrai pour tout ce qui est contenu dans le paquet GNU coreutils.

De plus, si vous êtes un utilisateur d’emacs, n'oubliez pas que vous pouvez lire les pages d’information et de manuel sans quitter votre éditeur: M-x infoet M-x woman.


3

Pour les pages de manuel plus longues et plus complexes, il est beaucoup plus facile de les lire sans ordinateur (bizarre, je sais) et j’ai donc ces fonctions dans mon ordinateur. .bashrc

# Print man pages 
manp() { man -t "$@" | lpr -pPrinter; }

# Create pdf of man page - requires ghostscript and mimeinfo
manpdf() { man -t "$@" | ps2pdf - /tmp/manpdf_$1.pdf && \
    xdg-open /tmp/manpdf_$1.pdf ;}

2

À partir de la réponse de Kristof, si vous tapez ( man -k chmodvous avez), vous obtiendrez une liste des possibilités. Notez le numéro entre parenthèses, cela signifie que la section à rechercher dans les pages de manuel:

Sous UNIX, vous pouvez essayer:

man -s1 chmod il affichera la page de manuel de la commande chmod

man -s2 chmod il affichera la page de manuel de la fonction C lib chmod ()

Sous Linux, vous devriez changer -spour-S


homme 1 chmod homme 2 chmod fait la même chose.
Vue elliptique

2

Afficher les pages de manuel dans une application graphique conviviale:

konqueror man:(command)

Pour la table des matières de premier niveau:

konqueror man:

Fonctionnalités:

  • Si vous entrez une commande qui a une correspondance dans plusieurs sections, cela vous mènera à une page d'homonymie.
  • C'est une application graphique, vous n'avez donc pas besoin de vous souvenir de séquences de clés cryptées pour naviguer dans la page.
  • Il comprend des hyperliens vers des pages liées (y compris les pages "voir aussi").
  • Vous pouvez ouvrir des pages liées dans des onglets séparés

Au fait, cela fonctionne aussi avec info:(command). Certains programmes fournissent beaucoup plus d’informations via "info" que via "man", et konqueror fournit une interface bien plus agréable pour naviguer dans ces pages d’informations. Remarque: Utiliser simplement fonctionne info:également pour obtenir une table des matières de premier niveau.
novembre

Un effet similaire peut être obtenu en utilisant le gmanpackage qui établit un serveur Web de page de manuel à localhost / cgi-bin / man / man2html .
Octobre

Alternatives sur AskUbuntu: askubuntu.com/questions/253705/…
nobar

... yelpêtre un substitut plus léger et plus léger pour konqueror- bien qu'il présente le défaut de ne pas présenter de table des matières ou de page d'homonymie pour les noms utilisés dans plusieurs sections. Vous devez les différencier explicitement en ajoutant .(section)- par exemple yelp man:open.2. Vous pouvez également utiliser <kbd> Ctrl-L </ kbd> pour ouvrir la barre d’emplacement.
novembre

2

Dayum, les gens! C'est quoi les réponses compliquées?! Qu'est-il arrivé à la simplicité étant la clé de la brillance et quoi non? La plupart de vos clés vi / vim fonctionneront à merveille:

/ou ?- Recherche en avant ou en arrière (comme certains gars l'ont déjà mentionné). Dans le premier cas, un n minuscule défilera dans les correspondances, un N majuscule reviendra en arrière. Le contraire est vrai pour ce dernier point d’interrogation.

Recherches légèrement plus complexes à travers des expressions régulières. La différence entre man(ou less) et VIM est que vous devez utiliser le caractère escape () pour déclarer des méta-caractères dans votre expression lorsque vous utilisez ce dernier. La bonne nouvelle est que, lorsque vous utilisez l'ancien ( manou less), pas autant. Ainsi , vous pouvez facilement mettre cela à utiliser lors de la recherche, par exemple, une iptablespage de manuel pour plusieurs termes comme ceci: /(iptables|rules). Si vous ne connaissez pas les expressions régulières, cela signifie "Rechercher des occurrences de mots iptablesOUrules". Après avoir entré ceci et appuyé sur n, vous pourrez faire défiler les résultats alternés de la recherche, les résultats étant bien mis en évidence pour vous avec différentes couleurs (deux, en fait. Haha). Si vous essayez de parcourir la page et voulez vous concentrer sur des termes ou des concepts spécifiques, vous ne manquerez rien!

Et, bien sûr, pour une navigation plus rapide, vos utilisateurs habituels virestent debout (sans jeu de mots): ggou G- début / fin du document; (Correction! En manvous pouvez utiliser toutes les touches mentionnées ci-dessous sans utiliser Ctrl. C'est pour viseulement). Ctrl + u or d- Faites défiler vers le haut ou le bas; Ctrl + b or f- Même chose, mais à plus grand pas. "Page en arrière ou en avant"; eou y- faites défiler une seule ligne, mais je pense que la plupart des gens préfèrent utiliser les touches fléchées. Cependant, si vous voulez rester "1337" et "ne jamais quitter le rang principal" (comme je le fais lol), c'est la voie à suivre.

Ce que j'essaie de dire, c'est qu'UNIX a deux types principaux de contrôles de programme de clavier, qui font tous deux partie de la readlinebibliothèque: vi et emacs. Montez vos côtelettes dans l'un ou l'autre (mais, de préférence, dans les deux) et cela vous simplifiera la vie. La plupart des programmes CLI sous UNIX utilisent l'un ou l'autre. BASHutilise les contrôles emacs par défaut, mais vous pouvez facilement le définir en "mode vi" en le tapant set -o vi. La même chose peut être dite pour les expressions régulières, mais ça va être très différent du sujet. J'irais même jusqu'à dire que ces deux langues sont la "lingua franca" d'UNIX.


2

Similaire mais légèrement différent de la réponse de Rob Hoelz,

Ajoutez ce qui suit dans votre ~/.vimrc:

let $GROFF_NO_SGR=1
runtime ftplugin/man.vim

C’est maintenant vimmanun excellent visualiseur de pages de manuel et, :Mandepuis Vim (ou simplement en tapant Ksur un mot clé), un excellent navigateur de pages de manuel.


1

La plupart d'entre nous définissons la variable PATH. Cela vous montrera comment faire en sorte que le chemin de recherche man corresponde à votre chemin de recherche de commande PATH.

Supposons que vous ajoutiez votre chemin pour inclure vos utilitaires personnels, spécifiques à votre travail et installés localement, tels que export PATH=$PATH:~/bin:/workgroup/bin:/opt/local/bin:. Comme effet secondaire, man foone montrera pas les pages de manuel stockées dans ~ / man, / workgroup / man ou / opt / local / man.

Pour résoudre ce problème, j'utilise la manpathcommande pour définir automatiquement le chemin de recherche de la page de manuel. Par exemple, mon ~ / .bashrc présente les éléments suivants. Cela fonctionne pour moi sur une centaine de systèmes exécutant tout ce qui concerne FreeBSD 4.x, Darwin et CentOS 5:

### PATH & MANPATH
# My personal utilities
export PATH=$PATH:$HOME/bin

### Set the manpath based on the PATH, after man(1) parses man.conf
# - No need to modify man.conf or manually modify MANPATH_MAP
# - Works on Linux, FreeBSD & Darwin, unlike /etc/manpaths.d/
# See "SEARCH PATH FOR MANUAL PAGES" in man(1)
# Just set the man search path. Don't print output to screeen.
manpath >/dev/null

Certains systèmes (comme Apple Leopard) définissent le MANPATH automatiquement, mais cela signifie que votre système utilisera la variable MANPATH au lieu de l’utiliser manpath. En conséquence, les pages de manuel pour 'MacPorts' (/ opt / local / man) sont ignorées. Je veux contrôler cela moi-même, alors je désactive MANPATH:

unset MANPATH
manpath >/dev/null

1

Si vous cherchez des informations concernant un bashbuiltin ( par exemple time, disown, setou [[), au lieu de piocher dans la détaillée bashpage info ou man bash, vous pouvez entrer help {builtin-keyword}et obtenir des informations de syntaxe de base rapidement.


1

Si vous êtes ennuyé que man printf vous donne printf (1) et que vous vouliez seulement printf (3), vous pouvez indiquer à man que vous voulez le printf de la section 3 en mettant la section avant printf, comme ceci:, man 3 printfsans avoir à changer le ordre des répertoires analysés dans la variable d’environnement MANPATH et placez ceux du langage C avant ceux des commandes du shell.


1

Je viens d'utiliser grep. Si je me demandais ce que l' -soption de la readcommande faisait, j'essaierais ces commandes dans l'ordre jusqu'à ce que j'aie une réponse:

info read |grep \\-s

man read |grep \\-s

help read |grep \\-s

Dans ce cas, seule la infocommande a fourni une réponse claire. Cette excellente réponse donne des détails sur les différents systèmes d’aide.


1

man -a printfjuste par défaut man 1sur ma machine Linux Mint. whatis printfme donne les informations pertinentes.


1

Pour rechercher efficacement un commutateur à caractère unique, par exemple -u, vous pouvez souvent utiliser:

/^ *-u($|\s)

Permet de gagner beaucoup de temps si de nombreuses options ont le préfixe "-u".


En outre, cette expression rationnelle serait utile: /-u($|[,\s]) dans le cas où le caractère de l'option est encadré par une virgule. Mais si vous voulez voir toutes les entrées du caractère d'option 'u' (comme -u]dans [--udp|-u]du netstatmanuel), vous aurez besoin de quelque chose comme ceci: /-u($|[^a-z]) Et si viou vimest utilisé comme pageur: /-u\($\|[^a-z]\)
kenichi

0

La commande apropos (1) est utilisée pour rechercher des pages de manuel. Cependant, la plupart des implémentations de apropos (1) effectuent simplement une recherche dans la section NAME, ce qui est très limitatif.

NetBSD a une implémentation de recherche de texte complet de apropos (1), capable de rechercher le contenu complet des pages de manuel. Il existe également une interface Web pour cela: man-k.org , que vous pouvez essayer.


0

entrez la description de l'image iciSi vous avez du mal à lire les pages de manuel à cause du texte blanc, vous pouvez les colorier. La plupart des pages de manuel s'ouvrent avec less. Pour less, j'utilise les paramètres de couleur suivants à .bashrcpartir d' ici :

man() {
    LESS_TERMCAP_md=$'\e[01;31m' \red
    LESS_TERMCAP_me=$'\e[0m' \
    LESS_TERMCAP_se=$'\e[0m' \
    LESS_TERMCAP_so=$'\e[01;44;33m' \yellow on blue
    LESS_TERMCAP_ue=$'\e[0m' \
    LESS_TERMCAP_us=$'\e[01;32m' \green
    command man "$@"
}

Ceci est pour bash et zsh. Pour most, fish, xtermet rxvtvoir le lien ci - dessus.

Pour en savoir plus:


0

Et pour ceux qui aiment lire les pages man et info sur un écran tactile, vous pouvez rediriger man / info vers yad ou zenity et utiliser tous les goodies de gtk3 comme le défilement natif. Fonctionne également très bien avec l'écran et la souris refular:

man cat |yad --text-info 

Vous pouvez également utiliser zenity ou ajouter des options yad telles que:

man cat |yad --text-info --height=500 --width=800 --center --wrap --show-uri --no-markup &

Astuce: via show, uri yoh peut cliquer sur les liens Web dans les pages de manuel avec la souris / le doigt.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.