In a Terminal, if I type beginning of any command by pressing tab I can see the rest of that command.

However this feature does not work with any words I type after sudo.

How can I complete command names even after I write sudo?

  • 2
    One way would be to write the command first, followed by Ctrl-A to jump to the beginning of the line and then type sudo. – nohillside Feb 15 '13 at 20:50

OS X has not turned ON as many completion possibilities at the guys behind Ubuntu. In order to add autocompletion to sudo, you should simply add to the file $HOME/.bash_profile

complete -cf sudo

The description of complete and its options is briefly defined in the bash built-in commands manual page (see man bash). Although the -c and -f commands are not obviously detailed, one can find their description under the "-A action" explanation.


I did fix my problem by installing Bash Completion on Macports.


It would help to know what shell you are using. This works for me in both bash and zsh. The completion in zsh is much better than bash.

One thing you could do is to type the command you want using tab completion, but before hitting return type control-a to go to the beginning of the line and then type sudo and hit return to execute the command.

  • I checked terminal -> preferences it says Login Shell. I think I'm not using any special shell. actually I wrote /bin/bash and /bin/zsh none of them helped to fix my problem. – Anar Bayramov Feb 15 '13 at 21:17
  • Do what I recommend in the second paragraph of my answer. That is best. – Ɱark Ƭ Feb 15 '13 at 21:24
  • 1
    yeah but I wanna use it like as I always did in ubuntu is there any other way to do that ? – Anar Bayramov Feb 15 '13 at 21:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .