auto-completion does not work for "sudo apt-get install" [duplicate]
Okay a college of mine just showed me that you could do
sudo apt-get install <type first letters of package> <TAB>
That it auto-completes the name of the package. Just for an example...
sudo apt-get install ged<TAB>
results in sudo apt-get install gedit
Now I tried to do this but this does not work for me.
How can I solve this? Do I have to install a package? My college told me that he didn't install anything extra for it.
Solution 1:
Bash does support some more kinds of autocompletion, not only filename completion.
In the file /etc/bash.bashrc, you will find a paragraph, like this or similiar to this:
# enable bash completion in interactive shells #if ! shopt -oq posix; then # if [ -f /usr/share/bash-completion/bash_completion ]; then # . /usr/share/bash-completion/bash_completion # elif [ -f /etc/bash_completion ]; then # . /etc/bash_completion # fi #fi
(this example is from debian, but is probably identical to the Ubuntu version)
By removing the #
character in the beginning of each line you put a lot of additional completion rules into effect. (Don't remove the # on the first line... thats really a comment ;-)
I believe apt-get completions are among those enabled with this. If not you could think about switching to zsh. I know they support it ;-)
Solution 2:
I found that on mine this was happening because bash-completion
was not installed for some reason. So this fixed it (12.04):
sudo apt-get install bash-completion
Solution 3:
I had the same problem after installing Ubuntu 15.10.
Reinstalling bash-completion
worked for me :
sudo apt-get install --reinstall bash-completion
Solution 4:
In Ubuntu it started to irritate me too, so I just did (in terminal):
gksu gedit /etc/bash.bashrc
and changed
# enable bash completion in interactive shells
#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
# . /etc/bash_completion
#fi
into
# enable bash completion in interactive shells
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
now it works like I want it to again... HTH :)
It is different from the example Paul Hänsch gave, mine came from ubuntu 12.04. I am not sure what Pauls version would do exactly, maybe he could elaborate on that a bit?