Woher stammen die Informationen, die vom OS X-Terminal mit der Funktion "Alle Befehle anzeigen" angezeigt werden?

0

Das habe ich gerade erst gelernt, wenn du gedrückt hältst ESC Auf dem Mac-Terminal wird nach einigen Sekunden eine Eingabeaufforderung angezeigt, in der Sie aufgefordert werden, alle auf Ihrem System verfügbaren Befehle anzuzeigen, einschließlich Aliasnamen, integrierter Funktionen und ausführbarer Dateien auf Ihrem PATH.

Quelle: http://www.mactricksandtips.com/2008/05/list-all-possible-terminal-commands.html

Die Ausgabe erfolgt jedoch über a more Filter, und ich kann nicht grep es oder leiten Sie es an einen anderen Befehl.

Weiß jemand, wie diese magische Ausgabe erzeugt wird? Wird es nur im laufenden Betrieb vom Terminal generiert? Gibt es einen Bash-Befehl, der explizit in der Befehlszeile aufgerufen werden kann und dasselbe Ergebnis liefert?

Meistens ist es Neugier, aber ich würde es lieben, die Ergebnisse als Text zu erhalten, den ich nachbearbeiten und nicht nur auf dem Bildschirm durchsuchen kann.

Sergio Acosta
quelle
Retagged, weil es eine Bash-Funktion ist.
Ignacio Vazquez-Abrams
Vielen Dank. Das ist ein Anfang: Zumindest weiß ich jetzt, dass es nicht Terminal.app ist, sondern derjenige, der den Trick macht.
Sergio Acosta
1
Verbunden: superuser.com/questions/58201/…
Chris Johnsen
1
Drücken Sie an einer leeren Eingabeaufforderung einfach zweimal die Esc-Taste - Sie müssen sie nicht gedrückt halten.
Dennis Williamson

Antworten:

2

Wie Ignacio Vazquez-Abrams bemerkte, stammt diese Funktionalität aus dem Bash Vervollständigungsfunktion. Das compgen Eingebauter Befehl bietet Zugriff auf die Funktionalität.

Sie können folgendermaßen auf die Befehlsvervollständigung zugreifen:

# all commands
compgen -c
# command starting with "ls"
compgen -c ls
Chris Johnsen
quelle
Wow, viel besser. Danke vielmals!
Sergio Acosta