macOS ターミナルで zsh プロンプトをカスタマイズする方法

概要

  • macOS では、ターミナルの zsh プロンプトをカスタマイズして、目立つようにし、自分の好みに合わせることができます。
  • .zshrc プロファイルを作成して、zsh プロンプトで必要な変更と設定をすべて保存します。
  • %n (ユーザー名)、%m (Mac のモデル名)、%W (日付)、%T (時刻) などの変数に希望の値を追加して、zsh プロンプトを変更します。

zsh プロンプトで異なる色を使用したり、追加の詳細を表示したり、スペースを最大限に活用するために最小限の外観を採用したりしたい場合、macOS でそれを行うことができます。背景に関係なく、zsh プロンプトをカスタマイズして目立たせる方法を学びましょう。

zsh プロンプトの基本

Mac でターミナルアプリを開くと、前回のログインやコマンドプロンプトなど、いくつかの有用な情報が表示されます。これは、通常、プロンプトのデフォルトの外観です。

Last login: Wed Feb 3 22:00:40 on console
alvin@MacBook-Air ~ %

zsh プロンプトには、ユーザー名と MacBook Air、MacBook Pro、Mac mini などのコンピューターのモデルで構成されるテキスト文字列が表示されます。チルダ (~) は、ホームディレクトリ内のプロンプトの位置を示します。

ターミナル経由でファイルシステム内の別のディレクトリに移動すると、チルダの代わりに現在のディレクトリの名前が表示されます。

すべての設定を保存するための Z シェルプロファイルを作成する

通常、デフォルトの外観を変更するには、システムファイルをいじらなければなりません。これは、macOS のアップデートですべてのシステムファイルがデフォルトにリセットされ、行った変更がすべて失われるためです。そのため、zsh プロンプトに必要な変更と設定をすべて保存するための zsh プロファイルに特定の設定ファイル (ドットファイルとして知られています) を作成することができます。

このドットファイルは macOS ではデフォルトでは見つからないため、自分で作成する必要があります。zsh プロンプトの外観と動作など、すべて設定を保存するために新しい .zshrc プロファイルを作成することをお勧めします。zsh プロファイル (ドットファイル) を作成する方法は次のとおりです。

  1. ターミナルアプリを開きます。
  2. 次のコマンドを入力して、Returnキーを押します。
    touch ~/.zshrc

touchコマンドは、.zshrc プロファイルファイルが存在しない場合にのみ作成します。すでに存在する場合、このコマンドは何も行いません。

これにより、ユーザーアカウントのホームディレクトリに .zshrc プロファイルが作成されます。Mac で隠しシステムファイルの表示を有効にしている場合、Finder の/User/<ユーザー名>/パスで確認できます。

その後、ターミナルを起動するたびに、zsh プロファイルはログイン以外の対話型シェルで使用できるようになります。ただし、.zprofile や .zlogin などの他のログイン固有のファイルが存在しない場合にのみ、ログインシェルに使用されます。

ターミナルで zsh プロンプトをカスタマイズする

通常、デフォルトの zsh プロンプトには、ユーザー名、マシン名、およびユーザーのホームディレクトリから始まる場所などの情報が記載されています。これらの詳細は、/etc/zshrcの場所にある zsh シェルのシステムファイルに格納されています。

PS1="%n@%m %1~ %#"

この変数文字列では、

  • %nはアカウントのユーザー名です。
  • %mは Mac のモデル名です。
  • %1~は現在の作業ディレクトリパスを意味し、~$HOMEディレクトリの場所を削除します。
  • %#は、シェルが root (管理者) 権限で実行されている場合はプロンプトに#が表示され、そうでない場合は%が表示されることを意味します。

デフォルトの zsh プロンプトに変更を加えるには、プロンプトがデフォルトとは異なるように見えるように、関連する値を追加する必要があります。

その方法を紹介します。ターミナルを開き、次のコマンドを入力して、Returnを押します。

nano ~/.zshrc

.zshrc プロファイルファイルが以前に存在していた場合、空白ではない可能性があります。ただし、上記のtouchコマンドを実行したときに存在していなかった場合、空白になります。PROMPT='...'またはPS1='...'というテキストを含む新しい行を追加し、省略記号に関連する値を含めることができます。

zsh プロンプトを簡単に変更するには、.zshrc プロファイルに次の値を入力できます。

PROMPT='%n:~$'

Ctrl + Oを押してファイルへの変更を確定し、Ctrl + Xを押して nano エディターを終了します。

Cmd + Tを押して新しいターミナルウィンドウを開き、行った変更を確認して表示します。新しい zsh プロンプトには、Mac のユーザー名、ホームディレクトリ、および最後に$記号が表示されます。ターミナルで変数を間隔を開けて表示する場合は、上記のPROMPT変数で%n~$の間隔を追加できます。

カスタムユーザー名を使用したい場合は、%nを希望の選択肢に置き換えます。例を次に示します。

