Ubuntu 16.04.1 LTS
Я не знаю то, что я сделал, все хорошо работало, но с тех пор сегодня, мой удар не автоматически заполняет больше, когда я использую sudo. Я могу использовать автозавершение в качестве обычного пользователя, я могу использовать автозавершение в качестве корня, я могу использовать автозавершение для каталогов с sudo, но я не могу использовать автозавершение для файлов, если я использую sudo.
Если я пишу:
$sudo vim /etc/ssm[TAB]
это автоматически заполнит к:
$sudo vim /etc/ssmtp/
но затем если я совершил нападки [ВКЛАДКА] снова, даже дважды как я использовался для списка файлов в каталоге, ничего не происходит. Я уже проверил, и мне включили автозавершение в пользователе .bashrc и также в/etc/bash.bashrc
Попробуйте во-первых переустановка завершения удара пакет с:
sudo Кв. - добирается, установка - переустанавливают завершение удара
Затем резервное копирование Вашего .bashrc файла :
~/.bashrc ~/.bashrc.bak
мВ Наконец, заменяют Ваш .bashrc файл значением по умолчанию от /etc/skel/.bashrc
при помощи:
CP/etc/skel/.bashrc ~ /
Это гарантирует, что следующая 'полная' конфигурация восстанавливается в файле:
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
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
Также проверка и содержание папки и полномочия файла /etc/bash.bashrc
и ~/.bashrc
- владение должно быть root:root и yourusername:yourusergroup соответственно. Полномочия файлов важны, поскольку оболочка только использует Ваш собственный уровень полномочий, чтобы автоматически заполнить команды. Поднятые полномочия такой как тогда, когда sudo вызывается, только используются после того, как команда фиксируется путем нажатия Enter.
Я узнаю, что проблема не была об автоматическом заполнении, но просто вопросе полномочий. Папка является собственной root:mail вместо root:root как большинство каталогов в / и т.д., и мой пользователь не был в почтовой группе. После того как я добавил пользователя к правильной группе, она работала. Я просто не понимаю, почему команда с sudo перед ним не сделала заменил группу...
Добавить
complete -cf sudo
к Вашему .bashrc
и .bash_profile
. Автозавершение будет работать над следующим входом в систему