Linux command to list all available commands and aliases Linux command to list all available commands and aliases linux linux

Linux command to list all available commands and aliases


You can use the bash(1) built-in compgen

  • compgen -c will list all the commands you could run.
  • compgen -a will list all the aliases you could run.
  • compgen -b will list all the built-ins you could run.
  • compgen -k will list all the keywords you could run.
  • compgen -A function will list all the functions you could run.
  • compgen -A function -abck will list all the above in one go.

Check the man page for other completions you can generate.

To directly answer your question:

compgen -ac | grep searchstr

should do what you want.


Add to .bashrc

function ListAllCommands{    echo -n $PATH | xargs -d : -I {} find {} -maxdepth 1 \        -executable -type f -printf '%P\n' | sort -u}

If you also want aliases, then:

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}


There is the

type -a mycommand

command which lists all aliases and commands in $PATH where mycommand is used. Can be used to check if the command exists in several variants. Other than that... There's probably some script around that parses $PATH and all aliases, but don't know about any such script.