This is done by setting an option for GNU readline, which is what handles the input in an interactive shell.
The magic line needed is
set completion-ignore-case on, and can be put in the users's
~/.inputrc file, or the system
/etc/inputrc to enable it for all users. This is the initialisation file for readline.
But there is an important caveat:
/etc/inputrc is only processed if
~/.inputrc doesn't exist.
So if you create
~/.inputrc, you will suddenly find that the system
/etc/inputrc is no longer applied next time you open a terminal. (For me this caused me to lose some key mappings, such as
Right. You can see which ones by perusing the
The way to fix this this problem is to have the line
$include /etc/inputrc inside
set completion-ignore-case on
More information about readline and inputrc can be found in
man bash and
man 3 readline.