Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

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.

share|improve this question
3  
Possible duplicate? askubuntu.com/questions/86375/apt-get-autocomplete –  fossfreedom Oct 30 '12 at 20:31
    
No because auto completion still works for commands and folders etc... Just not for packages. –  WG- Oct 30 '12 at 20:56
    
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.. –  Nanne Oct 30 '12 at 21:15
    
@WG- Sorry, I misunderstood what you were saying. –  Eliah Kagan Jan 29 '13 at 13:40

5 Answers 5

up vote 14 down vote accepted

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 ;-)

share|improve this answer
    
What other autocompletions are supported? –  hexafraction Nov 8 '12 at 22:47
    
@obsessivesso: that is customizable and extendable. See for example github.com/revans/bash-it/tree/master/completion/available –  knb Nov 22 '12 at 14:55
    
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 –  RyanLoremIpsum Jan 6 at 10:02

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
share|improve this answer

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?

share|improve this answer

this happens to me when either:

  1. I use my university pc where I can't use the autocomplete because am not a super user.

  2. The ppa of the package that you are trying to download is not in your source.list. So the terminal can't recognize the package that you are trying to download.

NOTE: This may not apply to everyone. Am just sharing my experience

share|improve this answer

Another issue can be a failed apt-get update. After removing the wrong sources, and running apt-get update, I got my autocomplete restored.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.