dgo*_*o.a 23 bash colors bashrc
当我通过 ssh 进入远程服务器时,我喜欢改变终端的颜色。我使用setterm远程 ~/.bashrc 文件来完成这项工作。但是,当 I 时exit,终端颜色不会重置为本地颜色。
我解决了这个问题,但我不确定这是否是最好的解决方案。这是我能想到的。
在远程服务器上的 ~/.bash_logout 上,我输入:
echo -e "\033[0m"
/usr/bin/clear
Run Code Online (Sandbox Code Playgroud)
只是出于好奇:有人知道更好的方法吗?(我echo -e "\033[0m"从http://edoceo.com/liber/linux-bash-shell得到了这条线)
Han*_*nnu 41
更好:
tput sgr0通常相当于echo -en "\e[0m"
不同之处在于,如果终端类型不是 ANSI,并且已正确设置,则使用 tput 将进行调整。
man 5 terminfo 以获取更多要使用的代码。
在那里你会发现“重置”,所以tput reset应该可以工作。
$ echo -e "\e[7m TEST \e[0m" TEST $ echo -e "$(tput rev) TEST $(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
Run Code Online (Sandbox Code Playgroud)
...取决于您的终端是如何设置的,例如
$ set | grep TERM
TERM=xterm-256color
Run Code Online (Sandbox Code Playgroud)
对于上述。
$ infocmp ansi
通过 infocmp 从文件重建:/lib/terminfo/a/ansi
ansi|ansi/pc-term 与颜色兼容,
上午, mc5i, mir, msgr,
颜色#8、cols#80、it#8、lines#24、ncv#3、pairs#64、
acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\3304u_304s \301w\302x\263y\363z\362{\343|\330}\234~\376,
bel=^G, 闪烁=\E[5m, 粗体=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
cr=^M, cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cub1=\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,
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).
Run Code Online (Sandbox Code Playgroud)
探索更多,可能从这里开始https://en.wikipedia.org/wiki/Terminfo
程序员的 ncurses 指南 -谷歌图书
注意:ncurses 提供了 termcap、terminfo 和curses 的接口。