LoginSignup
4
4

More than 5 years have passed since last update.

サーバ作業中にコマンドを間違えてえらいことになったのでサーバのホスト名ごとにプロンプトの色を変える

Last updated at Posted at 2016-09-14

サーバの作業中に「このターミナルは履歴を使って…」「あっっっっ、間違えてファイル削除しちゃった!」とかしてえらいことになりました。

説明

ホスト名はユニークなものを付けるようにしているので、ホスト毎に別の色を付けるようにしました。

Screen Shot 2016-09-14 at 5.13.37 PM.png

Screen Shot 2016-09-14 at 5.13.43 PM.png

上のホスト(Macのローカルのターミナル)とリモート(Ubuntuサーバ)では緑系と青系の色という風に感じでホスト毎に色が違っています。

きっとこれで間違えなくなるはず!

やったこと

~/.zshrc

function hashed_color () {
  hash=`echo $1 | cksum | cut -d' ' -f1`
  COLOR=$(( $hash % 256 ))
  echo $COLOR
}

HOSTNAME=`hostname`
host_color=`hashed_color $HOSTNAME`

PROMPT=$'
%F{$host_color}%n${PR_RST} @ %F{$host_color}%M${PR_RST} in %{$limegreen%}%~${PR_RST} $vcs_info_msg_0_$(virtualenv_info)
$ '

oh-my-zshのsteeefというテーマのプロンプトを元に色づけしました。
hostnameで取れる文字列を0〜256の間でハッシュ化し、プロンプトの色に紐付けています。

その他

色の上限

0〜256で決めうちしています。もしかしたら黒色とかになって見にくいとかあるかもです。その場合にはバックグラウンドを指定する必要がありそうです。

CRC

参考

zshプロンプトのカスタマイズ
http://qiita.com/yamagen0915/items/77fb78d9c73369c784da

13 Prompt Expansion
http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html

zshでプロンプトをカラー表示する
http://qiita.com/mollifier/items/40d57e1da1b325903659

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4