C'è un modo per elencare tutti i comandi disponibili nel terminale

3

C'è un modo per elencare tutti i comandi disponibili nel terminale?

So che linux ha compgen -c c'è un comando equivalente per OS X?

Aggiornamento: Il vero problema era che stavo usando zsh invece di bash. Quindi da zsh, potrei semplicemente aprire bash o eseguire un comando bash da zsh bash -c "compgen -c"

    
posta Your Friend Ken 30.06.2016 - 22:48
fonte

4 risposte

7

In zsh devi abilitare il sistema di completamento. Si prega di leggere man zshcompsys . Per installare il sistema di completamento, immettere il comando

compinstall

e segui le indicazioni. Controlla la variabile fpath

echo $fpath

nella mia situazione avevo bisogno di dichiarare la variabile nel mio .zshrc

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

Questa è la posizione del mio zsh functions . Dopo la riga compinit nel tuo .zshrc aggiungi le seguenti righe

autoload -Uz bashcompinit
bashcompinit

Questa è la voce dei completamenti nel mio .zshrc

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

Ora posso inserire il comando compgen -c e si comporta in modo simile a bash .

    
risposta data 01.07.2016 - 19:15
fonte
4

Tocca due volte il tasto Tab (scheda ). Ti verrà richiesto se vuoi vedere tutti i possibili comandi. Tocca y e ti verrà presentato un elenco.

Puoi fare lo stesso per i singoli comandi per vedere tutte le opzioni per quel comando specifico.

    
risposta data 30.06.2016 - 23:42
fonte
3

Come commentato sopra fd0, la migliore fonte per elencare rapidamente la maggior parte di tutto ciò che puoi fare nel terminale, è usare Bash incorporato compgen .

Compgen si interfaccia con la funzione "completamento" in Bash, quindi è destinato a mantenere un elenco di tutto ciò che puoi fare nella shell. Quindi è interessante che tecnicamente compgen stia elencando comandi, alias e funzioni, così come alcune altre cose come builtin, variabili, gruppi, lavori e nomi di servizio. La mia esperienza è che non verrà elencato tutto, come le applicazioni tipicamente eseguite nella GUI, che menzionerò di seguito. Ad esempio, puoi utilizzare il comando open in OSX per alcune cose.

compgen -c esegue il comando in un ambiente di subshell e il suo output viene utilizzato come possibile completamento, che è probabilmente quello che vuoi. Se Bash se la tua shell, visualizzerà informazioni simili per tutti i comandi o un singolo comando se premi Tab Tab .

È anche comune in OSX che molti programmi possono essere eseguiti dalla shell, quindi molti nomi di programmi che troverai in / Applicazioni può anche essere chiamato tramite una CLI dalla shell. Allo stesso modo, molti programmi sono (almeno) in / Applicazioni / Utility , alcune cose interessanti sono in / System / Library / CoreServices / Applications (così come altre cose nella directory principale / System ...), e talvolta i programmi personalizzati vengono messi sotto le classiche posizioni di Unix come / usr / bin, usr / local / bin, / opt e / sys / bin.

Spesso puoi trovare altre cose interessanti da digitare, probabilmente anche trattate sopra, digitando help o help [command or argument] , con più informazioni sulla maggior parte dei programmi o builtin che arrivano con info [command] o man [command]. Apropos è anche abbastanza interessante, che potresti già sapere. Queste cose otterranno gran parte di tutto, immagino ci siano altre cose che servono o che dovrebbero, incidere e scoprire ...

    
risposta data 30.06.2016 - 23:36
fonte
0

Mentre sei in Terminale, digita Tab Tab . Quindi vedrai:

Display all 1653 possibilities? (y or n).

Premi Y e elencherà tutti i possibili comandi

    
risposta data 18.10.2016 - 03:11
fonte

Leggi altre domande sui tag