"Restablecer" los colores del terminal después de salir/cerrar sesión por ssh

"Restablecer" los colores del terminal después de salir/cerrar sesión por ssh

Cuando entro a un servidor remoto, me gusta que cambien los colores del terminal. Lo uso settermen 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 sgr0normalmente 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 terminfopara usar más códigos.

Allí encontrará "restablecer", por lo que tput resetdeberí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 --helpy encontrarás las opciones disponibles.


La salida REAL detput 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.

información relacionada