Existe-t-il un outil pour résumer ce que font toutes les commandes?

8

Je comprends donc qu'il existe des manpages pour obtenir la documentation lorsque Internet n'est pas disponible ou lorsque vous avez besoin d'utilisations avancées, mais que faire si je suis hors ligne et je ne sais même pas de quel outil j'ai besoin pour le travail? Existe-t-il une commande qui me permet de voir chaque programme / commande et une courte description?

OneChillDude
la source

Réponses:

4

Vous pouvez utiliser le bash (1) intégré compgen

  • compgen -c répertorie toutes les commandes que vous pourriez exécuter.
  • compgen -a répertorie tous les alias que vous pouvez exécuter.
  • compgen -b répertorie toutes les fonctions intégrées que vous pouvez exécuter.
  • compgen -k répertorie tous les mots clés que vous pouvez exécuter.
  • compgen -A function répertorie toutes les fonctions que vous pourriez exécuter.
  • compgen -A function -abck listera tout ce qui précède en une seule fois.

La commande ci-dessus répertorie toutes les commandes disponibles pour un utilisateur en fonction de ses privilèges définis. J'ai désactivé le réseau et testé la commande ci-dessus et cela fonctionne même lorsqu'il est désactivé. Cependant, pour une courte description, pour autant que je sache, une fois que vous obtenez une commande, vous pouvez afficher la page de manuel.

Certaines autres commandes qui peuvent être utilisées pour afficher la description d'une commande sont,

apropos
whatis
less
groff

Références

https://stackoverflow.com/a/949006/1742825

Ramesh
la source
Bien sûr, cela ne vous dirait pas nécessairement si l'exécution de ces commandes fera quelque chose d' utile . En prenant l'exemple de vos réseaux désactivés, je suppose que cela pingserait toujours répertorié comme exécutable, mais cela ne vous ferait pas grand bien. En outre, cela n'est-il pas basé sur le courant de l'utilisateur $PATH, ce qui signifie que si une commande ne se trouve pas dans l'un des répertoires nommés comme chemin de recherche, elle n'apparaîtra jamais?
un CVn
apropos -s1semble être une meilleure réponse, car elle comprend une description sur une ligne de ce que fait chaque commande. Ce que cette réponse apporte est une liste d'alias, de fonctions, etc., mais sans explication, elle est d'une utilité limitée, OMI.
user1404316
9

En général: Non, certains programmes sont livrés sans documentation.

Cependant, cela apropospourrait être exactement ce dont vous avez besoin.

Par exemple apropos ssh, listera les pages de manuel liées à ssh, dans mon cas:

authorized_keys (5)  - OpenSSH SSH daemon
git-shell (1)        - Restricted login shell for Git-only SSH access
rlogin (1)           - OpenSSH SSH client (remote login program)
rsh (1)              - OpenSSH SSH client (remote login program)
slogin (1)           - OpenSSH SSH client (remote login program)
ssh (1)              - OpenSSH SSH client (remote login program)
ssh-add (1)          - adds private key identities to the authentication agent
ssh-agent (1)        - authentication agent
ssh-argv0 (1)        - replaces the old ssh command-name as hostname     handling
ssh-copy-id (1)      - use locally available keys to authorise logins on a     remote machine
ssh-keygen (1)       - authentication key generation, management and conversion
ssh-keyscan (1)      - gather ssh public keys
ssh-keysign (8)      - ssh helper program for host-based authentication
ssh-pkcs11-helper (8) - ssh-agent helper program for PKCS#11 support
ssh_config (5)       - OpenSSH SSH client configuration files
sshd (8)             - OpenSSH SSH daemon
sshd_config (5)      - OpenSSH SSH daemon configuration file
XAllocClassHint (3)  - allocate class hints structure and set or read a window's WM_CLASS property
XClassHint (3)       - allocate class hints structure and set or read a window's WM_CLASS property
XGetClassHint (3)    - allocate class hints structure and set or read a window's WM_CLASS property
XSetClassHint (3)    - allocate class hints structure and set or read a window's WM_CLASS property
XtIsShell (3)        - obtain and verify a widget's class

Vous pouvez voir certaines pages apparaître plusieurs fois, la raison étant que rsh sloginet sshavoir la même page de manuel. Il y a aussi (comme d'habitude) des faux positifs.

Fabien
la source
Je suppose que bien que ce ne soit pas exactement ce que je cherchais, c'est certainement un outil très utile et similaire. Merci!
OneChillDude
Peut-être ajouter à votre réponse apropos -s1, qui tirera toutes les commandes de la mansection 1, et seulement ces commandes, ce qui semble être ce que l'OP veut.
user1404316
3

Vous pouvez lire une brève description de nombreuses commandes en utilisant whatis:

$ whatis pwd
pwd (1p)             - return working directory name
pwd (1)              - print name of current/working directory
pwd (n)              - Return the absolute path of the current working directory

Et vous pouvez demander plusieurs commandes:

$ whatis pwd ls ps
pwd (1p)             - return working directory name
pwd (1)              - print name of current/working directory
pwd (n)              - Return the absolute path of the current working directory
ls (1p)              - list directory contents
ls (1)               - list directory contents
ps (1)               - report a snapshot of the current processes.
ps (1p)              - report process status

Par conséquent, vous pouvez essayer de générer une liste de descriptions de toutes les commandes en combinant whatisavec compgen:

$ whatis $(compgen -c)
Nykakin
la source
S'il génère des ordures sur STDERR, vous pouvez utiliser `whatis $ (compgen -c) 2> / dev / null` pour le nettoyer.
Hastur
2

Dans, bashvous pouvez commencer par une simple helpinvocation à partir de l'invite pour avoir une liste de commandes intégrée et après affiner avec help commandname, man commandnameet man -k commandname(la dernière pour étendre la recherche à celles associées).

Vous pouvez trouver utile de lire même info coreutilset info. (Pas seulement en bash)

À la fin des manpages (et infoaussi) pour chaque commande, il y a une liste d'autres commandes associées après le titre SEE ALSO. Un bon point de départ pour étendre votre recherche.

Hastur
la source