Aggiungi a .bashrc
function ListAllCommands
{
echo -n $PATH | xargs -d : -I {} find {} -maxdepth 1 \
-executable -type f -printf '%P\n' | sort -u
}
Se vuoi anche gli alias, allora:
function ListAllCommands
{
COMMANDS=`echo -n $PATH | xargs -d : -I {} find {} -maxdepth 1 \
-executable -type f -printf '%P\n'`
ALIASES=`alias | cut -d '=' -f 1`
echo "$COMMANDS"$'\n'"$ALIASES" | sort -u
}
Puoi usare compgen
integrato in bash(1).
compgen -c
elencherà tutti i comandi che potresti eseguire.compgen -a
elencherà tutti gli alias che potresti eseguire.compgen -b
elencherà tutti i built-in che potresti eseguire.compgen -k
elencherà tutte le parole chiave che potresti utilizzare.compgen -A function
elencherà tutte le funzioni che potresti eseguire.compgen -A function -abck
elencherà tutto quanto sopra in una volta sola.
Controlla la pagina man per altri completamenti che puoi generare.
Per rispondere direttamente alla tua domanda:
compgen -ac | grep searchstr
dovrebbe fare quello che vuoi.
C'è il
type -a mycommand
comando che elenca tutti gli alias e i comandi in $PATH dove mycommand viene usato. Può essere utilizzato per verificare se il comando esiste in diverse varianti. A parte questo... Probabilmente c'è qualche script in giro che analizza $PATH e tutti gli alias, ma non conosco nessuno di questi script.