web-dev-qa-db-fra.com

Trucs et astuces pour trouver des informations dans les pages de manuel

Quelqu'un a-t-il des astuces et des conseils pour trouver des informations dans les pages de manuel?

82
Casebash

Faites attention au numéro de section: supposons que vous vouliez de l'aide sur printf. il y en a au moins deux: dans Shell et dans 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 printf, Et toutes les pages de manuel seront affichées.

Si ce que vous recherchez est le format de printf avec tous les codes% et qu'il n'apparaît pas sur la page de manuel de printf, vous pouvez passer aux pages de manuel connexes répertoriées au paragraphe VOIR AUSSI. Vous pouvez trouver quelque chose comme formats(5), qui vous suggère de taper man 5 formats.

Si vous êtes ennuyé que man printf Vous donne printf (1) et que tout ce que vous voulez est printf (3), vous devez changer l'ordre des répertoires scannés dans la variable d'environnement MANPATH et mettre ceux pour le langage C avant ceux des commandes Shell. Cela peut également se produire lorsque les pages de manuel Fortran ou TCL/Tk sont répertoriées avant les pages C.

Si vous ne savez pas par où commencer, tapez man intro Ou 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 pour la programmation des interfaces (parfois 3C pour C, 3F pour Fortran ...)
  • 5 est pour les formats de fichiers 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, alors lisez attentivement du début à la fin pour augmenter vos chances de trouver ce dont vous avez besoin.

51
mouviciel

Tapez une barre oblique / puis tapez la chaîne à rechercher. Continuez ensuite à appuyer sur n pour passer à l'élément suivant

58

man -k recherche

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

37
Kristof Provost

Comme le dit @Steven D, n'oubliez pas les pages info.

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

info gpg |less

De cette façon, je peux parcourir les pages info en utilisant mon pager préféré. Les pages info se comporteront désormais de la même manière que les pages man.

20
Stefan Lasiewski

L'utilitaire apropos est très pratique pour trouver la page de manuel appropriée.

18
Hank Gay

Le pager par défaut pour lire une page de manuel est less. Il existe de la documentation sur lessici .

En particulier:

  • Faites défiler vers le haut/bas d'une page: b / space
  • Faites défiler vers le haut/bas d'une demi-page: u / d
  • Recherche avant/arrière: / / ?, puis tapez une expression régulière,
    • puis appuyez sur n pour aller au match suivant ou
    • shiftN pour aller au match précédent.
    • Si la page est couverte de correspondances sans intérêt, appuyez sur space pour passer à la page suivante.
  • Ajouter un @ avant l'expression régulière pour rechercher depuis le début.
16
Casebash

Vérifiez toujours ce qui est dans la section VOIR AUSSI. Les commandes affichées sous cette section dans la page info 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.

8
Neth

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

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

Je suppose que l'utilisation de la plupart pager est une bonne idée. Ce téléavertisseur est très puissant, mais la principale caractéristique pour moi - l'affichage des pages de manuel en couleur. 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, non?

most pager

4
dr.

Sous Linux man, vous pouvez faire man -K string (notez le K majuscule) pour 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.

4
enzotib

N'ignorez pas les pages info. De nombreux outils GNU ont des pages d'informations beaucoup plus complètes que les pages de manuel. Souvent, la section VOIR AUSSI dit "La documentation complète pour foo est maintenue sous la forme d'un manuel Texinfo. "Cela est particulièrement vrai pour tout ce qui se trouve dans le paquet coreutils GNU.

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

3
Steven D

Pour les pages de manuel plus longues et plus complexes, je trouve qu'il est beaucoup plus facile de les lire loin d'un ordinateur (bizarre, je sais) et j'ai donc ces fonctions dans mon .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 ;}
3
jasonwryan

D'après la réponse de Kristof, si vous (c.-à-d.) Tapez man -k chmod vous obtiendrez une liste de possibilités. Notez le nombre entre parenthèses, cela signifie 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 devez modifier -s pour -S

2
jyz

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

Maintenant, vimman est un excellent visualiseur de pages de manuel, et :Man depuis Vim (ou simplement en appuyant sur K sur un mot-clé) est un excellent navigateur de pages de manuel.

2
ephemient

Affichez les pages de manuel dans une application graphique conviviale:

konqueror man:(command)

Pour la table des matières de niveau supérieur:

konqueror man:

Fonctionnalités:

  • Si vous entrez une commande qui a une correspondance dans plusieurs sections, cela vous amène à une page de désambiguïsation
  • C'est une application graphique, vous n'avez donc pas à vous souvenir des séquences de clés cryptiques pour naviguer dans la page
  • Il comprend des hyperliens vers des pages connexes (y compris les pages "voir aussi")
  • Vous pouvez ouvrir des pages liées dans des onglets séparés
