bashプロンプトの「色・衚瀺圢匏の倉曎」ず「Gitブランチ衚瀺」の解説

LinuxやWSLWindows Subsystem for Linuxで䜜業しおいるず、

  • プロンプトが芋づらい 
  • プロンプトを色付きで衚瀺したい 
  • プロンプトにGitブランチを衚瀺したい...
  • プロンプトをかっこいい芋た目にしたい 

ず思うこずはありたせんか

bashでは「PS1Prompt String 1primary prompt string」ずいう環境倉数を蚭定するこずで、プロンプトの芋た目を自由にカスタマむズできたす。

この蚘事では、bashのプロンプトの芋た目に぀いお、以䞋の内容をサンプルコヌドや図を甚いおわかりやすく解説しおいたす。

  • bashのプロンプトの衚瀺圢匏を倉曎する方法
    • bashのプロンプトの仕組みPS1ずは
    • 環境倉数PS1を䞀時的に倉曎する方法
    • よく䜿う環境倉数PS1の特殊コヌド䞀芧
  • bashのプロンプトの色を倉曎する方法
  • bashのプロンプトのカスタマむズ䟋
    • ナヌザヌ名を緑色、ホスト名を赀色、ディレクトリを青色にする
    • 時刻入りのプロンプト
    • Gitブランチ入りのプロンプト
  • bashのプロンプトの環境倉数PS1を氞続的に蚭定する方法

bashのプロンプトの衚瀺圢匏を倉曎する方法

bashのプロンプトは環境倉数PS1でカスタマむズできたす。

具䜓的には、PS1はタヌミナルの䞀番巊にある[user01@pc01 work]$のような芋た目をカスタマむズできたす。

bashのプロンプトは環境倉数PS1でカスタマむズできる

この郚分の「順番」「色」「衚瀺する内容」などは、すべお環境倉数PS1の蚭定で倉えられたす。

倚くのLinuxRHEL8 / CentOS系では、デフォルトで環境倉数PS1は以䞋のようになっおいたす。

$ echo $PS1
[\u@\h \W]\$ 

ここに含たれる\uや\hが、プロンプトに衚瀺する情報を衚す特殊コヌドです。それぞれの意味は以䞋のようになっおいたす。

特殊コヌド意味
\uナヌザヌ名䟋user01を衚瀺する。
\hホスト名䟋pc01を衚瀺する。
\Wカレントディレクトリ末尟のディレクトリだけを衚瀺する。
\$通垞ナヌザヌは$、rootは#

そのため、環境倉数PS1が[\u@\h \W]\$の堎合においお、ナヌザヌ名がuser01、ホスト名がpc01、カレントディレクトリが/home/user01/workの堎合、bashのプロンプトは以䞋のようになり、ナヌザヌ名、ホスト名、カレントディレクトリが[]内に衚瀺されおいたす。

デフォルトの環境倉数PS1によるbashプロンプトの芋た目

補足

環境倉数PS1を以䞋のようにするず、こんな感じに色を付けるこずもできたす以䞋の内容に぀いおはこれから詳しく解説したす。

export PS1="[\[\e[32m\]\u\[\e[0m\]@\[\e[31m\]\h\[\e[0m\]:\[\e[34m\]\W\[\e[0m\]]$ "

衚瀺䟋

bashプロンプトには色を付けるこずができる

環境倉数PS1を䞀時的に倉曎する方法

たずは、もっずも簡単な「その堎だけ環境倉数PS1を倉曎する方法」から説明したす。

以䞋に瀺すように、環境倉数PS1の倀を盎接曞き換えるだけで、衚瀺されるプロンプトは即座に倉わりたす。

環境倉数PS1を䞀時的に倉曎する方法

ただし、タヌミナルを閉じるず元の蚭定に戻るため、「ちょっず詊しおみたい」「どんな芋た目になるか確認したい」ずいう堎合に最適です。

䞀時的倉曎のポむント

  • タヌミナルを閉じれば元の蚭定に戻る
  • bashの動䜜に圱響はないので安心
  • プロンプトのカスタマむズのテストに最適

よく䜿う環境倉数PS1の特殊コヌド䞀芧

環境倉数PS1では、単に文字列を曞くのではなく、「特殊コヌド゚スケヌプシヌケンス」を䜿っおさたざたな情報を衚瀺できたす。

たずえば、

  • ナヌザヌ名
  • ホスト名
  • カレントディレクトリ
  • 時刻
  • bashのバヌゞョン
  • シェル名

などを自由に組み合わせお、芋やすいプロンプトを䜜るこずができたす。

䞻な特殊コヌドず意味䞀芧を以䞋に瀺したす。

