Another feature of bash is automatic completion of your command lines. For instance, let's look at the following example of a typical cp command:
It's a big pain to have to type every letter of this-is-a-long-file whenever you try to access it. So, create this-is-a-long-file by copying /etc/rc to it. Now, we're going to do the above cp command very quickly and with a smaller chance of mistyping.
Instead of typing the whole filename, type cp th and press and release the . Like magic, the rest of the filename shows up on the command line, and you can type in shorter. Unfortunately, bash cannot read your thoughts, and you'll have to type all of shorter.
When you type , bash looks at what you've typed and looks for a file that starts like that. For instance, if I type /usr/bin/ema and then hit , bash will find /usr/bin/emacs since that's the only file that begins /usr/bin/ema on my system. However, if I type /usr/bin/ld and hit , bash beeps at me. That's because three files, /usr/bin/ld, /usr/bin/ldd, and /usr/bin/ld86 start /usr/bin/ld on my system.
If you try a completion and bash beeps, you can immediately hit again to get a list of all the files your start matches so far. That way, if you aren't sure of the exact spelling of your file, you can start it and scan a much smaller list of files.