揮発性のメモ2

最近知った知識を さも昔から知ってた風にメモ書きしていく

systemctl status で、出力に色を付けたい

TeraTermでAL2023のマシンにログインしたとき、systemctl status が白黒だった。
本当はデフォルトでなにもしなくても色が付くはずなのに、自分の環境では色が付かなかった。

色を付ける方法

rootの .bash_profile に次の1行を追加

export SYSTEMD_COLOR=1

おわり



色が付かなかった理由

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にした方が安全と判断した