Wie bekomme ich eine Liste aller für Ubuntu verfügbaren Befehle?

22

Ich möchte das Terminal häufiger verwenden, weiß aber nicht, welche Befehle mir zur Verfügung stehen. Gibt es eine Möglichkeit, alle verschiedenen Befehle aufzulisten, die ich verwenden kann?

user233219
quelle

Antworten:

25

Erste Methode

NB : Danke an @Rmano. Diese Methode funktioniert nicht mit der zshShell.

Ein einfacher Befehl:

ls ${PATH//:/ }

Dadurch werden alle Befehle in Ihrer $PATHUmgebungsvariablen aufgelistet.

Um das Ergebnis in einer Datei zu speichern, können Sie die Ausgabe in eine Datei umleiten.

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

Beachten Sie, dass dies einen Fehler zurückgibt, wenn Verzeichnisnamen in Ihren $PATHLeerzeichen enthalten sind. Verwenden Sie in diesem Fall stattdessen Folgendes:

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

Zweite Methode

Auch können Sie verwenden:

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

Dritte Methode

Eine andere Methode ist ein TabDoppelklick.

Vierte Methode

Eine andere Methode mit findBefehl:

find {,/usr}/{,s}bin -printf '%f\n\0'
Maythux
quelle
Beachten Sie, dass der erste Befehl in funktioniert, bashjedoch nicht in zsh, bei dem die Wortteilung standardmäßig deaktiviert ist. refining-linux.org/archives/38/...
Rmano
11

Wenn Sie bash verwenden, was die Standard-Shell in allen offiziellen Ubuntu-Versionen ist, führen Sie dies aus compgen -c, um die verfügbaren Befehle einschließlich der Aliase anzuzeigen.


quelle
Ist das nur Bash?
Braiam
1
Sogar die Befehle für GUI-basierte Programme sind enthalten. Wenn Sie dies tun compgen -c | grep thunarund den Thunar-Dateimanager installiert haben, sehen Sie auch Befehle, die sich auf Thunar beziehen.
1
Mmm ... funktioniert nicht in Debian. Welches Paket bietet das?
Braiam
2
@Rinzwind das erklärt es, ich benutze zsh.
Braiam
1
@ vasa1: Könnte diese Antwort allgemeiner sein? Ich meine , es nur die Lösung für bash bietet, sondern als Braiam bemerkte es nicht funktioniert für zsh ... Wenn möglich , könnten Sie bitte die Antwort auf cater ein größeres Publikum erweitern - natürlich nur , wenn Sie die Antwort kennen :-)
Aditya
4

Öffnen Sie das Terminal Ctrl+ Alt+ tund diesen Befehl ausführen:

whatis `compgen -c` | more 

Dies listet alle Befehle und eine einfache Beschreibung jedes Befehls auf.

Wenn Sie die Liste speichern möchten, können Sie das Ergebnis in eine Ausgabedatei umleiten

whatis `compgen -c` > listOfCommands.txt

Warum habe ich whatis Befehl verwendet? Der Befehl man whatisgibt:

Jede Handbuchseite enthält eine kurze Beschreibung.
whatis durchsucht die manuellen Seitennamen und zeigt die manuellen Seitenbeschreibungen aller übereinstimmenden Namen an.

whatisGeben Sie also in einfachen Worten einen General an. Beschreibung jedes Befehls

Maythux
quelle
+1 für zusätzliche Informationen. whatis `compgen -c` | sort> listOfCommands.txt hilft, in die Sortierliste zu gelangen.
Saurav Kumar
Ein weiterer nützlicher Befehl: apropos <keyword>Durchsucht alle Befehle und ihre Kurzbeschreibung und zeigt die Ergebnisse an
Aloso
3

Öffnen Sie ein Terminal und drücken Sie die TabTaste zweimal.

