Когда я захожу на удаленный сервер, мне нравится, когда меняются цвета терминала. Я использую setterm
на своем удаленном файле ~ / .bashrc, чтобы сделать это. Однако, когда я exit
, цвета терминала не сбрасываются на локальные.
Я решил проблему, но я не уверен, что это лучшее решение. Это то, что я мог придумать.
На ~ / .bash_logout на удаленном сервере я поставил:
echo -e "\033[0m"
/usr/bin/clear
Просто из любопытства: кто-нибудь знает лучший способ? (Я получил echo -e "\033[0m"
строку с http://edoceo.com/liber/linux-bash-shell )
tput
для изменения цвета вместо. Поищи это.PS1
)?Ответы:
Лучше:
tput sgr0
обычно эквивалентecho -en "\e[0m"
Разница в том, что использование tput адаптируется, если тип терминала отличается от ANSI - и он был правильно настроен.
man 5 terminfo
для большего количества кодов, чтобы использовать.Там вы найдете «сброс», так что
tput reset
должно работать.(Отпечатки ТЕСТА должны были поменять местами цвета фона / переднего плана, здесь не могут быть показаны - только "эмулированные")
Нашел другой вариант для этого , менее вызывающий способ:
в пакете util-linux (в ubuntu)
setterm
(утилита оболочки).введите
setterm --help
и вы найдете доступные варианты.АКТУАЛЬНЫЙ выход
tput sgr0
... зависит от того, как настроен ваш терминал, например
для вышеупомянутого.
Узнайте больше, начните здесь, может быть, https://en.wikipedia.org/wiki/Terminfo
Руководство программиста по ncurses - google books
примечание: ncurses предоставляет интерфейсы для termcap, terminfo и, конечно, curses.
источник
echo -e "\e \033 \x1b " | od -t x1z
- что наиболее читабельно?tput sgr0
возвращает что-то отличное от\e[0m
, посмотрите на это:a=$(tput sgr0); set | grep ^a=
и увидите результат. Можете ли вы также сказать, что эквивалентныйsetterm
вариант для\e[0m
?\e[0m
или\e[m
для терминалов типа ANSI или аналога, tput sgr0 может дать вам нечто совершенно иное, если ваш терминал не является ANSI. Вы не можете быть уверены даже в терминалах ANSI, поскольку тот, который вы фактически используете, мог быть настроен по-другому в базе данных terminfo.TERM=ansi a=$(tput sgr0); set | grep ^a=
и результат естьa=$'\E[0;10m'
. Это отличается от\e[0m
\e(B\e[m
- ожидайте различий!Я полагаю, вы ищете консольную команду "сбросить"
источник
Вы можете найти использование этого в удаленном .bash_logout более подходящим:
Это может быть полезно иметь в каждом .bash_logout в качестве общей хорошей практики (и, возможно, даже в ~ / .profile)
источник
Если вы добавите нужные цвета в ~ / .bashrc удаленной учетной записи, это должно вступить в силу при входе в систему и вернуться к вашим локальным настройкам при выходе.
источник