My system is Manjaro Linux based on Arch Linux, I use bash and bash-completion
.
It works perfectly when I type something as regular user (no sudo
)
$ rfkill <TAB><TAB>
block event help list unblock
but when I type it with sudo
$ sudo rfkill <TAB><TAB>
Display all 3811 possibilities? (y or n)
Obviously, it tries to complete sudo
command but I want it to complete rfkill
.
I know I can change this behavior by editing /usr/share/bash-completion/completions/sudo
file, but I have no idea how to say if second word is not a flag for sudo then use completion for next word.
Do you have?
UPD: I'm testing Ubuntu 16.04
in virtual machine and I see it works as expected. I'll check the difference between ubuntu's /usr/share/bash-completion/completions/sudo
file and mine, if any.
UPD2: There is some mirror (meaningless) difference between these files, anyway that didn't help. I have more ideas to test...
When at the MS-DOS, Windows command line or a Linux or Unix shell, typing in long file names or directories can become a burden. Use the Tab to autocomplete the names of directories and files while in the command line.
Making bash autocomplete case insensitive is a small and easy way to make your Linux terminal experience much smoother. For reverting the changes, you can simply edit the inputrc file and delete the set completion-ignore-case On line.
If the autocomplete results contain directories only (no files), then Bash Completion is installed. If the autocomplete results include files, then Bash Completion is not installed.
I had exactly the same problem (running Manjaro) and found a solution in the Manjaro Forum (Source):
bash-completion
is actually installed by checking whether /usr/share/bash-completion/bash_completion
exists. If not install it with pacman -S bash-completion
~/.bashrc
file make sure that complete -cf sudo
is commented out. Otherwise, this will make sudo
only auto-complete filenames and commands but not use bash-completion.I hope this helps you solving the problem
use double tab:
sudo rfkill <TAB><TAB>
UPD
if there is not that line, add this to your .bashrc
complete -cf sudo
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With