Quelqu'un a-t-il des astuces et des conseils pour trouver des informations dans les pages de manuel?
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:
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.
Tapez une barre oblique /
puis tapez la chaîne à rechercher. Continuez ensuite à appuyer sur n
pour passer à l'élément suivant
man -k recherche
Cela vous donnera une liste de toutes les pages de manuel relatives à la "recherche".
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
.
L'utilitaire apropos
est très pratique pour trouver la page de manuel appropriée.
Le pager par défaut pour lire une page de manuel est less
. Il existe de la documentation sur less
ici .
En particulier:
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.
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' -"
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?
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.
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
.
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 ;}
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
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.
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:
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.
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".
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
man -a printf
par défaut à man 1
sur ma machine Linux Mint. whatis printf
me donne les informations pertinentes.
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.
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.
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.
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.
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:
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.