LinuxターミナルのBashプロンプトの色と表示内容をカスタマイズする方法
現在、Bashは多くの(ほぼすべての)モダンなLinuxディストリビューションでデフォルトのシェルとして採用されています。しかし、ディストリビューションによって、ターミナルの文字色やプロンプトの表示内容が異なることに気づいたことはありませんか?
アクセシビリティの向上のため、あるいは単なる好みでこれをカスタマイズしたいと思ったことがあるなら、ぜひ読み進めてください。本記事では、その具体的な方法を分かりやすく解説します。
PS1 Bash環境変数とは
コマンドプロンプトやターミナルの外観は、PS1という環境変数によって制御されています。Bashのmanページによると、PS1は「プライマリプロンプト文字列」を表し、シェルがコマンドを読み込む準備ができたときに表示されるものです。
PS1に設定できる内容は、バックスラッシュでエスケープされた特殊文字で構成されており、それぞれの意味はmanページのPROMPTINGセクションに記載されています。
まずは、お使いのシステムで現在のPS1の内容を表示してみましょう(環境によって多少異なる場合があります):
$ echo $PS1 [\admin@wsxdn.com\h \W]$
それでは、PS1を自分のニーズに合わせてカスタマイズする方法を見ていきましょう。
PS1フォーマットのカスタマイズ
manページのPROMPTINGセクションによると、各特殊文字の意味は以下の通りです:
\u:現在のユーザーのユーザー名\h:完全修飾ドメイン名(FQDN)の最初のドット(.)までのホスト名\W:現在の作業ディレクトリのベース名。$HOMEはチルダ(~)で省略表示される\$:現在のユーザーがrootの場合は#を、それ以外の場合は$を表示
例えば、現在のコマンドの履歴番号を表示したい場合は\!を、短いサーバー名の代わりにFQDNを表示したい場合は\Hを追加するとよいでしょう。
次の例では、両方を現在の環境に取り込むため、以下のコマンドを実行します:
PS1="[\admin@wsxdn.com\H \W \!]$"
Enterキーを押すと、プロンプトの内容が変化することが確認できます。コマンド実行前後のプロンプトを見比べてみてください。

さらに一歩進んで、コマンドプロンプト内のユーザー名とホスト名の色を変更してみましょう。テキスト自体の色と、その周囲の背景色の両方を設定できます。
実は、プロンプトでは以下の3つの側面をカスタマイズできます:
| テキスト形式 | 前景色(文字色) | 背景色 |
| 0: 通常テキスト | 30: 黒 | 40: 黒 |
| 1: 太字 | 31: 赤 | 41: 赤 |
| 4: 下線付きテキスト | 32: 緑 | 42: 緑 |
| 33: 黄 | 43: 黄 | |
| 34: 青 | 44: 青 | |
| 35: 紫 | 45: 紫 | |
| 36: シアン | 46: シアン | |
| 37: 白 | 47: 白 |
色シーケンスであることを示すには、先頭に\e特殊文字を置き、末尾にmを付けます。
このシーケンスでは、3つの値(背景色、形式、前景色)をカンマで区切って指定します(値を省略した場合はデフォルトが適用されます)。
また、各値の範囲が異なるため、背景色・形式・前景色のどれを先に指定しても動作に影響はありません。
例えば、以下のPS1を設定すると、プロンプトが赤い背景に黄色の下線付きテキストで表示されます:
PS1="\e[41;4;33m[\admin@wsxdn.com\h \W]$ "

見た目は良くなりましたが、このカスタマイズは現在のユーザーセッションでのみ有効です。ターミナルを閉じたりセッションを終了したりすると、変更は失われてしまいます。
変更を永続化するには、お使いのディストリビューションに応じて、~/.bashrcまたは~/.bash_profileに以下の行を追加してください:
PS1="\e[41;4;33m[\admin@wsxdn.com\h \W]$ "
色をいろいろと試しながら、自分にとって最も見やすい組み合わせを見つけてください。
まとめ
本記事では、Bashプロンプトの色と表示内容をカスタマイズする方法を解説しました。PS1環境変数の特殊文字とANSIカラーコードを組み合わせれば、ターミナルを自分好みの見た目に自由に変更できます。本記事について質問やご意見がある場合は、下のコメントフォームからお気軽にお寄せください。皆さまからのフィードバックをお待ちしています!
-
Ubuntu Linuxのアップデート方法【デスクトップ・サーバー両対応ガイド】
デスクトップ版のUbuntu Linuxをお使いの場合、内蔵のアップデートツールによって定期的に更新を促されます。しかし、Ubuntu Serverを使用している場合や、保留中のアップデートを手動で確認・実行したい場合には、コマンドラインからの操作方法を知っておく必要があります。 このチュートリアルでは、デスクトップ版とサーバー版の両方でUbuntu Linuxをアップデートするために必要な手順を解説します。あわせて、以下の関連記事も参考にしてください。 aptとapt-getコマンドの違いとは? 「lsb_release」コマンドでUbuntu LinuxのOSバージョンを確認する方法
-
Windows 10にBash(Linuxシェル)をインストールして使う方法【WSL完全ガイド】
Windows上でLinuxシェルをセットアップして使う方法を、Windows Subsystem for Linux(WSL)を使って解説します。 このチュートリアルは、2020年以降にリリースされた最新版のWindows 10を対象としています。古いバージョンのWindows 10でのWSLの使い方や、Windows 8/7/XP向けの別の方法については扱いません。サポートが終了したソフトウェアの使用は避けるべきだからです。どうしてもWindowsを使わなければならない場合は、必ずセキュリティ更新プログラムが提供されているバージョンを使用してください。 WSLは非常に優れたツールで、まるで