¿Hay una manera de enumerar todos los comandos disponibles en el terminal

3

¿Hay una manera de enumerar todos los comandos disponibles en el terminal?

Sé que Linux tiene compgen -c ¿hay un comando equivalente para OS X?

Actualización: El problema real fue que estaba usando zsh en lugar de bash. Entonces, desde zsh, podría abrir bash o ejecutar un comando bash desde zsh bash -c "compgen -c"

    
pregunta Your Friend Ken 30.06.2016 - 22:48

4 respuestas

7

En zsh necesita habilitar el sistema de finalización. Por favor, lea a través de man zshcompsys . Para instalar el sistema de finalización ingrese el comando

compinstall

y sigue las instrucciones. Compruebe la variable fpath

echo $fpath

en mi situación necesitaba declarar la variable en mi .zshrc

fpath=(/usr/local/share/zsh/5.0.7/functions)

Esta es la ubicación de mi zsh functions . Después de la línea compinit en su .zshrc agregue las siguientes líneas

autoload -Uz bashcompinit
bashcompinit

Estas son las entradas de completamientos en mi .zshrc

#\\_ COMPLETIONS _///#
zstyle :compinstall filename '/Users/fd0/.zshrc'
zstyle ':completion:*' list-colors "${(@s.:.)LS_COLORS}"
autoload -Uz compinit
compinit
autoload -Uz bashcompinit
bashcompinit

Ahora puedo ingresar el comando compgen -c y se comporta de manera similar a bash .

    
respondido por el fd0 01.07.2016 - 19:15
4

Simplemente toca la tecla Tabulación dos veces ( Tabulación Tabulación ). Se le preguntará si desea ver todos los comandos posibles. Toca y y aparecerá una lista.

Puede hacer lo mismo para que los comandos individuales vean todas las opciones para ese comando específico.

    
respondido por el fsb 30.06.2016 - 23:42
3

Al igual que fd0 comentado anteriormente, la mejor fuente para enumerar rápidamente todo lo que puede hacer en la Terminal, es mediante el uso de Bash builtin compgen .

Compgen se conecta con la función de "finalización" en Bash, por lo que está pensado para mantener una lista de casi todo lo que puedes hacer en el shell. Por lo tanto, es interesante que técnicamente compgen esté enumerando comandos, alias y funciones, así como algunas otras cosas como elementos integrados, variables, grupos, trabajos y nombres de servicio. Mi experiencia es que no aparecerá en la lista Todo, como aplicaciones típicamente ejecutadas en la GUI, que mencionaré más adelante. Puede usar el comando open en OSX para varias cosas, por ejemplo.

compgen -c ejecuta el comando en un entorno de subshell, y su salida se usa como las posibles finalizaciones, que es probablemente lo que desea. Si Bash si su shell, emitirá información similar para todos los comandos o un solo comando si presiona Tabulación Tabulación .

También es común en OSX que muchos programas se pueden ejecutar desde el shell, así que muchos nombres de programas se encuentran en / Aplicaciones también se puede llamar a través de un CLI desde el shell. De manera similar, muchos programas están (al menos) en /Aplicaciones/Utilidades , algunas cosas interesantes están en / System / Library / CoreServices / Applications (así como otras cosas en el directorio principal / System ...), y también a veces los programas personalizados se ubican en las ubicaciones clásicas de Unix como / usr / bin, usr / local / bin, / opt y / sys / bin.

A menudo, puede encontrar otras cosas interesantes para escribir, probablemente también cubiertas anteriormente, al escribir help o help [command or argument] , con más información sobre la mayoría de los programas o programas que vienen con info [command] o man [command]. Apropos también Bastante interesante, que tal vez ya sepas. Estas cosas obtendrán casi todo, me imagino que hay otras cosas que uno solo necesita, o debería, hackear y descubrir ...

    
respondido por el forgotstackxpassword 30.06.2016 - 23:36
0

Mientras estés en la Terminal, escribe Tabulación Tabula . Entonces verás:

Display all 1653 possibilities? (y or n).

Presione Y y mostrará una lista de todos los comandos posibles

    
respondido por el James 18.10.2016 - 03:11

Lea otras preguntas en las etiquetas