スポンサーリンク

MacのTerminalのプロンプトを変更する方法

どうもIbukishです。

今回はTerminalのプロンプトを変更する方法を紹介しようと思います。

そもそもプロンプトとは?って方。Terminalを起動した時に表示される下記の部分のことです。
初期設定だと以下のように表示されると思います。#の部分は名前入っていたので伏せています。

################-no-MacBook-Air-2:~ ######$ 

なんせ長いんですよね。。Terminalの画面の大きさ次第ではこれで1行の半分を占めることも珍しくないです。

そんなお悩みを解消すべく、プロンプトの変更方法を紹介します。

MacのTerminalのプロンプトを変更する方法

一時的に変更する方法

まずは一時的に変更する方法から紹介したいと思います。
変更方法は非常にシンプルです。以下のコマンドを実行するだけです。

export PS1=’\h:\W \u\$ ’

ただこのまま実行しても初期設定と同じなので変化が見られないので、一部を書き換えて自分の好みに仕上げる必要があります。
変更する箇所は上のコマンドで言うと(シングルクォーテーション)でくくられている部分です。\h:\W \u\$の部分ですね。
この部分には変数が入っており、変数の組み合わせを変えることで表示内容の変更が可能です。
また任意の文字を入力することでその文字を表示する事もできます。
どのような変数が存在するのかは下記の表にまとめたのでそちらを参考にカスタマイズして見てください。変更してEnterを押せば即時反映されます。ですので気軽に試すことが可能です。

表示内容を変更する方法

先程示したコマンドのシングルクォーテーションで囲われた部分に欲しい項目を追加して行くだけです。
以下によく使いそうなものを記載していますのでそちらを参考に設定していただけたらと思います。

記号概要表示例
\A時間(24時間制(秒単位抜き))22:15
\D{}日時({}内でフォーマットを指定する必要あり※1){%Y-%m-%D}
2020-05-12
\d日付(曜日 月 日)火 5 12
\hホスト名xxxxx-no-MacBook-Air-2
\n改行 
\sシェルの名前-bash
\T時間(12時制表示)10:15:12
\t時間(24時制表示)22:15:12
\uユーザー名 
\Wディレクトリtest
\wディレクトリ(フルパス)~/Downloads/test
\#コマンドの番号12
\$一般ユーザー時:$
rootユーザー時:#
 
\@AM / PM10:15 PM
※1 フォーマット指定の形式は下記ページを参照
https://xtech.nikkei.com/it/article/COLUMN/20060227/230739/

試しに変更してみました。こんな感じですね。すぐに確認ができるのは便利です。

ibukish ~$echo $PS1
\nibukish \W\$

ibukish ~$export PS1=’\n\t \s \W\$’

06:28:45 -bash ~$cd Downloads/

06:28:57 -bash Downloads$export PS1=’\n\T \s \W\$’

06:29:19 -bash Downloads$export PS1=’\n\@ \s \W\$’

06:29 AM -bash Downloads$export PS1=’\n\d \s \W\$’

水  5 13 -bash Downloads$export PS1=’\n\d \s \# \W\$’

水  5 13 -bash 59 Downloads$export PS1=’\n\d \A \s \# \W\$’

水  5 13 06:30 -bash 60 Downloads$
プロンプトの変更を色々と試してみた

ちなみにですが、現在の設定内容を確認したい際は下記コマンドを実行すれは確認出来ます。
上の画像ですと一番上で現在の設定の確認をしていますね。

echo $PS1

echoは文字列、数字、変数の中身を表示するためのコマンドですね。$マークを付けることで変数を表します。
ですので下記コマンドは「変数PS1に入っている値を表示する」ってコマンドですね。

これで出力内容の変更はできたので次は文字色、背景色の変更方法の紹介をしいきたいと思います。

文字色、背景色を変更する方法

もし文字全部の色を変更したい場合は以下の記事を参考に変更することをおすすめします。
今回紹介するのはあくまでプロンプトの文字色、背景色の変更です。その点お間違い内容ご注意ください。

変更方法は先程と同じです。PS1の値に色や背景色を示す値を入れれは変更が出来ます。
下記の表は文字色と背景色の値の一覧です。

文字色
30m
31m
32m
33m
34m
35m
36m水色
37mグレー
38mRGB指定
39mデフォルトカラー

背景色
40m
41m
42m
43m
44m
45m
46m水色
47mグレー
48mRGB指定
49mデフォルトカラー

0m で設定のリセットが出来ます。
英語のページではありますが、Wikipediaに詳細が載っています。
もっとこだわって色の設定等を行いたい方は参考にしていただけたらと思います。

では実際に設定して行きたいと思います。以下のような書き方をします。

