Ajouter à .bashrc
function ListAllCommands
{
echo -n $PATH | xargs -d : -I {} find {} -maxdepth 1 \
-executable -type f -printf '%P\n' | sort -u
}
Si vous souhaitez également des alias, alors :
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
}
Vous pouvez utiliser le bash(1) intégré compgen
compgen -c
listera toutes les commandes que vous pourriez exécuter.compgen -a
listera tous les alias que vous pourriez exécuter.compgen -b
listera toutes les fonctions intégrées que vous pourriez exécuter.compgen -k
répertoriera tous les mots clés que vous pourriez exécuter.compgen -A function
listera toutes les fonctions que vous pourriez exécuter.compgen -A function -abck
listera tout ce qui précède en une seule fois.
Consultez la page de manuel pour d'autres complétions que vous pouvez générer.
Pour répondre directement à votre question :
compgen -ac | grep searchstr
devriez faire ce que vous voulez.
Il y a le
type -a mycommand
commande qui répertorie tous les alias et commandes dans $PATH où mycommand est utilisé. Peut être utilisé pour vérifier si la commande existe en plusieurs variantes. Autre que cela... Il y a probablement un script qui analyse $PATH et tous les alias, mais je ne connais aucun script de ce type.