Перед тем, как щелкнуть мышью, это не типичный вопрос «как сделать так, чтобы моя подсказка 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, которое я не понимаю и не хочу что-то напортачить. Как я могу выполнить то, что я хочу?
PS Это то, что я хочу, чтобы приглашение выглядело как root
[user @ host]----[$(pwd)]
(red)#
edit: пометьте это как исправленное, добавив приведенный выше код в ~ / .bashrc, пока root достиг моей цели. Кроме того, в приведенном выше коде $ (pwd) отображает только домашний каталог (я полагаю, потому что это рабочий каталог при открытии терминала) и никогда не обновляется. Замена $ (pwd) на \ w исправляет это, но отображает домашний каталог как ~
, чего я пытался избежать.
источник
\e[01;31m
, в\[...\]
. Это объясняется в разделе «ПРЕДУПРЕЖДЕНИЕ» в руководстве. Также см. Mywiki.wooledge.org/BashFAQ/053pwd
не сработало приглашение, заключается в том, что вам нужно экранировать знак доллара, иначе$(pwd)
он будет выполнен до того, как содержимое будет помещено в $ PS1. Вы можете проверить это с этим:PS1="\$(pwd) "
.Ответы:
Это также будет зависеть от того, как вы станете пользователем root. Вам нужно внести изменения в .bashrc пользователя root, если вы используете что-то вроде
su - root
илиsudo -i
, где вы читаете в среде.С
sudo -s
, вы должны читать свой собственный .bashrc.Попробуйте добавить несколько операторов printf или echo для отладки вашего кода, чтобы сообщить, когда он был выполнен.
Используйте
id
команду, чтобы убедиться, что вы тот, кем себя считаете:источник
sudo su
sudo su
читает ~ root / .bashrc (по крайней мере, как в настоящее время реализовано в моей системе 13.04).Чтобы изменить цвет приглашения на красный для root, я изменил
.bashrc
файл, следуя примерам в этой теме.Затем в vim найдите окончательный вид
PS1
присвоения и добавьте следующее после него (обратите внимание, что оно обновляет значение$PS1
так, что другие предыдущие строки не нужно изменять, и изменение легко обратимо):источник
После правильного ответа belacqua /ubuntu//a/305053/12218 путем выдачи sudo su загружается root .bashrc.
Вы можете проверить это, выполнив команду,
sudo su
после чегоcd ~
вы увидите, что находитесь в домашнем каталоге root.Если
sudo su
вы входите в систему как root (su = switch user), а неsudo do some administrative task
как пользователь с повышенными привилегиями.Таким образом, используя
sudo su
вас, вы становитесь настоящим пользователем root, а изменения, внесенные в среду, - это изменения, сделанные специально для root, то есть: сsudo su
последующимvim .bashrc
.источник
Может помочь следующее
Это покажет
'> '
для обычного пользователя и'# '
для пользователя root. Это все еще должно быть в корне.bashrc
тоже.источник