Añadir a .bashrc
function ListAllCommands
{
echo -n $PATH | xargs -d : -I {} find {} -maxdepth 1 \
-executable -type f -printf '%P\n' | sort -u
}
Si también desea alias, entonces:
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
}
Puede usar el compgen
integrado de bash(1)
compgen -c
enumerará todos los comandos que podría ejecutar.compgen -a
enumerará todos los alias que podría ejecutar.compgen -b
enumerará todas las funciones integradas que podría ejecutar.compgen -k
enumerará todas las palabras clave que podría ejecutar.compgen -A function
enumerará todas las funciones que puede ejecutar.compgen -A function -abck
enumerará todo lo anterior de una sola vez.
Consulte la página del manual para ver otras finalizaciones que puede generar.
Para responder directamente a su pregunta:
compgen -ac | grep searchstr
deberías hacer lo que quieras.
Está el
type -a mycommand
comando que enumera todos los alias y comandos en $PATH donde mycommand se usa Se puede utilizar para comprobar si el comando existe en varias variantes. Aparte de eso... Probablemente haya alguna secuencia de comandos que analice $PATH y todos los alias, pero no conozco ninguna de esas secuencias de comandos.