
Wenn ich mich per SSH mit einem Remote-Server in Verbindung setze, möchte ich, dass sich die Farben des Terminals ändern. setterm
Dazu 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 sgr0
ist 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 terminfo
für weitere zu verwendende Codes.
Dort finden Sie „Zurücksetzen“, also tput reset
sollte 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 --help
und Sie finden die verfügbaren Optionen.
Die TATSÄCHLICHE Leistung von
tput 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.