Tab Completion
All of the modern shells have command and filename completion via the <TAB> key. Bourne shell and csh do not, but ksh, bash, tcsh, and zsh all have tab completion to varying degrees. The basic principle in all of these shells is the same; you type the start of the word, hit the <TAB> key twice, and the list of possible commands or files is displayed. The actual details differ in implementation, so a brief overview of how to get things done in each of these shells follows.
ksh
Typing ca and then hitting <TAB> twice results in a list rather like that produced by the select command. Each item is numbered so you simply enter the number that relates to your choice followed by another <TAB>. For example, ca could be the start of cancel, callgrind_annotate, or any of these other possibilities.
ksh$ ca<TAB><TAB> 1) /usr/bin/cancel 2) /usr/bin/callgrind_annotate 3) /usr/bin/cameratopam 4) /usr/bin/callgrind_control 5) /usr/bin/cancel.cups 6) /usr/bin/cal 7) /usr/bin/captoinfo 8) /usr/bin/catchsegv 9) /usr/bin/card 10) /usr/sbin/cacertdir_rehash 11) /usr/sbin/callback 12) /bin/cat 6<TAB> ksh$ /usr/bin/cal March 2011 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 $
Filename completion works in exactly the same way:
ksh$ cat /etc/host<TAB><TAB> 1) host.conf 2) hosts 3) hosts.allow 4) hosts.deny 4<TAB> ksh$ cat /etc/hosts.deny
tcsh
tcsh acts in much the same way, but the options are ...