Завершение Bash не работает в Root пользователя

10

У меня 12.04, и я пытаюсь найти способ включить завершение Bash для пользователя root.

Есть идеи, как это сделать?

T0M XeOn LuCiFeR
источник
Возможный дубликат? askubuntu.com/questions/33440/...
lumbric
Пытаясь напечатать что, ваше завершение bash не работает? Или это вообще не работает?
harisibrahimkv
Это не работает, когда вы пытаетесь набрать в ROOT, у обычных пользователей это работает просто отлично, например: root # apt-get install gua [tab] [tab] Это должно показывать Sth, как Guake, но оно не будет, также и для других вещей, Пока он показывает то же самое, когда я использую обычного пользователя и использую дополнительный «Sudo» перед этой
командой
1
@ T0MXeOnLuCiFeR вы можете добавить вывод sudo cat /root/.bashrc?
поясничный
4
@ T0MXeOnLuCiFeR Вы не возражаете против того, чтобы писать «Like This Phrase?», Затрудняет чтение и вообще не имеет смысла использовать.
Бруно Перейра

Ответы:

23

Завершение Bash может быть включено в файле .bashrc, как описано в этом разделе вопросов и ответов . В вашем случае это кажется правильным в .bashrc вашего пользователя, но не в .bashrc вашего root. Последний файл находится в /root/.bashrc. Откройте этот файл с помощью вашего любимого текстового редактора в качестве пользователя root (например, запустив sudo gedit /root/.bashrc) и удалите #в начале последние три строки:

Вы должны изменить строки 98-100 от

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

... чтобы:

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

Затем закройте свои терминалы и снова откройте их.

lumbric
источник
tnx, у меня все еще есть проблема, я имею в виду подкоманды, например, когда вы набрали apt-get, сейчас вы наберете «install», наберите первые 3 слова, затем вы нажмете «tab» у обычного пользователя, это работает с правами root не .... что мне делать прямо сейчас ...?
T0M XeOn LuCiFeR
Я ДЕЙСТВИТЕЛЬНО, что ты мне сказал .... все же это не работает, у тебя есть другая идея?
T0M XeOn LuCiFeR
@ T0MXeOnLuCiFeR Я совершенно уверен, что это источник вашей проблемы. Вы catснова посмотрели, действительно ли вы изменили файл, как я предложил? Вы закрыли и снова открыли все терминалы? Если нет, попробуйте запустить . /etc/bash_completionвручную (обратите внимание, что есть .!).
поясничный
Да, чувак, я сделал это ... Во всяком случае, это стало лучше, но не то, что я думал ... Я проверяю подробности.
T0M XeOn LuCiFeR
@ T0MXeOnLuCiFeR ты пробовал запускать . /etc/bash_completionвручную?
поясничный
1

Я успешно включил «завершение bash» в Ubuntu 12.04 LTS, отредактировав файл «bash.bash.rc» в «etc».

Я просто удалил "#" в строках 32-34, и завершение bash для "sudo" теперь работает нормально.

Kabra
источник