"Redefinir" cores do terminal após saída/logout do ssh

"Redefinir" cores do terminal após saída/logout do ssh

Quando faço ssh em um servidor remoto, gosto que as cores do terminal mudem. Eu uso settermno meu arquivo ~/.bashrc remoto para fazer isso. Porém, quando I exit, as cores dos terminais não são redefinidas para as locais.

Resolvi o problema, mas não tenho certeza se é a melhor solução. Isso é o que eu poderia inventar.

No ~/.bash_logout no servidor remoto, coloquei:

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

Só por curiosidade: alguém conhece uma maneira melhor? (Eu peguei a echo -e "\033[0m"linha dehttp://edoceo.com/liber/linux-bash-shell)

Responder1

Melhor:
tput sgr0normalmente é equivalente aecho -en "\e[0m"

A diferença é que o uso de tput será adaptado se o tipo de terminal for diferente de ANSI - e tiver sido configurado corretamente.

man 5 terminfopara mais códigos usarem.

Lá você encontrará 'reset', então tput resetdeve funcionar.


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

(As impressões de TESTE deveriam ter trocado as cores de fundo/primeiro plano, não podem ser mostradas aqui - apenas "emuladas")


Encontrei outra opção para isso, de uma forma menos geek:

o pacote util-linux (no ubuntu) contém setterm(utilitário shell).

digite setterm --helpe você encontrará as opções disponíveis.


A saída REAL detput sgr0

$ tput sgr0 | od -t x1z
0000000 1b 28 42 1b 5b 6d                                >.(B.[m<
0000006

... depende de como o seu terminal está configurado, por exemplo

$ set | grep TERM
TERM=xterm-256color

para o acima.


$ infocmp ansi
    Reconstruído via infocmp do arquivo: /lib/terminfo/a/ansi
ansi|ansi/pc-term compatível com cor,
    sou, mc5i, mir, monsgr,
    cores#8, colunas#80, it#8, linhas#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, piscar=\E[5m, negrito=\E[1m, cbt=\E[Z, limpar=\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, xícara=\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, 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, 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 mais, comece aqui talvezhttps://en.wikipedia.org/wiki/Terminfo
Guia do programador para ncurses -Google livros

nota: ncurses fornece interfaces para termcap, terminfo e, claro, maldições.

Responder2

Acredito que você esteja procurando pelo comando "reset" do console

Responder3

Você pode achar que usar isso no .bash_logout remoto é mais apropriado:

tput init

Pode ser bom ter isso em todos os .bash_logout como uma boa prática geral (e talvez até mesmo em ~/.profile)

Responder4

Se você colocar as cores desejadas no ~/.bashrc da conta remota, isso deverá entrar em vigor no login e reverter para as configurações locais ao sair.

informação relacionada