
リモート サーバーに ssh で接続するときに、ターミナルの色を変更したいのですが、setterm
これを実現するには、リモートの ~/.bashrc ファイルで を使用します。ただし、 を使用すると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) TEST $(tput sgr0)" TEST $
(テスト プリントでは背景色と前景色が入れ替わっているはずですが、ここでは表示できません。エミュレートされただけです)
これに対する別の選択肢が見つかりましたもう少しマニアックでない方法:
util-linux (ubuntu 上) パッケージにはsetterm
(シェル ユーティリティ) が含まれています。
入力する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
上記について。
$ 情報cmp ansi ファイル /lib/terminfo/a/ansi から infocmp で再構築 ansi|ansi/pc-term 色と互換性あり、 am、mc5i、mir、msgr、 色#8、列#80、行#8、NCV#3、ペア#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, ベル=^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, カップ=\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, ホーム=\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).
もっと詳しく知るには、ここから始めましょうhttps://en.wikipedia.org/wiki/Terminfo
ncurses プログラマーガイド -グーグルブック
注: ncurses は、termcap、terminfo、そしてもちろん curses 用のインターフェースを提供します。
答え2
「リセット」コンソールコマンドを探していると思います
答え3
リモート .bash_logout でこれを使用する方が適切であると思われるかもしれません:
tput init
一般的な良い習慣として、これをすべての .bash_logout に(そしておそらく ~/.profile にも)入れておくと良いかもしれません。
答え4
必要な色をリモート アカウントの ~/.bashrc に配置すると、ログイン時に有効になり、終了時にローカル設定に戻ります。