TeraTermでAL2023のマシンにログインしたとき、systemctl status が白黒だった。
本当はデフォルトでなにもしなくても色が付くはずなのに、自分の環境では色が付かなかった。
色が付かなかった理由
TERM=vt100 にしていたから。
systemctlさんは、TERM=xterm のときは勝手に色を付けてくれる。
TERM=vt100 のときは、古いしカラー無理やろ と判断している。
VT100にしていた理由
TeraTermはxtermではないから。
デフォルトではTeraTermは 自分を XTERM だと偽っている。
; Telnet terminal type ;TermType=vt100 TermType=xterm
なぜこんなデフォルトになってんのかはわからない。
なぜXTERMではダメなのか
TERMがxtermのとき、 /etc/bashrc により PROMPT_COMMAND が設定され、
端末ウィンドウのタイトル部分にホスト名やディレクトリ名が出力される便利機能が付く。
しかし、XTERMで使用可能なシーケンスを送信されても TeraTermは未対応なのでゴミが画面に出力される。
なので、それを抑止するために設定ファイルでVT100に戻してた。
(さらに、PS1を改造してそれ単独でウィンドウタイトルに情報を出すようにもしている)
どう対処する?
次の2つの対処案
- TERM=vt100 とした上で色が付くようにする
- vt100なので画面効果がいろいろ制限されてしまう可能性がある
- TERM=xterm とした上でプロンプトにごみが出ないようにする
- TeraTermはxtermでないので画面効果がすべてごみとして表示される
どちらが良いかは現在のところ不明だが、現状ではvt100にした方が安全と判断した