ターミナルのプロンプト表示を変更する

Macのターミナルのインプットは以下の形式で表示する

{ホスト名}:{現在のディレクトリ}{スペース}{ユーザー名}${スペース}

このままでもいいのだがこれを変更したい

その場合 PS1 環境変数を設定してあげることで変更可能

表示内容 変数
ホスト名 \h
現在のディレクトリ \W
ユーザー名 \u

現在の設定を確認したい場合 PS1 環境変数を確認すれば良い

$ echo $PS1
\h:\W \u\$ 

では、これを

{ユーザー名}@{ホスト名}:{現在のディレクトリ}${スペース}

にしたい場合には環境変数を以下のように設定してあげれば良い

PS1=’\u@\h:\W$ ‘

さらにそれぞれの項目を色分けすることも可能

その場合、PS1環境変数の中で色指定をしたい位置に以下の構文で定義するだけ

\[\e[{$色コード}m\]

赤字部分の \[ と \] で囲み、その中に色指定の青字部分 \e[ と m で囲み、オレンジ字の色コードを定義

さらに、太字や下線などの文字修飾をしたい場合には色コードの前に文字修飾コードを入れてセミコロンで区切ればOK

\[\e[{$文字修飾コード};{$色コード}m\]

例えば以下のように色分けをしたいとする

表示内容 変数 色コード
ホスト名 \h 32
現在のディレクトリ \W 34
ユーザー名 \u 黄色 33

その場合、以下のようにPS1を定義してあげれば色付きの表示ができるようになる

PS1=’\[\e[0;33m\]\u\[\e[0m\]@\[\e[0;32m\]\h\[\e[0m\]:\[\e[0;34m\]\W\[\e[0m\]\$ ‘

bash-ps1

参考までに、色と改行して分解してみると以下の通り

PS1=’
\[\e[0;33m\]\u
\[\e[00m\]@
\[\e[0;32m\]\h
\[\e[00m\]:
\[\e[0;34m\]\W
\[\e[00m\]$
 ‘

@、: と $ の前の \[\e[00m\] で指定した 00 は色指定をクリアにする時に利用できる

参考

https://www.howtogeek.com/307701/how-to-customize-and-colorize-your-bash-prompt/

コメントを残す

メールアドレスが公開されることはありません。