1

Я пытаюсь изменить цвет моей оболочки, к которой я подключаюсь, используя Putty.

Когда я набираю это

export PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h:\w\$ '

Я получаю именно то, что хочу. Все зеленое, и оно применяется только для пользователя root, поэтому я могу отличить пользователя root от других.

Однако, когда я помещаю этот код (без "экспорта") в /root/.bashrc , я получаю этот эффект, когда меняю текущую оболочку на bash с помощью команды bash .

Пример:

пример

Как я могу сделать мою оболочку зеленой, не переключаясь на "bash" при каждом подключении, т.е. как я могу применить это к стандартной оболочке?

Debian 8.3 (Jessie) используется здесь

1 ответ1

2

Проблема в том, что ~/.bashrc не читается оболочкой входа в систему и, следовательно, не читается оболочкой, которую вы получаете, входя в систему через SSH.

Как вы уже заметили, ~/.profile читается оболочкой входа, так что это способ установить цвет, но это не влияет на MOTD.

В Debian MOTD хранится в /etc/motd ; вот команда, которая добавит правильные escape-последовательности в начале и в конце файла:

printf '\e[0;32m' | sudo perl -i -pe 'if($. == 1) { $_ = <STDIN>.$_ }' /etc/motd; printf '\e[0m' | sudo tee -a /etc/motd

Скриншот

\e[0;32m установит зеленый цвет в начале, \e[0m сбросит все атрибуты в конце; таким образом, MOTD изменяется, не влияя на то, что напечатано после; если вы не хотите сбрасывать атрибуты в конце (влияющие на то, что напечатано после MOTD), просто отбросьте последнюю команду:

printf '\e[0;32m' | sudo perl -i -pe 'if($. == 1) { $_ = <STDIN>.$_ }' /etc/motd

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .