Изменение sh цвета В.bashrc следующее

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

когда я печатаю это

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

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

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

пример:

example

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

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

5
задан bytecode77
источник

1 ответов

проблема ~/.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

screenshot

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

printf '\e[0;32m' | sudo perl -i -pe 'if($. == 1) { $_ = <STDIN>.$_ }' /etc/motd
2
отвечен kos 2016-02-13 10:32:30
источник

Другие вопросы bash debian debian-jessie linux shell