PROMPT='customusername~$'

これで、新しいターミナルウィンドウを開くと、次のようになります。

他のパラメータを手動で変更する場合は、上記のPS1変数の形式を使用してデフォルトの変数を置き換えることで変更できます。zsh プロンプトから情報を追加または削除して、好みに合わせることができます。

これが複雑すぎる場合は、Zsh プロンプトジェネレーターなどのサイトを使用して、Z シェルのカスタマイズを支援してください。

zsh プロンプトに日付と時刻を追加する

ユーザー名とは別に、現在の日付または時刻を追加することで、アクティブなターミナルウィンドウから目を離さずにその情報をチェックすることができます。

ターミナルを起動して .zshrc プロファイルを開きます。

nano ~/.zshrc

日付をプロンプトに含めるには、%Dを使用して日付を yy-mm-dd 形式で表示するか、%Wを使用して mm/dd/yy 形式で表示することができます。新しいプロンプトは次のように表示されます。

PROMPT='%n:%W:~$'

上記のPROMPT変数でコロン (:) を使用して視覚的な区切りを追加しましたが、空白やその他のものを使用することもできます。たとえば、大なり記号 (>) を使用して時刻と現在のディレクトリを区切っています。

zsh プロンプトにシステム時刻を含める場合は、%Tを追加して現在の時刻を 24 時間形式で表示するか、%tを追加して時刻を 12 時間形式で表示するか、%*を使用して時刻を 24 時間形式で秒数と一緒に表示します。

PROMPT='%n@%T>~$'

zsh プロンプトの右側に日付と時刻を表示する

zsh プロンプトの右側に情報を表示するには、RPROMPT変数をzshrcファイルに追加する必要があります。たとえば、日付と時刻を追加するには、次のように入力します。

RPROMPT='%D @ %T'

プロンプトは次のようになります。

zsh プロンプトのテキストに色を追加する

ターミナルアプリを色で変更する以外に、Mac の zsh プロファイルのテキストに色を追加して、視覚的に見やすくすることができます。ターミナルを起動して .zshrc プロファイルを開きます。

nano ~/.zshrc

Z シェルは、背景を補完するためにプロンプトテキストに色とグレースケールをサポートしています。これらの選択肢から前景色 (テキスト) の色を選択できます: 黒、白、黄色、緑、赤、青、シアン、マゼンタ。使い方はこちらです。

PROMPT='%F{cyan}%n%f:~$'

特定の zsh カラーシェードを選択する場合は、ターミナルがサポートする 256 の 8 ビットカラーから選択できます。カラーの数値を使用する方法はこちらです。

PROMPT='%F{51}%n%f:~$'

色付けする関連テキストの間に%F%fのデフォルトの前景色変数を配置する必要があります。

zsh プロンプトに視覚効果を追加する

プロンプトのテキストに色を付けるだけでは物足りない場合は、zsh プロンプトをハイライトして、テキストの壁の中で目立つようにすることができます。まず、zsh プロンプトを太字にすることができます。

PROMPT='%B%F{51}%n%f%b:~$'

%Bを先頭に、%bを関連テキストの最後に追加すると、太字になります。

同様に、%Sを先頭に、%sを最後に配置して、テキストをハイライトすることができます。ハイライトは、%S%s変数の間に表示されるように選択した色になります。

PROMPT='%S%F{51}%n%f%s:~$'

zsh プロンプトのテキストに下線を引くこともできます。プロンプトに下線を付けるには、%U変数を先頭に、%uを関連テキストの最後に含めることができます。

PROMPT='%U%F{51}%n%f%u:~$'

zsh プロンプトから前回のログインの詳細を削除する

ターミナルアプリで前回のログイン時間を示す最上行を隠したり無効にしたりすると、zsh プロンプトがすっきりとした見た目になります。その情報を隠すには、次のコマンドを使用することができます。

touch ~/.hushlogin

次回ターミナルを開いたときには、zsh プロンプトの上に何も表示されません。

zsh のカスタマイズをリセットする

最初からやり直したい場合は、PROMPTまたはPS1変数をデフォルト値に設定することで行うことができます。

PROMPT="%n@%m %1~ %#"

RPROMPTを使用して zsh プロンプトの右側に情報を追加した場合は、.zshrc から削除します。

または、.zshrc ファイルのPROMPT/PS1RPROMPT変数を安全に削除することもできます。ご安心ください、.zshrc ファイルの設定は現在のユーザープロファイルにのみ適用されます。2 つを削除すると、/etc/zshrcの Z シェルのシステムファイルに保存されているデフォルト設定が使用されます。

これで、zsh プロンプトをカスタマイズする方法の詳細がすべて揃ったので、少し試して自分だけのものにしてみてください。太字、下線、短縮、さらにはより多くの情報を追加することもできます。変更に満足できない場合は、いつでもすぐにデフォルトの外観に戻すことができます。