Quantcast
Viewing all articles
Browse latest Browse all 2722

環境毎にプロンプトの色を変える

「「入れ替わってる〜〜!?!?」」

とならないために、開発環境、ステージング環境、本番環境のシェルはひと目で判別できるようにしておきたいですね。

bashzshでプロンプト色を変更してみましょう。

bash編

RHEL系のデフォルトプロンプト

Image may be NSFW.
Clik here to view.
2020-02-20 at 13.03.png

[\u@\h \W]\$

白いですね。
bashでは PS1という環境変数を変更する事でプロンプトの変更が可能です。

文字色を変える

Image may be NSFW.
Clik here to view.
2020-02-20 at 14.21.png

\e[36m

で色付けを開始して

\e[m

でリセットしています。

36が水色、 33が黄、 35が紫に対応しています。
開発環境は水色、ステージングは黄、本番環境は紫、などの設定ができますね。

文字を太字にする

Image may be NSFW.
Clik here to view.
2020-02-20 at 14.35.png

\e[1m

1だと文字を太字にする事ができます。

太字で色も変える

Image may be NSFW.
Clik here to view.
2020-02-20 at 14.25.png

\e[1;36m

136の両方を設定して太字フォントかつ文字色が変更になります。

さらに色々変える

Image may be NSFW.
Clik here to view.
2020-02-20 at 14.43.png

1太字で
2薄色で
3イタリックで
4下線を引き
9取り消し線を入れ
36文字色を水色に
45背景色を紫に
できたりします。

仕組み

ANSIエスケープシーケンスという特殊文字を使ってターミナルでの表示を制御しています。プロンプトに限らず、プログラムの出力にも使われます。
文字スタイルや、実際の表示色はクライアントのOSやターミナルによって微妙に異なってきます。

参考
ANSIエスケープシーケンス チートシート
https://qiita.com/PruneMazui/items/8a023347772620025ad6

文字スタイル指定の一覧
https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters

色指定の一覧と各ターミナルでの表示色例
https://en.wikipedia.org/wiki/ANSI_escape_code#Colors

zsh編

Image may be NSFW.
Clik here to view.
2020-02-20 at 15.15.png

zshでは PROMPT環境変数で設定します。
設定方法もbashとは異なり、zsh独自のタグのようなものを使います。
%B太字
%bで太字解除
%F{cyan}で文字色を水色にし
%fで文字色リセット

参考
プロンプト拡張
http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html#Prompt-Expansion
表示効果
http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html#Visual-effects
文字装飾
http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting

マシン全体に設定

/etc/profile.d/

bashなら

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

zshなら

export PROMPT="%B%F{cyan}[%n@%m]%f%b%~%# "

のようなシェルスクリプトを入れておくと、全てのユーザのデフォルトプロンプトにできます。


Viewing all articles
Browse latest Browse all 2722

Trending Articles