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.

Sometimes, when I type a command on the terminal, the terminal's autocomplete does not work, even if my command is not wrong.

For example, take look to this: sudo service vsftpd status sudo and service do not have any problem. I mean, when you type sud +tab terminal suggest you sudo or I type servi + tab terminal complete that to service. But for vsftpd I do not get any suggestion. Is there a way to say, "terminal, please tell me any suggestion!!?".

share|improve this question

4 Answers 4

up vote 25 down vote accepted

The degree to which auto-completion works is a function of how well the shell scripts in the bash-completion package work.

In Ubuntu 14.04, the script that handles completions for service is in /usr/share/bash-completion/bash_completion. It looks for service names as files in /etc/rc.d/init.d and /etc/init.d, and in the output of systemctl list-units --full --all.

But installing the vsftpd package doesn't put any files in /etc/init.d, because it has been systemd-ified; it puts a config file in /etc/systemd/system/vsftpd.service. systemctl list-units would find that file if not for the fact that Ubuntu, at the present time, doesn't include a systemctl command.

So, at the moment, you won't get auto-completions for service vsftpd, but you will for most other services, since their config files are in /etc/init.d.

share|improve this answer

When there are multiple possible suggestions, tab will not produce any suggestion. Using tab tab (double tab) will produce a list of all possible suggestions.

share|improve this answer
    
+1 for being 3 seconds quicker ;) –  Rinzwind May 27 at 19:18
    
I used:tab + tab does not work for vsftpd. You and Rinzwind's suggestion is work for example su + tab + tab. But for vsftpd does not work. –  lion May 27 at 19:27
    
you can test that first install small program vsftpd by sudo apt-get install vsftpd and then try tab + tab –  lion May 27 at 19:31
2  
tab+tab does not work in case of parameters. In sudo service vsftpd status, the vsftpd is a parameter of service, and therefore will not be found with a double tab. The OP is correct at this point. –  Jos May 27 at 19:50
2  
@Jos But other services like apache2 and networking autocomplete. How are they different? –  dan08 May 27 at 19:56

vsftpd has probably more than 1 option. tab twice to view the possibilities.

Example: li with tabtab shows:

libnetcfg          line               lintian-info       lispmtopgm
libreoffice        linguist           linux32            listres
lightdm            link               linux64            
lightdm-session    lintian            linux-boot-prober  
share|improve this answer

You can build your own!

E.g.: put complete -f -r -c su -d 'Username' -a '(cat /etc/passwd|cut -d : -f 1)' into bash than if you have su and press tab/tab it gives you all users, yeah. See here

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.