I find the beep useful for some things, so I only want to turn it off for tab completion (I'm not asking how to completely turn it off, that has already been answered in a different question on Serverfault). I also don't have root access, working on RHEL5.
Readline library has
Controls what happens when Readline wants to ring the terminal bell. If set to ‘none’, Readline never rings the bell. If set to ‘visible’, Readline uses a visible bell if one is available. If set to ‘audible’ (the default), Readline attempts to ring the terminal’s bell.
So you can put into your
~/.inputrc file following line:
set bell-style none
bind -f ~/.inputrc once to load it.
I'm not aware of any way to disable the tab completion bell in
bash (aside from disabling the bell entirely or changing it to the subjectively-more-annoying visual bell).
You could try
set show-all-if-ambiguous on in your
~/.inputrc - this makes the shell show the list of matching commands/items immediately when you hit tab instead of waiting for you to hit tab twice.
A side effect is that there is no bell before the candidate matches are shown.