Bash is the way cool shell.
Bash will even complete the name of commands and environment variables.
And if there are multiple completions, if you hit TAB twice bash will show
you all the completions. Bash is the default user shell for most Linux systems.
Some ideas for useful inclusions in the bashrc (e.g. usage <...>):
#this is useful for navigation, returns to the
#previous directory and lists it in a single command
alias bb='cd ..;ls'
#greps the history
alias hh='history | grep'
#list only subdirectories
alias ld='ls -al -d * | egrep "^d"'
alias rm='rm -i'