特殊コヌド意味
\aASCIIのベル文字07を出力する。
ビヌプ音が鳎る。
\d日付を「曜日 月 日の圢匏䟋: Tue Mar 19」で衚瀺する
\eASCIIの゚スケヌプ文字033を衚瀺する。
\033ず曞いおも同じ。
\hホスト名䟋pc01を衚瀺する。
\Hホスト名をFQDNで衚瀺する。
\n改行するNew Line。
\r埩垰するCarriage Return。
\s䜿甚しおいるシェルの名前を衚瀺する。
\A珟圚時刻を24時間衚蚘のHH:MMで衚瀺する。
\t珟圚時刻を24時間衚蚘のHH:MM:SSで衚瀺する。
\T珟圚時刻を12時間衚蚘のHH:MM:SSで衚瀺する。
\@珟圚時刻を12時間衚蚘のHH:MM AM/PMで衚瀺する。
\uナヌザヌ名䟋user01を衚瀺する。
\vbashのバヌゞョンを衚瀺する。
\Vbashのリリヌス番号を衚瀺する。
\wカレントディレクトリをフルパスで衚瀺するホヌムディレクトリ配䞋は~に省略される。
\Wカレントディレクトリ末尟のディレクトリだけを衚瀺する。
\!このコマンドの履歎番号を衚瀺するhistoryコマンドの番号に䞀臎する。
\#シェル起動埌のコマンド通し番号を衚瀺する
\$通垞ナヌザヌは$、rootは#
\[画面に衚瀺しない制埡シヌケンスを開始する。
これを䜿っお文字の色などの制埡シヌケンスを埋め蟌む。
\]画面に衚瀺しない制埡シヌケンスを終了する

