Zu .bashrc hinzufügen
function ListAllCommands
{
echo -n $PATH | xargs -d : -I {} find {} -maxdepth 1 \
-executable -type f -printf '%P\n' | sort -u
}
Wenn Sie auch Aliase wollen, dann:
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
}
Sie können den in bash(1) eingebauten compgen
verwenden
compgen -c
listet alle Befehle auf, die Sie ausführen könnten.compgen -a
listet alle Aliase auf, die Sie ausführen könnten.compgen -b
listet alle integrierten Funktionen auf, die Sie ausführen können.compgen -k
listet alle Keywords auf, die Sie ausführen könnten.compgen -A function
listet alle Funktionen auf, die Sie ausführen könnten.compgen -A function -abck
listet alle oben genannten Punkte auf einmal auf.
Suchen Sie in der Manpage nach anderen Vervollständigungen, die Sie generieren können.
Um Ihre Frage direkt zu beantworten:
compgen -ac | grep searchstr
sollte tun, was du willst.
Da ist die
type -a mycommand
Befehl, der alle Aliase und Befehle in $PATH auflistet, wobei mycommand wird genutzt. Kann verwendet werden, um zu prüfen, ob der Befehl in mehreren Varianten existiert. Abgesehen davon ... Es gibt wahrscheinlich ein Skript, das $PATH und alle Aliase analysiert, aber ich kenne kein solches Skript.