Я щойно натрапив на щось, що нас справді турбує. Автозавершення ubuntu працює як шарм, але коли я входжу як root, наприклад, su
я отримую tab
автозавершення лише іноді.
Чому це працює так? Чи можна це змінити?
sudo su
. Яка різниця?
Я щойно натрапив на щось, що нас справді турбує. Автозавершення ubuntu працює як шарм, але коли я входжу як root, наприклад, su
я отримую tab
автозавершення лише іноді.
Чому це працює так? Чи можна це змінити?
sudo su
. Яка різниця?
Відповіді:
Перевірте /root/.bashrc
файл у цих рядках
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Якщо їх немає, додайте їх у кінець файлу за допомогою улюбленого текстового редактора.
bash_completion
Лінія, по крайней мере , в моєму випадку, були закоментований, тому що він стверджує , що bash_completion
вже включений в /etc/bash.bashrc
, але цей файл має також , що лінії закоментований. Замість того, щоб коментувати etc
файл, краще коментувати рядок у /root/.bashrc
.
Ви не згадали, яку версію Ubuntu використовуєте.
Перевірте, чи bash-completion
встановлений пакет:
sudo apt-get install bash-completion
Шахта працює, якщо я входжу за допомогою: sudo -i
.bashrc
не буде створено та /etc/bash_completion
не буде доступне, доступне лише завершення за замовчуванням Bash.
disable-completion
він ще доступний: superuser.com/questions/37148/…
Для Ubuntu 13.10, перевірте /etc/bash.bashrc
на
# enable bash completion in interactive shells
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
Вони можуть прокоментуватися. Не коментуючи їх, працює.
Виявив, що це спрацювало (схоже на відповіді вище, але з поворотом)
Файл, який потрібно відредагувати (принаймні в моєму випадку з 12.04), був /root/.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 ] && ! shopt -oq posix; then
#. /etc/bash_completion
#fi
Просто скаментуйте це:
# 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 ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
Збережено, і це спрацювало чудово.
Сподіваюся, що це комусь допоможе.
У Linux Mint 18 (на основі Xenial) ви повинні відредагувати bashrc:
sudo nano /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
Це все.