Bashの場合PS1
変数でプロンプトのフォーマットを指定しているため、そこに色を指定するエスケープシーケンスを混ぜ込むという話です。
実施例
vi ~/.bashrc
追記内容例
PS1="\[\e[36m\e[42m\][\u@\h \W \d \t]\[\e[0m\]\n\\$ "
source ~/.bashrc
表示例
エスケープシーケンスの構造
記号ばかりでややこしいため図にしてみました。
色以外の \u
などについては以下のページが参考になります。
bashのプロンプトを変更するには (atmarkit)
他の色のサンプル
改行について
元々、エスケープシーケンスがあると入力コマンドに折り返しが発生するあたりで表示がおかしくなったので改行を入れて対策していましたが、コメントで教えて頂いた通り、これは先頭の \[
を入れ忘れてたのが原因でした。
違和感あるかも知れませんが、プロンプトに出す情報を増やしても画面が狭くならなくなったのでこれはこれで気に入ってます。
使い所
-
grep
などで1つ前と2つ前のコマンドの出力の境界を見逃さなくなりました。 - 開発環境とプロダクション環境の区別や特権ユーザかどうかの区別にも良いと思います。
複数人がログインする可能性のあるサーバは、あんまり好き勝手に弄りたくないので、壊れてもいい自分しか使わないような環境のみ色付けてます。
なのでデフォルトのプロンプトを見つけたら身構える感じです。
プロンプトをいじる事に関しては以下のページではもっと面白そうなことやってます。
Color Bash Prompt (日本語)