Linuxのターミナルに出力される$の左側の色や文字列をカスタマイズする

WordPressとかLPICの勉強する時はCentOS。

Railsを使う時はUbuntu。

AWSのステージング環境としてAMI。

そんな感じで仮想マシンを何個も動かしたい時が、私たちにはあります。

そうなるとアンポンタンな私の脳みそは、どのターミナルがどのVMを操作しているのか分からなくなります。

パッと見て判断できたらなぁと思い、各VM毎にプロンプトを設定することにしました。

プロンプト(Prompt)

ターミナルで$とか#の左側に出力される部分

プロンプトの変更方法

いくつか方法はあるみたいですが、一番楽だなと感じたのは .bash_profile を編集する方法です。

.bash_profile は各ユーザーのホームディレクトリにあり、ユーザー毎に設定できるため、他のユーザーに影響を与えないのが良いです。

設定方法は簡単。vimなどで .bash_profile を開き(ない場合は作る)、PS1=hogehogeと記入するだけ。

bashはPS1~PS4の4種類の環境変数を持っているのですが、PS1は最も優先して読み込まれる変数になります。

.bash_profileに記入

次のようなコードを .bash_profile に記入します。

PS1_COLOR_BEGIN="\[\e[1;31m\]"
PS1_COLOR_END="\[\e[m\]"
PS1_HOST_NAME="MyUbuntu"
export PS1="${PS1_COLOR_BEGIN}[\u@\${PS1_HOST_NAME} \W]${PS1_COLOR_END}\\$ "

\u はユーザー名、 \W は現在のディレクトリを表示させる変数。 pwd を表示させたい場合は \W\w にします。

保存したら再度SSHしなおすか、 source コマンドで .bash_profile を読み込むと設定が反映されます。

色の変更について

[\e[1;31m]

↑この部分で色や文字の装飾を設定しています。

[\e[X;YZm]

#X = 0, 1, or 4 : 色の濃さやアンダーラインの有無を指定

#Y = 3 or 4 : 3なら通常の文字色、4なら背景色を指定

#Z = 0 ~ 7 : 色を指定

色はm直前の数字で指定でき、8種類の色が選べます。

0m # Black

1m # Red

2m # Green

3m # Yellow

4m # Blue

5m # Purple

6m # Cyan

7m # White

背景に色を付ける

背景に色を付けてみました。

BEGIN="\[\e[1;37;42m\]"
BEGIN_TRIANGLE="\[\e[0;32;47m\]"
MIDDLE="\[\e[0;30;47m\]"
MIDDLE_TRIANGLE="\[\e[0;37m\]"
END="\[\e[m\]"
HOST_NAME="MyMac"
export PS1="${BEGIN} \u@${HOST_NAME} ${BEGIN_TRIANGLE}${MIDDLE} \W ${MIDDLE_TRIANGLE}${END} "

bashのプロンプト

参画の矢印は Meslo LG L DZ Regular for Powerline というフォントを使っています。

Zshの場合

Z shellの場合は下記のような感じになります。

HOST_NAME=`hostname`
USER_NAME=`whoami`
PS1="%!K(MISSING){cyan}%!F(MISSING){black} $USER_NAME@$HOST_NAME %!f(MISSING)%!k(MISSING)%!F(MISSING){cyan}%!K(MISSING){white}%!k(MISSING)%!f(MISSING)%!F(MISSING){black}%!K(MISSING){white} %!d(MISSING) %!k(MISSING)%!f(MISSING) "

zshのプロンプト

まとめ

これでみやすくなりますね!やったね!