In the bash shell under Linux and other Unixesque operating systems, tab-completion allows users to quickly type the name of a command, or to find out the name of a command from its first few letters.

If there are no spaces in the command line, then the text that is being tab-completed is assumed to be a command. If the command has only one possible completion, then pressing TAB once will complete the command. If not, but the next few characters are shared, it will complete those. If it cannot complete any characters, it will display a list of all valid commands matching the criteria after a second press of TAB: if there are an excessive number, it will ask for confirmation first.

If there is a space, it is assumed that the user is trying to type the name of a file or directory: the same rules apply. This means that a directory structure such as /usr/doc/perl/perl6/TODO.txt can be typed as /utab/dtab/petab/ptabTOtab... a much quicker way when you know it will work.