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 ...
Get Shell Scripting: Expert Recipes for Linux, Bash, and More now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.