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} "
参画の矢印は 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) "
まとめ
これでみやすくなりますね!やったね!