Farben des Terminals nach SSH-Beenden/Abmelden „zurücksetzen“

Farben des Terminals nach SSH-Beenden/Abmelden „zurücksetzen“

Wenn ich mich per SSH mit einem Remote-Server in Verbindung setze, möchte ich, dass sich die Farben des Terminals ändern. settermDazu verwende ich die Datei ~/.bashrc auf meiner Remote-Site. Wenn ich jedoch .bashrc verwende exit, werden die Terminalfarben nicht auf die lokalen Farben zurückgesetzt.

Ich habe das Problem gelöst, bin mir aber nicht sicher, ob es die beste Lösung ist. Das ist, was mir eingefallen ist.

In ~/.bash_logout auf dem Remote-Server gebe ich Folgendes ein:

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

Nur aus Neugier: Kennt jemand einen besseren Weg? (Ich habe die echo -e "\033[0m"Zeile vonhttp://edoceo.com/liber/linux-bash-shell)

Antwort1

Besser:
tput sgr0ist normalerweise das Äquivalent vonecho -en "\e[0m"

Der Unterschied besteht darin, dass die Verwendung von tput sich anpasst, wenn der Terminaltyp nicht ANSI ist – und richtig eingerichtet wurde.

man 5 terminfofür weitere zu verwendende Codes.

Dort finden Sie „Zurücksetzen“, also tput resetsollte es funktionieren.


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

(Bei den TEST-Drucken sollten die Hintergrund-/Vordergrundfarben vertauscht sein, können hier nicht angezeigt werden - nur "emuliert")


Habe eine andere Option dafür gefunden, eine weniger technikaffine Art:

Das Paket util-linux (unter Ubuntu) enthält setterm(Shell-Dienstprogramm).

Geben Sie ein setterm --helpund Sie finden die verfügbaren Optionen.


Die TATSÄCHLICHE Leistung vontput sgr0

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

... hängt davon ab, wie Ihr Terminal eingerichtet ist, zB

$ set | grep TERM
TERM=xterm-256color

für die oben genannten.


$ infocmp ansi
    Rekonstruiert über infocmp aus der Datei: /lib/terminfo/a/ansi
ansi|ansi/pc-term kompatibel mit Farbe,
    am, mc5i, mir, msgr,
    Farben#8, Spalten#80, es#8, Zeilen#24, ncv#3, Paare#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, blinkend=\E[5m, fett=\E[1m, cbt=\E[Z, klar=\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, Tasse=\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).

Entdecken Sie mehr. Beginnen Sie vielleicht hierhttps://en.wikipedia.org/wiki/Terminfo
Programmierhandbuch zu ncurses -Google Bücher

Hinweis: Ncurses bietet Schnittstellen für Termcap, Terminfo und natürlich Curses.

Antwort2

Ich glaube, Sie suchen nach dem Konsolenbefehl „Reset“

Antwort3

Möglicherweise ist die Verwendung im Remote-.bash_logout angemessener:

tput init

Es könnte gut sein, dies als allgemeine bewährte Vorgehensweise bei jedem .bash_logout zu haben (und vielleicht sogar bei ~/.profile).

Antwort4

Wenn Sie die gewünschten Farben in die Datei ~/.bashrc des Remote-Kontos einfügen, sollten diese beim Anmelden wirksam werden und beim Beenden zu Ihren lokalen Einstellungen zurückkehren.

verwandte Informationen