Перед тем, как щелкнуть мышью, это не типичный вопрос «как сделать так, чтобы моя подсказка bash имела цвет». Я уже настроил мою подсказку bash, чтобы она выглядела следующим образом:
[user @ host]----[$(pwd)]
$
, где все в скобках светло-голубого цвета, а все остальное (включая $) - черного цвета, добавив следующее в мой файл ~ / .bashrc
# Turn the prompt symbol red if the user is root
if [ $(id -u) -eq 0 ];
then # you are root, make the prompt red
PS1="[\e[01;34m\u @ \h\e[00m]----[\e[01;34m$(pwd)\e[00m]\n\e[01;31m#\e[00m "
else
PS1="[\e[01;34m\u @ \h\e[00m]----[\e[01;34m$(pwd)\e[00m]\n$ "
fi
Цель - сделать так, чтобы единственное, что меняется, когда я использую «sudo su», это то, что черный $ превращается в красный #. Я заглянул в /etc/bash.bashrc и / etc / profile, чтобы увидеть, есть ли строка для комментариев, но есть кое-что о debian_chroot, которое я не понимаю и не хочу напортачить. Как мне достичь того, чего я хочу?
П.С. Это то, что я хочу, чтобы приглашение выглядело как root
[user @ host]----[$(pwd)]
(red)#
edit: Отметьте это как исправленное, добавив приведенный выше код в ~ / .bashrc, пока root достиг моей цели. Кроме того, в приведенном выше коде $ (pwd) отображает только домашний каталог (я полагаю, потому что это рабочий каталог при открытии терминала) и никогда не обновляется. Замена $ (pwd) на \ w исправляет это, но отображает домашний каталог как ~
, чего я пытался избежать.
Это также будет зависеть от того, как вы станете пользователем root. Вам необходимо внести изменения в .bashrc пользователя root, если вы используете что-то вроде su - root
или sudo -i
, где вы читаете в среде.
С sudo -s
вы должны читать свой собственный .bashrc.
Рассмотрите возможность добавления некоторых операторов printf или echo для отладки вашего кода, чтобы сообщить вам, когда он был выполнен.
Используйте команду id
, чтобы убедиться, что вы тот, кем вы себя считаете:
root@tau:~# id
uid=0(root) gid=0(root) groups=0(root)
Чтобы изменить цвет приглашения на красный для root, я изменил файл .bashrc
, следуя примерам в этой теме.
regularuser@myubuntubox:~$ sudo su -
root@myubuntubox:~# vim .bashrc
Затем, в vim, найдите окончательный вид назначения PS1
и добавьте следующее после него (обратите внимание, что он обновляет значение $PS1
, так что другие предыдущие строки не нужно изменять, и изменение легко обратимо):
# Set RED prompt
PS1="\[\e[01;31m\]$PS1\[\e[00m\]"
После правильного ответа belacqua https://askubuntu.com/a/305053/12218 путем выдачи sudo su загружается root .bashrc.
Вы можете проверить это, введя sudo su
, затем cd ~
, и вы увидите, что находитесь в домашнем каталоге root.
Используя sudo su
, вы входите в систему как пользователь root (su = switch user), в отличие от
sudo do some administrative task
как пользователь с повышенными привилегиями.
Таким образом, используя sudo su
, вы становитесь фактическим корнем, а изменения, внесенные в среду, являются изменениями, внесенными специально в корень, то есть: sudo su
, за которым следует vim .bashrc
.
Следующее может помочь
export PS1='`[ $(id -u) == "0" ] && echo "#" || echo ">"` '
Это покажет '> '
для обычного пользователя и '# '
для root. Это все еще должно быть в корне .bashrc
.