Comment obtenir une liste de toutes les commandes disponibles pour Ubuntu?

22

Je veux commencer à utiliser le terminal plus souvent, mais je ne sais pas quelles sont les différentes commandes à ma disposition. Existe-t-il un moyen de répertorier toutes les différentes commandes que je peux utiliser?

user233219
la source

Réponses:

25

Première méthode

NB : Merci à @Rmano. Cette méthode ne fonctionne pas avec le zshshell.

Une commande simple:

ls ${PATH//:/ }

Cela répertoriera toutes les commandes de votre $PATHvariable d'environnement.

Pour stocker le résultat dans un fichier, vous pouvez rediriger la sortie vers un fichier.

ls ${PATH//:/ } > mycommands.txt

Notez que cela renverra une erreur si des noms de répertoire dans vos $PATHespaces contiennent. Dans ce cas, utilisez plutôt ceci:

while read -d ':' dir; do echo "$dir"; done <<<$PATH

Deuxième méthode

Vous pouvez également utiliser:

compgen -c | sort -u > commands && less commands

Troisième méthode

Une autre méthode est un double Tabclic.

Quatrième méthode

Une autre méthode utilisant la findcommande:

find {,/usr}/{,s}bin -printf '%f\n\0'
Maythux
la source
Notez que la première commande fonctionne dans bashmais pas dans zsh, dont la séparation des mots est désactivée par défaut. refining-linux.org/archives/38/...
Rmano
11

Si vous utilisez bash, qui est le shell par défaut dans toutes compgen -cles versions officielles d'Ubuntu, exécutez pour voir les commandes disponibles, y compris les alias.


la source
Est-ce que bash seulement?
Braiam
1
Même les commandes pour les programmes basés sur gui sont incluses. Donc, si vous le faites compgen -c | grep thunaret que le gestionnaire de fichiers Thunar est installé, vous verrez également des commandes liées à Thunar.
1
Mmm ... is ne fonctionne pas dans Debian. Quel paquet fournit cela?
Braiam
2
@Rinzwind qui l'explique, j'utilise zsh.
Braiam
1
@ vasa1: Cette réponse pourrait-elle être plus générale? Je veux dire que cela ne fournit que la solution pour bash, mais comme Braiam l'a noté, cela ne fonctionne pas pour zsh ... Si possible, veuillez élargir la réponse pour répondre à un public plus large - évidemment seulement si vous connaissez la réponse :-)
Aditya
4

Ouvrez le terminal Ctrl+ Alt+ tet exécutez cette commande:

whatis `compgen -c` | more 

Cela répertoriera toutes les commandes et une description simple de chaque commande.

Si vous souhaitez enregistrer la liste, vous pouvez rediriger le résultat dans un fichier de sortie

whatis `compgen -c` > listOfCommands.txt

Alors pourquoi j'ai utilisé la commande whatis. La commande man whatisdonne:

Chaque page de manuel contient une brève description.
whatis recherche les noms de page de manuel et affiche les descriptions de page de manuel de tout nom correspondant.

donc en termes simples, whatisdonnez un général. description de chaque commande

Maythux
la source
+1 pour des informations supplémentaires. whatis `compgen -c` | sort> listOfCommands.txt aidera à aller dans la liste de tri.
Saurav Kumar
Une autre commande utile: apropos <keyword>recherche toutes les commandes et leur courte description et affiche les résultats
Aloso
3

Ouvrez un terminal et appuyez Tabdeux fois sur la touche.

dadexix86
la source
1
-1 car ce n'est pas standard.
Lorenzo Ancora
@LorenzoAncora pourquoi n'est-ce pas standard? Tous les Ubuntu n'ont-ils pas l'auto-complétion avec double tabulation comme comportement standard?
dadexix86
2
Par défaut! = Standard: à l'avenir, nous aurons peut-être une console qui ne prend pas en charge ce mécanisme, car ce n'est pas standard; de plus, la norme TAB peut remplir une fonction différente. Une procédure standard répertorie le contenu de «bin», car il fait partie de la norme FHS officielle et tout système Linux / Unix possède ce répertoire. Le bon fonctionnement (et la capacité de la communauté à aider les utilisateurs) d'Ubuntu est assuré par le respect des normes.
Lorenzo Ancora
Ok, merci pour l'explication :) Je pensais que le comportement standard du double onglet sur Ubuntu était de lister le contenu de PATH :)
dadexix86
@LorenzoAncora La liste du contenu d'un répertoire ne s'affichera nulle part près de toutes les commandes exécutables. La liste du contenu de tous les répertoires PATH n'affichera pas les commandes internes du shell sans exécutable correspondant (tel que cd). Appuyez deux fois sur Tab pour surmonter ces deux limitations sévères. Si quelqu'un avait demandé comment afficher toutes les commandes sur un système GNU / Linux arbitraire, on pourrait soutenir que la complétion de tabulation n'est pas une solution adéquate. Bien sûr, tout pourrait changer dans Ubuntu à l'avenir, mais la probabilité de disparition des onglets dans le shell interactif par défaut disparaît est minuscule.
Eliah Kagan
2

Une liste de commandes dépend grandement de ce que vous avez installé, mais il existe des astuces pour répertorier toutes les commandes. Les travaux suivants sur la plupart des coquilles de type bourne:

  1. Appuyez Tabdeux fois.
  2. Utilisez findpour trouver tous les exécutables:

    find / -perm +x
    
  3. Liste tous les fichiers dans les répertoires binaires (peut être incomplet):

    ls /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin
    
Braiam
la source
1

Ouvrez une fenêtre de terminal (le terminal GNOME est OK, également un xTerm configuré).
Vos options sont:

  • En appuyant TABdeux fois sur la touche ("-> <-"), vous terminerez n'importe quelle commande dans la console et, si la ligne est vide, vous obtiendrez le numéro et les noms de toutes les commandes disponibles . Veuillez noter que cela peut nécessiter un certain temps et peut répertorier les utilitaires semi-administratifs. NOTE: ce n'est pas une norme, pour une manière "cross-shell" voir les autres options.

  • Permet man -k NAMEde rechercher une commande (ou une partie de celle-ci) et man COMMANDd'obtenir le manuel de cette commande. Toutes les commandes n'ont pas de manuel système; lire l'homme avant d' utiliser un utilitaire d'administration est toujours une bonne idée; croyez-moi.

  • Utilisez Midnight Commander ( mc) pour avoir une belle interface graphique (curses) pour gérer le système et le système de fichiers. Vous devrez peut-être l'installer à partir de votre gestionnaire de packages. Ne vous inquiétez pas; il s'agit d'un logiciel sûr et extrêmement courant.
    REMARQUE: il est conçu pour les cas de confusion ou de difficulté d'utilisation du système de fichiers.

  • Utilisez ls /bin | morepour connaître tous les exécutables administratifs existants ; ls /sbin | morepour les exécutables administratifs courants .

  • Utilisez ls /usr/sbin | morepour connaître tous les exécutables utilisateur ; ls /usr/sbin | moredonnera une très grande liste d' exécutables et de bibliothèques utilisateur .
    REMARQUE: Si la sortie de moredépasse une page (écran), vous devrez faire défiler py en appuyant sur "Page Up" et "Page Down" ou la barre d'espace.
    Vous pouvez utiliser COMMAND | grep TEXTpour filtrer la sortie.

Si vous avez d'autres questions, commentez ici et n'oubliez pas de cocher la case à côté de la réponse si je vous ai aidé.
Bonne expérience.

Lorenzo Ancora
la source
Habituellement, la plupart des exécutables sont dedans /usr/bin, ce que vous n'avez pas mentionné ici. Il y a aussi /sbin, qui contient des exécutables souvent utilisés pour l'administration du système, tels que usermodet ifconfig. Et de nombreux systèmes ont également d'autres répertoires binaires, comme /usr/gameset /usr/local/bin. Voir Norme de hiérarchie du système de fichiers et man 7 hier. Vous voudrez peut-être développer cela pour mentionner les répertoires importants pour les exécutables en plus de /binet /usr/sbin.
Eliah Kagan