export PS1=’\nibukish: \[\e[36m\] 文字水色 \[\e[0m\]\] \[\e[43m\] 背景黄色 \[\e[0m\]\]\[\e[32,41m\] 複数設定 \[\e[0m\]\]’

[]で囲ってあげて、実際の設定はe[]に書きます。設定時はそれぞれエスケープする必要があるので\が必要になります。
また複数設定する場合は;で区切って数字を記載していけばOKです。
実行した結果がこちら。

文字色・背景色を変更したイメージ

 想定通り色が変更されました。
これで自由に色の変更ができるようになったと思います。自分好みのプロンプトを作成してください。

自分は色々と悩んだ結果下記の設定に落ち着きました。文字色と背景色はいらないやーって結論に。笑
先頭に\nを入れることで常に1行空けてコマンド入力の行が表示されるようにしています。\Wはディレクトリでフルパスは長いので、カレントディレクトリのみ表示するようにしました。\$はユーザーがrootか否かを見分けるために入れています。おそらく今後活躍するでしょう。また\$の後ろにスペースを入れることでプロンプトを入力したコマンドの区切りがわかりやすくなるようにしました。

export PS1=’\nibukish: \W \$ ’

 いかがでしたか、自分好みにの設定は見つかりましたか?
ですが今のままだと一時的なで、Terminalを一度閉じると元の設定に戻ってしまいます。せっかく設定したのにリセットされてしまうのは残念ですよね。
次は変更したプロンプトを永続的なものにする方法を紹介します。

永続的に変更する方法

ここからは設定を永続化するための手順になります。
早速設定に移っていくのですが、まず先程設定したものを別の場所にメモしておきましょう。もし消えたら悲しいんでね。
まず、以下のコマンドを実行します。そうすると現在の設定が出力されるので、任意の場所にコピーしておきましょう。

ibukish ~ $ echo $PS1
\nibukish: \W \$

永続的にプロンプトの変更を保持するためには.bashrcの修正が必要になります。
bashの設定ファイルには.bashrc.bash_profileの2つがあるのですが、調べた感じとりあえず.bash_profileに書いておけばOKみたいな感じの方が一定数いらっしゃるそうです。自分は2つのファイルの意味をしっかりを考えて設定をしたいので、.bashrcに書くようにしています。
.bashrc.bash_profileの2つの違いを詳しく知りたい方は下記サイトを参考にしていただけたらと思います。

Bash: .bashrcと.bash_profileの違いを今度こそ理解する|TechRacho by BPS株式会社
更新情報 2019/06/06: 初版公開 2021/07/08: 更新 こんにちは、hachi8833です。社内Slackで見かけたmorimorihogeさんの以下の書き込みで目から鱗が落ちました。 ~/.bashrcで何かを出力してしまうと、rsyncなどのsshパイプで問題が生じることがあるそうです。 参考: ...

では早速変更していきましょう。
まず、以下のコマンドを実行してファイルを編集できるようにします。.bashrcはroot権限が必要なのでsudoをつけて実行する必要があります。

sudo vim .bashrc

vimで開けたら、PS1の値を書き換えて行こうと思います。
自分の場合は画像のようになっていたので、赤く囲われた箇所を先程コピーしておいた値に書き換えました。
すでに変更してたので、変更差分が非常にわかりにくいですね。。自分の場合は先頭に改行の\nを追加しました。

変更前

設定ファイル修正前

変更後

設定ファイル修正後

ちなみに今回はvimで開いているため、修正の際にはInsertモードにする必要があります。キーボードのiを押すことでInsertモードになります。
変更ができましたら保存をするだけです。Esc:(コロン)→wqEnterこれを順番に押していくと変更が出来ます。
保存出来たらさっきまでコマンドを打っていた画面に戻ると思います。

後はこの変更を読み込んで上げればOKです。
読み込み方法ですが、以下のコマンドを実行したら完了です。

source .bashrc
設定変更の反映方法

実行したら先程追加した改行部分が反映されました。
これで設定は完了です。Terminalを終了して、再度起動しても設定が先程設定したプロンプトが表示されると思います。

もし反映されなかった場合は、.bash_profileの設定を確認してみましょう。.bashrcを読み込む設定が出来ていない可能性があります。
下記コマンドを実行してして設定を見てみましょう。

sudo vim .bash_profile

vimで開くことが出来たら以下を書き込んでください。iを押してInsertモードにして貼り付ければOKです。

if [ -f ~/.bashrc ]; then  
. ~/.bashrc
fi
.bashrcの変更が反映されない場合の対応方法

書き込みが完了したら、Esc:(コロン)→wqEnterを順番に押して保存します。
保存したら以下を実行してください。

source .bash_profile

これで以降は反映されるようになると思います。

いかがでしたか?お気に入りの設定は見つかりましたか?
自分でカスタマイズできるのはいいですよね!画面見てるだけでモチベーションが上がります。

皆様の参考になれば幸いです。

環境構築
スポンサーリンク
ibukishをフォローする
スポンサーリンク
ibukish Lab+

コメント

タイトルとURLをコピーしました