2021/10/07

Bashプロンプトの変更

デフォルトのBashプロンプトの表示(テキストや色)を変える方法の備忘録です。複数のサーバにアクセスしたり管理したりすると、ターミナルを見ただけでサーバをわかりやすく識別したいですよね。本記事では、Bashプロンプトを変更する方法を説明します。


Bashプロンプトの設定方法

手順は簡単です。PS1という環境変数にフォーマットを設定することで表示を変えることができます。いくつか利用できる変数(例:ユーザ名)があるので、組み合わせて使います。


設定方法

テキスト変数

  • \u: ユーザ名
  • \h: ホスト名
  • \w: カレントディレクトリ名
  • \$: プロンプト記号(ユーザモードでは$、ルートモードでは#)


色変数

\[\e[色番号m\]の形式で指定します。色番号は以下の表を参照ください。指定直後のテキストから後ろのテキストはすべて指定した色に変更されるため、途中から元に戻したい場合は\[\e[m\]でリセットしてください。

バックスラッシュ(または円マーク)が多く分かりにくいため、手っ取り早く色を変えたい場合は、\[\e[色番号m\]のテキストをコピーし、色番号mの部分を以下の表のmを含む番号に変えてください。


色番号
m 指定なし(リセット)
0;30m
0;31m
0;32m
0;33m 黄色
0;34m
0;35m
0;36m シアン
0;37m


例:export PS1="\[\e[0;36m\]\u@hoge:\w\[\e[m\]\$ "

私の環境の場合、ホスト名ではなく固定のサーバ名(ニックネームみたいなもの)をつけて識別しているため、@の後ろに固定の文字列(hoge)を指定しています。


設定と動作確認

.bashrcファイルなどbash起動時に読み込まれる環境設定ファイルに、上記"export PS1=xxx"を追加して、bashに再ログインしてみましょう。

上記の設定では、最初の文字からシアン色に設定し、ユーザ名(\u)、@hoge:、カレントディレクトリ(\w)を表示し、その後色をリセットしてプロンプト記号(\$)と半角スペースを設定しています。


おわりに

コマンドターミナルのUX向上は作業効率を上げるために重要です。サーバの識別性を上げるだけでも間違い防止につながり、作業品質を向上させてくれると考えています。サーバの初期設定時に合わせて考慮いただきたい設定です。