KojiDoi氏の回答のように、プロンプトに色を付けるだけでも十分な気がしますが。
ただ、この例のように、プロンプト・入力コマンド・コマンド実行時の(入)出力で3通り色を変えることはできます。
※コマンド自体が色を意識した出力をすることがあるので、最後の色は素の色にした方が良いでしょう。
ちなみにこれは256色対応のターミナルで作業する場合の例です。プロンプトを示す変数 PS1 にセットされた \e[1;38;5;色m
がプロンプト用のボールド(1)指定+256色での色指定、\e[0;38;5;色m
が入力コマンド用の非ボールド(0)指定+256色での色指定です。
256色対応でない場合や細かい色指定が不要な場合は 38;5;色
の部分を 30~37 の指定に替えてください。( \e[1;33m
とか )
※TeraTermもiTerm2も256色には対応しているはずですが、次の記事にあるような xterm-256color
の設定は必要かもしれません。
iTerm2上で256色のvimを使う(https://qiita.com/muniere/items/e6c5c48a541401ee5af3)
このようにPS1に色指定用の制御文字列を仕込み、bashがプロンプト表示用にこれを出力することで、色が切り替わります。
で、trap の DEBUG として、色等のリセット \e[m
がコマンド実行直前に出力されるように仕組むことで、さらに出力の色は素になるという寸法です。
追記: 念のためですが、この例で実行したのは以下の2コマンドです。
trap "echo -ne '\e[m'" DEBUG
PS1='[\e[1;38;5;40m\u@\h \W$\e[0;38;5;200m] '