Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

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 (日本語)

fernet
「ちょっとした小技で便利になるTips」みたいなものが大半を占めそうです。
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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした