auto-completion does not work for "sudo apt-get install"

52,411

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?

Solution 5

Open a Terminal and

sudo apt-get install bash-completion

After I installed bash-completion, this issue is fixed in my side.

Share:
52,411

Related videos on Youtube

anonygrits
Author by

anonygrits

Updated on September 18, 2022

Comments

  • anonygrits
    anonygrits almost 2 years

    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.

    • anonygrits
      anonygrits over 11 years
      No because auto completion still works for commands and folders etc... Just not for packages.
    • Nanne
      Nanne over 11 years
      That's exactly what that question is about? Maybe the answer isn't to your liking, but that is another thing. The question linked is about autocompletion of packages..
    • Eliah Kagan
      Eliah Kagan over 11 years
      @WG- Sorry, I misunderstood what you were saying.
  • nanofarad
    nanofarad over 11 years
    What other autocompletions are supported?
  • knb
    knb over 11 years
    @obsessivesso: that is customizable and extendable. See for example github.com/revans/bash-it/tree/master/completion/available
  • iyrin
    iyrin over 10 years
    I had to restart my server before this would work for me. Now I can tab complete package names. Note that I also enabled these lines in the .bashrc file of my user's home directory. /home/user/.bashrc
  • Sopalajo de Arrierez
    Sopalajo de Arrierez about 9 years
    Indeed, none of the other answers solved this problem for me, but this one did for Ubuntu 14.04.2 LTS Raspberry version. Thanks you for sharing.
  • Sahil Singh
    Sahil Singh over 8 years
    do ". ~/.bashrc" it is "<DOT><SPACE><tilde><forwad-slash><DOT><bashrc>" This will reload the config file. No need to restart the shell.
  • user1953384
    user1953384 about 8 years
    This worked for me in Debian Jessie 8.4 as well.
  • Nick
    Nick over 7 years
    You should only need to restart the terminal (bash) not the whole server. Also, this seems to be disable on Mint 18 for unknown reasons where it was uncommented on previous versions. Anyway, great answer, saves a ton of misery!
  • Geekman
    Geekman over 3 years
    Just had to do this on Ubuntu 20.04 server version to get apt completion. The bash-completion package was already installed.