Я изменил переменную PS1 в /etc/bash.bashrc
на
PS1="\n\[\033[0;37m\]\342\224\214\342\224\200\$(if [[ \$? == 0 ]]; then echo \"[\[\033[0;32m\]\[\033[01;32m\]\342\234\223\[\033[0;37m\]]\342\224\200\"; else echo \"[\[\033[0;32m\]\[\033[01;31m\]\342\234\227\[\033[0;37m\]]\342\224\200\"; fi)[$(if [[ ${EUID} == 0 ]]; then echo '\[\033[0;31m\]\h'; else echo '\[\033[0;33m\]\u\[\033[0;37m\]@\[\033[0;96m\]\h'; fi)\[\033[0;37m\]]\342\224\200[\[\033[0;32m\]\w\[\033[0;37m\]]\n\[\033[0;37m\]\342\224\224\342\224\200\342\224\200\342\225\274 \[\033[0m\]"
, которая отлично работает со всеми командами. Но когда я запускаю команду sudo -i
, значение PS1 становится значением по умолчанию. Чтобы вернуть цветовую схему, мне нужно запустить PS1=<same value>
вручную. Есть идеи, что может быть причиной такого поведения?
Добавьте строку PS1
к /root/.bashrc
.
Причина, по которой цвет возвращается к значению по умолчанию, заключается в том, что когда вы делаете sudo -i
, он «имитирует» root-логин и, в свою очередь, получает (применяет) root'а .bashrc
, что возвращает цвет к стандартному. Поэтому добавление строки PS1
к корню .bashrc
должно помочь.
Я собирался добавить PS1
, после ответа Alaa Ali, и я нашел следующие строки:
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
force_color_prompt=no
я изменился, это к force_color_prompt=yes
, затем exit
, входит в систему назад, и voilГ! Цвета!
я нахожусь на Ubuntu (дискотека), надежда что эта справка. Я думаю, что это лучше, чем PS1, потому что существует много кода, который зависит от этой переменной, я не знаю точно, что делает, но кто-то записал это, я не хочу тратить впустую его время :-)