
Когда я подключаюсь по ssh к удаленному серверу, мне нравится, чтобы цвета терминала менялись. Я использую setterm
на своем удаленном сервере файл ~/.bashrc, чтобы сделать это. Однако, когда я exit
, цвета терминала не сбрасываются на локальные.
Я решил проблему, но не уверен, что это лучшее решение. Вот что я смог придумать.
В ~/.bash_logout на удаленном сервере я пишу:
echo -e "\033[0m"
/usr/bin/clear
Просто из любопытства: кто-нибудь знает лучший способ? (Я взял эту echo -e "\033[0m"
строчку изhttp://edoceo.com/liber/linux-bash-shell)
решение1
Лучше:
tput sgr0
обычно эквивалентноecho -en "\e[0m"
Разница в том, что использование tput адаптируется, если тип терминала отличается от ANSI и он был настроен правильно.
man 5 terminfo
для использования дополнительных кодов.
Там вы найдете «сброс», так что tput reset
должно сработать.
$ echo -e "\e[7m ТЕСТ \e[0m" TEST $ echo -e "$(tput rev) ТЕСТ $(tput sgr0)" TEST $
(ТЕСТОВЫЕ отпечатки должны иметь поменянные местами цвета фона и переднего плана, здесь они не могут быть показаны — только «эмулированы»)
Нашел другой вариант для этого, менее заумный способ:
пакет util-linux (в Ubuntu) содержит setterm
(утилиту оболочки).
введите setterm --help
и вы увидите доступные варианты.
РЕАЛЬНЫЙ выход
tput sgr0
$ tput sgr0 | od -t x1z
0000000 1b 28 42 1b 5b 6d >.(B.[m<
0000006
... зависит от того, как настроен ваш терминал, например
$ set | grep TERM
TERM=xterm-256color
за вышеизложенное.
$ infocmp ansi Реконструировано через infocmp из файла: /lib/terminfo/a/ansi ansi|ansi/pc-term совместимый с цветом, am, mc5i, mir, msgr, цвета#8, столбцы#80, it#8, строки#24, ncv#3, пары#64, acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, бел=^G, мигание=\E[5м, жирный=\E[1м, cbt=\E[Z, чистый=\E[H\E[J, cr=^M, cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C, чашка=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, дл=\E[%p1%dM, дл1=\E[M, еч=\E[%p1%dX, изд=\E[J, эл=\E[K, el1=\E[1K, home=\E[H, hpa=\E[%i%p1%dG, ht=\E[I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, invis=\E[8m, kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kich1=\E[L, mc4=\E[4i, mc5=\E[5i, нел=\r\E[S, оп=\E[39;49m, rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, rin=\E[%p1%dT, rmacs=\E[10m, rmpch=\E[10m, rmso=\E[m, rmul=\E[m, s0ds=\E(B, s1ds=\E)B, s2ds=\E*B, s3ds=\E+B, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;м, sgr0=\E[0;10m, smacs=\E[11m, smpch=\E[11m, smso=\E[7m, smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%i%p1%dd,
SEE ALSO (man pages):
tic(1) infocmp(1), captoinfo(1), infotocap(1), toe(1),
ncurses(3NCURSES), term(5). terminfo(5).
Узнайте больше, начните, возможно, здесьhttps://en.wikipedia.org/wiki/Terminfo
Руководство программиста по ncurses -гугл книги
примечание: ncurses предоставляет интерфейсы для termcap, terminfo и, конечно же, curses.
решение2
Я полагаю, вы ищете консольную команду «сброс»
решение3
Возможно, вам покажется более подходящим использовать это в удаленном .bash_logout:
tput init
Было бы неплохо иметь это в каждом .bash_logout в качестве общей хорошей практики (и, возможно, даже в ~/.profile)
решение4
Если вы укажете нужные цвета в файле ~/.bashrc удаленной учетной записи, они вступят в силу при входе в систему и вернутся к локальным настройкам при выходе.