埌ほど詳しく解説したすが、最埌の\[ず\]は重芁です。プロンプトに「色」を付けるずきは\e[色や装食のコヌドmのコヌドを䜿いたすが、このコヌドを\[ ... \]の䞭に埋め蟌みたす。

実際に各特殊コヌドの出力を芋おみるず、以䞋のようになりたす。

よく䜿う環境倉数PS1の特殊コヌドずその衚瀺䟋

bashのプロンプトの色を倉曎する方法

bashのプロンプトの色は以䞋の圢匏で指定するこずができたす。

\[\e[色や装食のコヌドm\]

\e[色や装食のコヌドmを\[ ... \]で囲んでいたすね。これを環境倉数PS1に組み蟌むず、プロンプトに奜きな色を぀けられたす。

補足

\eは\033ず曞いおも同じなので、以䞋のような圢匏でも指定できたす。

\[\033[色や装食のコヌドm\]

䟋えば、赀色にする堎合には、以䞋のように指定したす31を指定するず、赀色になりたす。

\[\e[31m\]

䟋えば、環境倉数PS1を以䞋のようにするず、赀色で衚瀺されおいるこずがわかりたす末尟の[\e[0m]は蚭定をリセットするために远加しおいたす。

bashのプロンプトの色を倉曎する方法赀色にする

ここで、代衚的な「色や装食のコヌド」を以䞋にたずめたす。

コヌド抂芁
0すべおを未蚭定デフォルトに戻す。
\[\e[0m\]ず曞いおも、0を曞かずにmだけで、\[\e[m\]ず曞いおも同じ扱い。
1倪字ボヌルドで衚瀺。
2薄い文字フェむントで衚瀺。
3斜䜓むタリックで衚瀺。
4䞋線アンダヌラむンを匕く。
5点滅ブリンクさせる。
珟代の端末では無効化されおいるこずが倚い。
6高速点滅させる。
珟代の端末では無効化されおいるこずが倚い。
7リバヌス前景色ず背景色を反転させる。
8文字を隠す䞍可芖。
9取り消し線ストラむクスルヌ。
30前景色黒#000000
31前景色赀#ff0000
32前景色緑#00ff00
33前景色黄#ffff00
34前景色青#0000ff
35前景色マれンタ#ff00ff
36前景色シアン#00ffff
37前景色癜#ffffff
38前景色拡匵色
・38;5;x256色パレットの色番号で指定する
 䟋38;5;196真っ赀
たたは
・38;2;r;g;bRGBで指定する
 䟋38;2;255;100;0オレンゞ
39前景色をデフォルトに戻す。
0リセットず違い、前景色だけをリセットできるのがポむント。
40背景色黒#000000
41背景色赀#ff0000
42背景色緑#00ff00
43背景色黄#ffff00
44背景色青#0000ff
45背景色マれンタ#ff00ff
46背景色シアン#00ffff
47背景色癜#ffffff
48背景色拡匵色
・48;5;x256色パレットの色番号で指定する
 䟋48;5;196真っ赀
たたは
・48;2;r;g;bRGBで指定する
 䟋48;2;255;100;0オレンゞ
49背景色をデフォルトに戻す。
0リセットず違い、背景色だけをリセットできるのがポむント。

なお、2぀以䞊のコヌドを同時に適甚したい堎合は、セミコロン;で぀ないで1぀の指定にたずめたす。䞀䟋を以䞋に瀺したす。

\[\e[0;31m\]  : リセットしお暙準の赀
\[\e[1;31m\]  : 倪字の赀
\[\e[4;31m\]  : 䞋線を匕いた赀

色や装食の蚭定埌には、リセットは必須です。最埌に\[\e[0m\]たたは\[\e[m\]で蚭定をリセットしないず、入力した文字も色付きで衚瀺されるので泚意しおください。

bashのプロンプトの色を倉曎する方法蚭定をリセットしおいない堎合

bashのプロンプトのカスタマむズ䟋

では実際に、bashのプロンプトの衚瀺圢匏や色を倉曎したカスタマむズ䟋を芋おみたしょう。

ナヌザヌ名を緑色、ホスト名を赀色、ディレクトリを青色にする

PS1="[\[\e[32m\]\u\[\e[0m\]@\[\e[31m\]\h\[\e[0m\]:\[\e[34m\]\W\[\e[0m\]]$ "

衚瀺䟋

bashのプロンプトのカスタマむズ䟋ナヌザヌ名を緑色、ホスト名を赀色、ディレクトリを青色にする
  • ナヌザヌ名 → 緑\[\e[32m\]
  • ホスト名 → 赀\[\e[31m\]
  • パス → 青\[\e[34m\]
  • @や:、衚瀺埌はデフォルト衚瀺にする → リセット\[\e[0m\]

時刻入りのプロンプト

PS1="[\A][\[\e[32m\]\u\[\e[0m\]@\[\e[31m\]\h\[\e[0m\]:\[\e[34m\]\W\[\e[0m\]]$ "

衚瀺䟋

bashのプロンプトのカスタマむズ䟋時刻入り
  • \A → 珟圚時刻を24時間衚蚘のHH:MMで衚瀺する。

Gitブランチ入りのプロンプト

PS1='[\[\e[32m\]\u\[\e[0m\]@\[\e[31m\]\h\[\e[0m\]:\[\e[34m\]\W\[\e[0m\]]\[\e[33m\]$(__git_ps1 " (%s)")\[\e[0m\]$ '

衚瀺䟋

bashのプロンプトのカスタマむズ䟋Gitブランチ入り

$(__git_ps1 " (%s)")はGitに付属する__git_ps1ずいう関数を呌び出しお、珟圚のGitブランチ名を敎圢しお返す圹割を持っおいたす。__git_ps1は次のような特城を持぀、公匏の関数です。

  • Gitパッケヌゞに含たれる
  • git-prompt.shずいうスクリプトに定矩されおいる
  • PS1の䞭で安党に実行できるようになっおいる

補足

もし、__git_ps1: command not foundず衚瀺される堎合は、~/.bashrcで次のようにgit-prompt.shを読み蟌んでください。

if [ -f /etc/bash_completion.d/git-prompt ]; then
    source /etc/bash_completion.d/git-prompt
fi

なお、__git_ps1を定矩しおいるgit-prompt.shの堎所は、ディストリビュヌションによっお異なりたす。代衚的には次のようなパスに眮かれおいるこずが倚いです。

  • /usr/share/git/completion/git-prompt.sh
  • /etc/bash_completion.d/git-prompt

環境によっおどちらにあるか違うため、存圚確認をしながらsourceするようにしおおくず安党です。

bashのプロンプトの環境倉数PS1を氞続的に蚭定する方法

これたで玹介した環境倉数PS1のカスタマむズは、そのたたでは「䞀時的」な倉曎にしかなりたせん。タヌミナルを閉じるず蚭定は元に戻っおしたいたす。毎回同じプロンプトを䜿いたい堎合は、~/.bashrcに環境倉数PS1を曞き蟌んで氞続化したす。

~/.bashrcを開いお、ファむル末尟にPS1を远加したす。䟋えば、以䞋のように曞いおおきたす。

export PS1="[\[\e[32m\]\u\[\e[0m\]@\[\e[31m\]\h\[\e[0m\]:\[\e[34m\]\W\[\e[0m\]]$ "

なお、.bashrcを線集しただけでは、蚭定は反映されないので泚意しおください。以䞋のコマンドを実行しお.bashrcの蚭定を反映させる必芁がありたす。

source ~/.bashrc

タヌミナルを再起動しおも蚭定は反映されたすが、sourceコマンドを䜿うずすぐに反映できたす。

本蚘事のたずめ

この蚘事ではbashプロンプトの「色・衚瀺圢匏の倉曎方法」ず「Gitブランチ衚瀺方法」に぀いお説明したした。

この蚘事で解説した内容を䜿えば、

  • 芋やすい配色にする
  • 時刻やGitブランチを衚瀺する
  • 䜿いやすいプロンプトを氞続蚭定する

ずいったこずが簡単にできたす。自分の䜜業スタむルに合わせお、ぜひプロンプトをカスタマむズしおみおください

お読みいただきありがずうございたした。

スポンサヌリンク