
Cuando entro a un servidor remoto, me gusta que cambien los colores del terminal. Lo uso setterm
en mi archivo remoto ~/.bashrc para hacer esto. Sin embargo, cuando hago exit
, los colores del terminal no se restablecen a los locales.
Resolví el problema, pero no estoy seguro de si es la mejor solución. Esto es lo que se me ocurrió.
En ~/.bash_logout en el servidor remoto, puse:
echo -e "\033[0m"
/usr/bin/clear
Sólo por curiosidad: ¿alguien conoce una forma mejor? (obtuve la echo -e "\033[0m"
línea dehttp://edoceo.com/liber/linux-bash-shell)
Respuesta1
Mejor:
tput sgr0
normalmente es el equivalente aecho -en "\e[0m"
La diferencia es que el uso de tput se adaptará si el tipo de terminal no es ANSI y se ha configurado correctamente.
man 5 terminfo
para usar más códigos.
Allí encontrará "restablecer", por lo que tput reset
debería funcionar.
$ echo -e "\e[7m PRUEBA \e[0m" TEST $ echo -e "$(tput rev) PRUEBA $(tput sgr0)" TEST $
(Las impresiones de PRUEBA deberían haber intercambiado los colores de fondo y primer plano, no se pueden mostrar aquí, solo "emuladas")
Encontré otra opción para esto., una forma menos geek:
el paquete util-linux (en ubuntu) contiene setterm
(utilidad shell).
escribe setterm --help
y encontrarás las opciones disponibles.
La salida REAL de
tput sgr0
$ tput sgr0 | od -t x1z
0000000 1b 28 42 1b 5b 6d >.(B.[m<
0000006
... depende de cómo esté configurado su terminal, por ejemplo
$ set | grep TERM
TERM=xterm-256color
por lo anterior.
$ infocmp ansi Reconstruido vía infocmp desde el archivo: /lib/terminfo/a/ansi ansi|ansi/pc-term compatible con color, soy, mc5i, mir, msgr, colores#8, cols#80, it#8, líneas#24, ncv#3, pares#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, bel=^G, parpadeo=\E[5m, negrita=\E[1m, cbt=\E[Z, claro=\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, taza=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, inicio=\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, nel=\r\E[S, op=\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%;m, 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).
Explore más, comience aquí tal vezhttps://en.wikipedia.org/wiki/Terminfo
Guía del programador sobre ncurses -libros de Google
nota: ncurses proporciona interfaces para termcap, terminfo y, por supuesto, curses.
Respuesta2
Creo que estás buscando el comando de consola "restablecer"
Respuesta3
Puede que le resulte más apropiado usar esto en el .bash_logout remoto:
tput init
Podría ser bueno tener esto en cada .bash_logout como una buena práctica general (y quizás incluso en ~/.profile)
Respuesta4
Si coloca los colores que desea en ~/.bashrc de la cuenta remota, debería tener efecto al iniciar sesión y volver a su configuración local al salir.