Bash
Linux
CentOS
shell
bashrc

BashでPromptの色を変更する方法

複数のサーバを管理していると、サーバの属性を即座に判断したいことがある。
もちろん、例えばホスト名に環境(本番・開発etc.)やサーバ種類・用途(Web, DB etc.)を意味する文字列を含めることも一般的ではあるが、パッと見で判別する直感性にはイマイチ欠ける部分がある。
そこで、より直感的に自分が操作しているサーバ種別や環境別を認識するために、Promptの色を変更する方法を紹介する。
これは、オペレーションミスを防ぐ意味でも有用である。

設定箇所

BashのPromptの書式に関する情報は、PS1というShell変数に格納されている。

$ echo $PS1
[\u@\h \W]\$

設定例

PS1="\[\e[1;34m\][\u@\h \W]\\$ \[\e[m\]"

書式

例: \[\e[1;34m\] Promptに表示する変数や特殊文字 \[\e[m\]

Promptに表示する変数や特殊文字については、以下を参照
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/002cngprmpt.html

上記設定例の1;34の部分が色とフォントの設定値。

最初の設定値1の部分が、フォント。0にすると標準の字体、1にするとBoldになる。
34の部分が、色コード。上記設定例では、青色に設定されている。

Color Code
#000000 30
#ff0000 31
#00ff00 32
#ffff00 33
#0000ff 34
#ff00ff 35
#00ffff 36
#ffffff 37

一番後ろの\[\e[m\]で設定を閉じておかないと、入力した文字も色付きで表示される。

設定方法

Bashの設定ファイル(e.g. /etc/bashrcとか)に、以下のような一文を追記すればOK!
export PS1="\[\e[1;34m\][\u@\h \W]\\$ \[\e[m\]"
一度Log-outして、Shellに入り直せば、色付きの設定が反映されている。