web-dev-qa-db-fra.com

Un moyen de lister des commandes similaires?

Lorsque vous écrivez le nom de commande incorrect, bash fait souvent ceci:

septi@norbert:~$ good
No command 'good' found, did you mean:
 Command 'gold' from package 'binutils' (main)
 Command 'gmod' from package 'gmod' (universe)
 Command 'goo' from package 'goo' (universe)
 Command 'god' from package 'god' (universe)
 Command 'geod' from package 'proj-bin' (universe)
 Command 'gord' from package 'scotch' (universe)
good: command not found

Ou parfois, il fait ceci:

septi@norbert:~$ nftp
No command 'nftp' found, but there are 23 similar ones
nftp: command not found

Y a-t-il un moyen de demander à bash de montrer ces commandes similaires pour moi? Et existe-t-il un moyen d'afficher des commandes similaires, y compris celles qui ne sont pas encore installées, au lieu d'exécuter l'application, ftp par exemple?

7
Septagram

Bash utilise la commande /usr/lib/command-not-found pour rechercher des commandes similaires. Ceci utilise à son tour le module CommandNotFound de Python.

La sortie que vous voyez sur le terminal (stderr dans ce cas) est également générée à partir de ce module. L'emplacement de ce module est /usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py, sur Ubuntu 14.04 et supérieur. Une limite par défaut est définie pour le nombre de commandes similaires dans la fonction CommandNotFound.print_spelling_suggestion(self, Word, min_len=3, max_len=15) à la ligne 138. Vous pouvez modifier la valeur de max_len pour qu'elle soit 30 (Utilisez Sudo nano ou gksudo gedit éditez ce fichier).

7
ignite

Il est fort probable que les 23 commandes "similaires" ne vous soient pas beaucoup plus utiles que "goo", "dieu" et "gord". Le petit truc que la plupart des basheurs utilisent pour trouver des choses est d'utiliser les pages de manuel, car la recherche est basée sur le contenu plutôt que sur le nom. Par exemple, essayez

man -k ftp

Si vous trouvez une commande probable ou instable, consultez la page de manuel elle-même en supprimant le commutateur -k:

man sftp

man a sa propre page de manuel:

man man

Vous savez maintenant pourquoi, chaque fois que vous installez un nouveau programme ou une nouvelle application, il installe très souvent une page de manuel à votre intention.

Oh oui, pour rechercher dans ou pour les pages de manuel que vous n'avez pas encore installées, vous pourriez aimer l'un des nombreux sites en ligne tels que celui-ci .

3
fabricator4