シェルプロンプトの正しい色分け設定

シェルプロンプトの色分けを正しく行う方法メモ。



[@host_name /current/directory]$ と表示する方法


上記のような表示を行う必要最低限な記述は下記の通りです。


$ vi ~/.bashrc

export PS1="\\[\\e[33;1m\\][@\\h \\w]\\$\\[\\e[m\\] " # この行を最後に追記

$ source ~/.bashrc # 編集した .bashrc の有効化


意味解説


\\e[{色の設定}m

色分けしたい文字の先頭に付ける記号。今回の色の設定は 33;1 です。この意味は続いて説明します。


\\e[m

色分けしたい文字の末尾に付ける記号。


\\h

ホスト名。


\\w

カレントディレクトリ。


\\$

単なるドル記号ではなく、一般ユーザーならドル記号、rootユーザーならシャープ記号、になります。


33;1

文字色(先頭の3)を黄色(真ん中の3)にして、太字(最後の1)にする、という指定。


\\[ \\]

色指定の制御文字を\\[と\\]ではさまないと、長いコマンドを入力したときの改行がおかしくなります。



参考リンク


下記のリンクがむちゃくちゃ参考になります。


シェル - echoで文字に色をつける その1



まとめ


ネットで見つけた間違った指定を今まで書いてたんですが、正しく書き直したらすっきり短くなったのでよかったです。


\\] とか \\e[00m (閉じる方)みたいな書き方は意味ないっぽいのでご注意ください…。

著者プロフィール
Webサイトをいくつか作っています。
著者プロフィール