2
nobar

Dayum, les gens! Qu'en est-il des réponses alambiquées?! Qu'est-il arrivé à la simplicité qui était la clé de la brillance et quoi non? La plupart de vos clés vi/vim fonctionneront parfaitement:

/ Ou ? - Recherche en avant ou en arrière (comme certains des gars l'ont déjà mentionné). Dans le premier cas, un n en minuscule fera défiler les correspondances vers l'avant, un N majuscule vers l'arrière. L'inverse est vrai pour ce dernier, le point d'interrogation.

Recherches un peu 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étacaractères dans votre expression lorsque vous utilisez ce dernier . La bonne nouvelle est que lorsque vous utilisez le premier (man ou less) - pas tant que ça. Vous pouvez donc facilement l'utiliser pour utiliser lors de la recherche, par exemple, d'un iptables pour plusieurs termes comme celui-ci: /(iptables|rules). Si vous n'êtes pas familier avec les expressions régulières, cela signifie "Rechercher des instances de mots iptables OR = rules ". Après avoir entré ceci et continué à appuyer sur n, vous ferez défiler les résultats alternés de la recherche avec les résultats bien mis en évidence pour vous avec des couleurs différentes (deux, en fait. Haha). Si vous êtes en essayant de parcourir la page et de vous concentrer sur des termes ou des concepts spécifiques, vous ne manquerez rien!

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

Ce que j'essaie de dire, c'est que UNIX a deux versions principales des commandes de programme de clavier, qui font toutes deux partie de la bibliothèque readline: vi et emacs. Montez vos côtelettes dans l'un ou l'autre (mais de préférence dans les deux) et cela vous rendra la vie beaucoup moins compliquée. La plupart des programmes CLI sous UNIX utilisent l'un ou l'autre. BASH utilise les contrôles emacs par défaut, mais il peut facilement être réglé sur "vi mode" en tapant set -o vi. La même chose peut être dite pour les expressions régulières, mais cela va être bien hors sujet. J'irais même jusqu'à dire que les deux sont la "lingua franca" d'UNIX.

2
Max

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

/^ *-u($|\s)

Économise beaucoup de temps si de nombreuses options ont le préfixe "-u".

1
matt

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

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

Pour résoudre ce problème, j'utilise la commande manpath pour définir automatiquement le chemin de recherche de la page de manuel. Par exemple, mon ~/.bashrc a ce qui suit. Cela fonctionne pour moi sur une centaine de systèmes différents exécutant tout depuis 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 d'utiliser manpath. Par conséquent, les pages de manuel pour ' Les MacPorts (/ opt/local/man) sont ignorés. Je veux contrôler cela moi-même, donc je désactive MANPATH:

unset MANPATH
manpath >/dev/null
1
Stefan Lasiewski

man -a printf par défaut à man 1 sur ma machine Linux Mint. whatis printf me donne les informations pertinentes.

1
stu

Si vous recherchez des informations concernant une fonction intégrée bash (telle que time, disown, set ou [[), au lieu de parcourir la page d'informations détaillées de bash ou man bash, vous pouvez entrer help {builtin-keyword} et obtenez rapidement les informations de syntaxe de base.

1
LawrenceC

J'utilise simplement grep. Si je me demandais ce que le -s l'option de la commande read l'a fait, j'essaierais ces commandes dans l'ordre jusqu'à ce que j'obtienne une réponse:

info read |grep \\-s

man read |grep \\-s

help read |grep \\-s

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

1
Cees Timmerman

Si vous êtes ennuyé que man printf vous donne printf (1) et tout ce que vous voulez c'est printf (3), vous pouvez dire à man que vous voulez le printf de la section 3 en mettant la section avant printf, comme ceci: man 3 printf, sans avoir à changer l'ordre des répertoires scannés dans la variable d'environnement MANPATH et mettre ceux du langage C avant ceux des commandes Shell.

1
Li Lo

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

man cat |yad --text-info 

Vous pouvez également utiliser zenity ou vous pouvez ajouter des options yad comme:

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

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

0
George Vasiliou

enter image description here Si vous avez du mal à lire les pages de manuel à cause de tout le texte blanc, vous pouvez les coloriser. La plupart des pages de manuel s'ouvrent avec less. Pour less, j'utilise les paramètres de couleur suivants dans .bashrc de 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 "$@"
}

C'est pour bash et zsh. Pour most, fish, xterm et rxvt voir le lien ci-dessus.

Pour en savoir plus:

0
vikram99

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

NetBSD a une implémentation de recherche en texte intégral de apropos (1), qui est 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
Abhinav Upadhyay