
當我透過 ssh 連接到遠端伺服器時,我喜歡改變終端的顏色。我setterm
在遠端 ~/.bashrc 檔案上使用來完成此操作。但是,當 I 時exit
,終端顏色不會重設為本機顏色。
我解決了問題,但我不確定這是否是最好的解決方案。這就是我能想到的。
在遠端伺服器上的 ~/.bash_logout 上,我輸入:
echo -e "\033[0m"
/usr/bin/clear
只是出於好奇:有人知道更好的方法嗎? (我echo -e "\033[0m"
從http://edoceo.com/liber/linux-bash-shell)
答案1
更好:
tput sgr0
通常相當於echo -en "\e[0m"
不同之處在於,如果終端類型不是 ANSI,並且已正確設置,則使用 tput 將進行調整。
man 5 terminfo
以獲取更多代碼使用。
在那裡你會發現“重置”,所以tput reset
應該可以工作。
$ echo -e "\e[7m 測試 \e[0m" TEST $ echo -e "$(tput rev) 測試 $(tput sgr0)" TEST $
(測試列印應該交換背景/前景色,不能在此處顯示 - 僅“模擬”)
為此找到了另一個選擇,一種不那麼怪異的方式:
util-linux(在 ubuntu 上)軟體包包含setterm
(shell 實用程式)。
鍵入setterm --help
,您將找到可用的選項。
實際輸出
tput sgr0
$ tput sgr0 | od -t x1z
0000000 1b 28 42 1b 5b 6d >.(B.[m<
0000006
...取決於您的終端如何設置,例如
$ set | grep TERM
TERM=xterm-256color
對於上述情況。
$ infocmp ANSI 透過 infocmp 從檔案重建:/lib/terminfo/a/ansi ansi|ansi/pc-term 與顏色相容, 上午、mc5i、米爾、msgr、 顏色#8、列#80、it#8、行#24、ncv#3、對#64、 acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\3046r\ \301w\302x\263y\363z\362{\343|\330}\234~\376, 貝爾=^G,閃爍=\E[5m,粗體=\E[1m,cbt=\E[Z,清除=\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, cup=\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, 代表=%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).
探索更多,也許從這裡開始https://en.wikipedia.org/wiki/Terminfo
ncurses 程式設計師指南 -Google圖書
注意:ncurses 提供了 termcap、terminfo 當然還有curses 的介面。
答案2
我相信您正在尋找“重置”控制台命令
答案3
您可能會發現在遠端 .bash_logout 中使用它更合適:
tput init
作為一般的良好實踐,在每個 .bash_logout 上都有這個可能會很好(甚至可能在 ~/.profile 上)
答案4
如果您將所需的顏色放入遠端帳戶的 ~/.bashrc 中,它應該在登入時生效並在登出時恢復為本機設定。