Something that is a life-saver for me is to have bash cycle through the possibilities instead of showing a dumb list.
As bash is using readline
for its auto-completion, add the following lines to ~/.inputrc
Once you're satisfied and have thoroughly tested below solution for a few days/weeks, cut and paste (don't copy!) the same settings from ~/.inputrc
to /etc/inputrc
which contains the system-wide settings, making this available to all users on your system (including guest).
The codez:
# mappings to have up and down arrow searching through history:
"\e[A": history-search-backward
"\e[B": history-search-forward
# mappings to have left and right arrow go left and right:
"\e[C": forward-char
"\e[D": backward-char
# mapping to have [Tab] and [Shift]+[Tab] to cycle through all the possible completions:
"\t": menu-complete
"\e[Z": menu-complete-backward
then exit
your terminal (or remote terminal like putty) and open it again...
Examples:
When you have 3 files: file1
, file2
and file3
and you type:
e fTabTabTab
it'll cycle through:
e file1
e file2
e file3
and when you want to cycle backwards, just hit Shift+Tab
When you type:
very-complicated-command with lots of command line parameters
and next time you need the same command, you just type:
very↑
and it'll type for you:
very-complicated-command with lots of command line parameters
This will save you a ton of time in bash! ;-)