web-dev-qa-db-fra.com

rechercher des commandes avec des pages de manuel

nous utilisons man foo pour rechercher la commande foo. Pour savoir de quoi il s'agit et quelle est sa tâche et trouver tous les interrupteurs.

Mais le point est quand vous voulez Do foo et vous ne savez pas quelle est la commande pour cela. Je souhaite trouver parmi les pages de manuel pour savoir quelle commande y est liée?

Ma question:

y a-t-il un moyen de deviner ce qui est commande appropriée à votre besoin sans accès à Internet et googler? et les trouver juste par l'homme sur le terminal?

3

Il n'y a pas de méthode fixe pour trouver une commande. Mais man -k peut vous aider un peu.

Selon man man

man -k printf
       Search the short descriptions and manual page names for the keyword
       printf  as  regular expression.  Print out any matches.  Equivalent
       to apropos -r printf.

Par exemple, si je veux rechercher un système de contrôle de version, je peux essayer

man -k 'version control'|grep ' (1)'

qui montre

bzr (1)              - Bazaar next-generation distributed version control

Mais il n'a pas montré git, car sa courte description est

git (1)              - the stupid content tracker

qui ne correspond pas à l'expression rationnelle "contrôle de version".

4
Registered User

Si vous savez 'sorta' à quoi votre commande est liée, vous pouvez utiliser la commande apropos:

xenon-lornix:~> apropos change directory

alphasort (3)        - scan a directory for matching entries
apt-listchanges (1)  - Show new changelog entries from Debian package archives
avahi-set-Host-name (1) - Change mDNS Host name
basename (1)         - strip directory and suffix from filenames
basename (1posix)    - return non-directory portion of a pathname
besside-ng-crawler (1) - filter EAPOL frames from a directory of capture files.
bindtextdomain (3)   - set directory containing message catalogs
BN_swap (3ssl)       - exchange BIGNUMs
brk (2)              - change data segment size
can_change_color (3ncurses) - curses color manipulation routines
can_change_color_sp (3ncurses) - curses screen-pointer extension
cd (1posix)          - change the working directory
chacl (1)            - change the access control list of a file or directory
chage (1)            - change user password expiry information
chattr (1)           - change file attributes on a Linux file system
chcon (1)            - change file security context
chdir (2)            - change working directory
chdir (3posix)       - change working directory
... and 400+ more ...

Vous avez reçu autant de retours depuis apropos par défaut en mode ou ... donc tout ce qui correspond à change [~ # ~] ou [~ # ~] directory est retourné. Ouf! Trop! (Bien que je puisse voir celui que nous voulons ici cependant)

xenon-lornix:~> apropos --and change directory

cd (1posix)          - change the working directory
chacl (1)            - change the access control list of a file or directory
chdir (2)            - change working directory
chdir (3posix)       - change working directory
chroot (2)           - change root directory
fchdir (2)           - change working directory
fchdir (3posix)      - change working directory
futimesat (2)        - change timestamps of a file relative to a directory file descriptor
git-stash (1)        - Stash the changes in a dirty working directory away
Linux::Inotify2 (3pm) - scalable directory/file change notification
mcd (1)              - change MSDOS directory
revpath (1)          - generate a relative path that can be used to undo a change-directory

Cette fois, nous n'avons obtenu que 12 résultats, bien mieux! Et vous pouvez voir la commande cd (1posix) qui peut être utile. man cd Ou man 1posix cd Vous montrera la page de manuel. Et si vous utilisez le shell bash (ou zsh ou autre ...), vérifiez toujours aussi leurs pages de manuel. man bash Et la recherche de change vous rapprochera de la description de la commande cd intégrée de bash. (Continuez à chercher! C'est là-dedans!)

apropos obtient ses informations d'une base de données construite chaque nuit (cronjob), il ne recherche vraiment que le nom et description des sections des pages de manuel. Si vous voulez VRAIMENT rechercher un mot-clé, utilisez man -K (K majuscule ici):

xenon-lornix:~> man -K M_CHECK_ACTION

(should bring up the man page for mallopt(3))

N'oubliez pas qu'il s'agit d'une touche physique BRUTE-FORCE et d'une recherche de [~ # ~] tous les [~ # ~] page de manuel sur votre système. Cela peut prendre un certain temps! Beaucoup plus rapide après que tout a été lu et mis en cache.

Vous voulez juste une liste de pages de manuel avec le mot-clé particulier?

xenon-lornix:~> man -K -w MALLOC_CHECK_

/usr/share/man/man3/malloc.3.gz
/usr/share/man/man3/malloc_get_state.3.gz
/usr/share/man/man3/mallopt.3.gz
/usr/share/man/man3/mcheck.3.gz

Trouvé en quelques pages. (Capital Kay, double-brebis minuscule)

Jetez également un œil à la page de manuel man , avec quelques variantes intéressantes.

4
lornix