LoginSignup
13
10

More than 5 years have passed since last update.

bash の prompt をカスタマイズする

Last updated at Posted at 2014-08-24

本番機に入ってる時には prompt を赤くしたりホスト名を表示するなどして、注意喚起したいですよね。

RED="0;31"
START_COLOR="\[\e[${RED}m\]"
END_COLOR="\[\e[0m\]"
export PS1="[\u@${START_COLOR}FRONT-PRODUCTION${END_COLOR}(\h) \W]\$ "

解説

prompt の上書き

環境変数 PS1 を上書きます。
export PS!="...." してください。ダブルクォート(")で囲わないと、変数(${COLOR})が使えないのでご注意。

デフォルトは以下です。

PS1=”[\u@\h:\w]\$ ”

こちらを .bashrc または .profile .bash_profile 辺りに記述します。
記述後は、再読み込みも忘れずに。

$ source ~/.bashrc
or 
$ . ~/.bashrc

特殊文字

予め bash に定義された特殊文字を使うと、環境に応じた変数が表示されます。

表記 内容
\u ログインユーザ名
\h ホスト名(最初の.まで)
\H ホスト名(フル)
\w 現在の作業ディレクトリ(絶対パス)
\W 現在の作業ディレクトリ(最後の箇所だけ)
\$ prompt の最後の $ の部分
ROOTユーザの場合は#になる
\d 曜日+日付(例: Fri Jan 5 )
\t HH:MM:SS(24時間)
\T HH:MM:SS(12時間)

色のつけかた

色をつけたい箇所を、以下の文字列で挟みます。

START_COLOR="\[\e[${COLOR}m\]"
END_COLOR="\[\e[0m\]"

[ が2箇所にあるので、注意してください

正確には、\[\] で色のコードを挟みます。これは非表示文字のシーケンスを使いたい時の宣言です。
\e[0m は色のリセットをするコードです。

色コードの定義は以下の通り。

番号 コード
0;30 \e[0;30m
0;31 \e[0;31m
0;32 \e[0;32m
0;33 \e[0;33m
0;34 \e[0;34m
0;35 \e[0;35m
シアン 0;36 \e[0;36m
0;37 \e[0;37m
リセット 0 \e[0m

参考

http://www.atmarkit.co.jp/flinux/rensai/linuxtips/002cngprmpt.html
https://wiki.archlinux.org/index.php/Color_Bash_Prompt

13
10
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
13
10