Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
123
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

Bashのプロンプトに色を付けてサーバやユーザを区別する

Bashの場合PS1変数でプロンプトのフォーマットを指定しているため、そこに色を指定するエスケープシーケンスを混ぜ込むという話です。

実施例

vi ~/.bashrc
追記内容例
PS1="\[\e[36m\e[42m\][\u@\h \W \d \t]\[\e[0m\]\n\\$ "
source ~/.bashrc

表示例

20150215-bash-sumire.png

エスケープシーケンスの構造

記号ばかりでややこしいため図にしてみました。

20160221-bash-escape.png

色以外の \u などについては以下のページが参考になります。
bashのプロンプトを変更するには (atmarkit)

他の色のサンプル

20150215-bash-colors.png

改行について

元々、エスケープシーケンスがあると入力コマンドに折り返しが発生するあたりで表示がおかしくなったので改行を入れて対策していましたが、コメントで教えて頂いた通り、これは先頭の \[ を入れ忘れてたのが原因でした。
違和感あるかも知れませんが、プロンプトに出す情報を増やしても画面が狭くならなくなったのでこれはこれで気に入ってます。

使い所

  • grepなどで1つ前と2つ前のコマンドの出力の境界を見逃さなくなりました。
  • 開発環境とプロダクション環境の区別や特権ユーザかどうかの区別にも良いと思います。

複数人がログインする可能性のあるサーバは、あんまり好き勝手に弄りたくないので、壊れてもいい自分しか使わないような環境のみ色付けてます。
なのでデフォルトのプロンプトを見つけたら身構える感じです。

プロンプトをいじる事に関しては以下のページではもっと面白そうなことやってます。
Color Bash Prompt (日本語)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
123
Help us understand the problem. What are the problem?