bashのプロンプトは環境変数のPS1を変えればいい。ここではちょっと特殊な色をつける方法。
色をつけるにはANSI エスケープシーケンスを使う。エスケープシーケンスを使う場合は、\[ と \]で囲ってその中に書く。エスケープシーケンスで色をつけるには、ESC[値;値m]の形で記述する。ここでESCはオクタルに直して\033になる。値のところは以下の様になる。(参考)
Foreground colors
30 Black
31 Red
32 Green
33 Yellow
34 Blue
35 Magenta
36 Cyan
37 WhiteBackground colors
40 Black
41 Red
42 Green
43 Yellow
44 Blue
45 Magenta
46 Cyan
47 White
実験。プロンプトを赤のAAAにする。
1234 $ bash$ PS1="\[\033[31m\]AAA\[\033[0m\]"AAAAAAexit
実験。背景が青で文字を黄色にする。
1234 $ bash$ PS1="\[\033[033;044m\]AAA\[\033[0m\]"AAAAAAexit
書き方がわかりにくいが、以下の太字のxxの部分を上の色コードに変えればいい。
1 \[\033[0<strong>xx</strong>;0<strong>xx</strong>m\]AAA\[\033[0m\]
AAAの部分は実際には\uとか\hとか\Wになるのが普通。これらの意味はman bashで”PROMPTING”を検索すれば分かる。
Ubuntuの場合デフォルトのPS1は以下のようになっている。echo $PS1で確認できる。
1 \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
debian_chrootと言うのはよく分からないのでスルーするとして、これに色を加えて以下の様にしてみた。
1 |
$ PS1="\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[046m\]\u\[\033[0m\]@\[\033[036m\]\h\[\033[0m\]:\w\$ " |
このプロンプトを永続的に使うには、~/.bashrcに記述する。