From LQWiki
When you use the bash shell on Linux it will complete commands and file names for you if you type the 'TAB' key. The default behaviour is:
- You type in the start of the command or filename.
- You hit TAB.
- The shell will fill in as much as it can and beep.
- Hit TAB again and it shows you all possible matches.
Example:
- You want to start firefox and type only firef and then the 'TAB' key.
- You want to know which commands starting with 'f' exist, so you type 'f' and then the 'TAB' key twice.
Configuration
The default behavior be changed to:
- You type in the start of the command or filename.
- You hit TAB.
- The shell will fill in as much as it can and shows you all possible matches.
All that needs to be done is:
- Edit /etc/inputrc
- Add the line:
set show-all-if-ambiguous on
Problems
Tab filename completion does not work in some scenarios.
- Example
- You are an ordinary user. You oPen a console and type
sudo cp /root/
and then the 'TAB' key. bash will try to complete the filename, but you as a user are not allowed to see the files in the /root folder. Bash filename completion will not work for this reason.
- Example
- You want to copy from the network
scp root@192.168.0.1:/tmp/
then the 'TAB' key does not work.

This page is available under a