Назад | Перейти на главную страницу

Проблема завершения Bash с помощью sudo на Ubuntu VPS

У меня есть VPS от Linode. Я развернул сервер Ubuntu 10.04. Я добавил пользователя и выложил ему файл sudoers. когда я пишу как пользователь

apti <TAB>

он завершается с вкладкой, чтобы

aptitude <TAB>

но когда я продолжу

aptitude upd <TAB>

он не завершился, но на моем рабочем столе он отлично работает. Еще хуже, если я попробую ту же команду с sudo

sudo apti <TAB>

не работает Я проверил файлы .basrc, .profile / .bashrc и /etc/bash.basrc, и ни один из них не был закомментирован, так что не так. Кстати когда рут работает

мой ~ / bashrc

if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

Когда я получил свой Linode (Jaunty), мне пришлось установить bash-completion. Попробуйте.

Вы также можете добавить строку «complete -cf sudo» в ваш файл ~ / .bashrc. Это позволит bash искать команды после sudo, а не искать файлы в текущем каталоге. Я делаю то же самое со многими другими командами, такими как man и which.

У вас должно быть что-то подобное в вашем ~/.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 [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi

Что значит «все они закомментированы»? Возможно, что-то, что вам нужно, закомментировано, и это вызывает вашу проблему.

Убедитесь, что вы не закомментировали эти строки

if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi

однажды в вашем ~/.bashrc файл (вероятно, нормально) и один раз в /root/.bashrc файл, где он по неизвестным причинам закомментирован.