17

Когда я захожу на удаленный сервер, мне нравится, когда меняются цвета терминала. Я использую setterm в моем удаленном файле ~/.bashrc, чтобы сделать это. Однако, когда я exit , цвета терминала не сбрасываются на локальные.

Я решил проблему, но я не уверен, что это лучшее решение. Это то, что я мог придумать.

На ~/.bash_logout на удаленном сервере я поставил:

echo -e "\033[0m"
/usr/bin/clear

Просто из любопытства: кто-нибудь знает лучший способ? (Я получил строку echo -e "\033[0m" с http://edoceo.com/liber/linux-bash-shell)

4 ответа4

31

Лучше:
tput sgr0 обычно эквивалентен echo -en "\e[0m"

Разница в том, что использование tput адаптируется, если тип терминала отличается от ANSI - и он был правильно настроен.

man 5 terminfo для большего количества кодов.

Там вы найдете «reset», поэтому tput reset должен работать.


$ echo -e "\e[7m TEST \e[0m"  
 TEST   
$ echo -e "$(tput rev) TEST $(tput sgr0)"  
 TEST   
$   

(Отпечатки ТЕСТА должны были поменять местами цвета фона / переднего плана, здесь не отображаются - только "эмулированные")


Нашел другой вариант для этого , менее вызывающий способ:

пакет util-linux (в ubuntu) содержит setterm (утилиту оболочки).

наберите setterm --help и вы найдете доступные опции.

16

Я полагаю, вы ищете консольную команду "перезагрузки"

3

Вы можете найти использование этого в удаленном .bash_logout более подходящим:

tput init

Это может быть полезно иметь в каждом .bash_logout в качестве общей хорошей практики (и, возможно, даже в ~/.profile)

2

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

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