The file ~/.bashrc , identically /etc/skel/.bashrc , currently sources ~/.bash_aliases BEFORE setting up the programmable completion features (/usr/share/bash-completion/bash_completion or /etc/bash_completion ) It would be better if ~/.bash_aliases is sourced AFTER setting up bash-completion, so that that the user's file can modify the bash-completion features after they have been set up. Currently, anything done regarding completion in ~/.bash_aliases gets clobbered by the system. ~/.bash_aliases should be the very last thing in ~/.bashrc . The general idea is to allow the user to modify ~/.bashrc as little as possible (to make it easy to pick up any changes after upgrades), so to allow the user to only need to make local changes to ~/.bash_aliases . Attached is a patch to the source.