dadexix86
quelle
1
-1 weil das nicht Standard ist.
Lorenzo Ancora
@LorenzoAncora warum ist es nicht Standard? Haben nicht alle Ubuntu die Autovervollständigung mit doppeltem Tab als Standardverhalten?
Dadexix86
2
Standard! = Standard: In Zukunft wird es möglicherweise eine Konsole geben, die diesen Mechanismus nicht unterstützt, da er nicht Standard ist. Darüber hinaus kann der TAB-Standard eine andere Funktion erfüllen. Eine Standardprozedur ist das Auflisten des Inhalts von 'bin', da dies Teil des offiziellen FHS-Standards ist und jedes Linux / Unix-System über dieses Verzeichnis verfügt. Die korrekte Funktionalität (und die Fähigkeit der Community, den Benutzern zu helfen) von Ubuntu wird durch die Einhaltung der Standards sichergestellt.
Lorenzo Ancora
Ok, danke für die Erklärung :) Ich dachte, dass das Standardverhalten des doppelten Tabs unter Ubuntu darin bestand, den Inhalt von PATH
aufzulisten
@LorenzoAncora Das Auflisten des Inhalts eines Verzeichnisses wird nicht in der Nähe aller ausführbaren Befehle angezeigt. Das Auflisten des Inhalts aller PATH-Verzeichnisse zeigt keine Shell-Builtins ohne entsprechende ausführbare Datei (wie z. B. cd) an. Durch zweimaliges Drücken der Tabulatortaste werden beide schwerwiegenden Einschränkungen behoben. Wenn jemand gefragt hätte, wie alle Befehle auf einem beliebigen GNU / Linux-System angezeigt werden sollen, könnte man argumentieren, dass die Tab-Vervollständigung keine angemessene Lösung ist. Natürlich könnte sich in Ubuntu in Zukunft etwas ändern, aber die Wahrscheinlichkeit, dass die Tab-Vervollständigung in der interaktiven Standard-Shell nicht mehr funktioniert, ist gering.
Eliah Kagan
2

Die Liste der Befehle hängt stark von Ihrer Installation ab. Es gibt jedoch einige Tipps, um alle Befehle aufzulisten. Das Folgende funktioniert auf den meisten bourne-ähnlichen Muscheln:

  1. Drücken Sie Tabzweimal.
  2. Verwenden Sie find, um alle ausführbaren Dateien zu finden:

    find / -perm +x
    
  3. Listen Sie alle Dateien in den Binärverzeichnissen auf (möglicherweise unvollständig):

    ls /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin
    
Braiam
quelle
1

Öffnen Sie ein Terminalfenster (GNOME-Terminal ist OK, auch ein konfiguriertes xTerm).
Ihre Möglichkeiten sind:

  • Durch Drücken der TAB zweimaliges Taste ("-> <-") führen Sie einen beliebigen Befehl in der Konsole aus. Wenn die Zeile leer ist, erhalten Sie die Nummer und die Namen aller verfügbaren Befehle . Bitte beachten Sie, dass dies einige Zeit in Anspruch nehmen kann und möglicherweise semi-administrative Dienstprogramme auflistet. HINWEIS: Dies ist kein Standard. Weitere Optionen finden Sie unter "Cross-Shell".

  • Verwenden Sie man -k NAMEdiese Option , um nach einem Befehl (oder einem Teil davon) zu suchen und man COMMANDdas Handbuch für diesen Befehl zu erhalten. Nicht alle Befehle verfügen über ein Systemhandbuch. den Mann lesen ist immer eine gute Idee, bevor Sie ein Verwaltungsdienstprogramm verwenden. vertrau mir.

  • Verwenden Sie Midnight Commander ( mc), um eine schöne Konsolen-GUI (Curses) zur Verwaltung des Systems und des Dateisystems zu haben. Möglicherweise müssen Sie es von Ihrem Paketmanager installieren. Mach dir keine Sorgen; Es ist eine sichere und sehr verbreitete Software.
    ANMERKUNG: Diese Option eignet sich für den Fall, dass Sie Probleme mit der Verwendung des Dateisystems haben.

  • Verwenden Sie ls /bin | morediese Option , um alle ausführbaren Dateien für Verwaltungsaufgaben zu kennen . ls /sbin | morefür allgemeine administrative ausführbare Dateien .

  • Verwenden Sie ls /usr/sbin | morediese Option , um alle ausführbaren Dateien des Benutzers zu kennen . ls /usr/sbin | morewird eine sehr große Liste von ausführbaren Dateien und Bibliotheken des Benutzers geben .
    HINWEIS: Wenn die Ausgabe von moremehr als einer Seite (bildschirmfüllend) erfolgt, müssen Sie einen Bildlauf durchführen, indem Sie auf "Bild auf" und "Bild ab" oder die Leertaste drücken.
    Sie können verwendenCOMMAND | grep TEXT die Ausgabe filtern.

Wenn Sie weitere Fragen haben, kommentieren Sie diese hier und vergessen Sie nicht, das Häkchen neben der Antwort zu markieren, wenn ich Ihnen geholfen habe.
Hab eine schöne Erfahrung.

Lorenzo Ancora
quelle
Normalerweise befinden sich die meisten ausführbaren Dateien in /usr/bin, die Sie hier nicht erwähnt haben. Es gibt /sbinauch ausführbare Dateien, die häufig für die Systemadministration verwendet werden, z. B. usermodund ifconfig. Und viele Systeme haben auch andere binäre Verzeichnisse, wie /usr/gamesund /usr/local/bin. Siehe Dateisystem-Hierarchiestandard und man 7 hier. Sie können dies erweitern, um wichtige Verzeichnisse für ausführbare Dateien neben /binund zu erwähnen /usr/sbin.
Eliah Kagan