
ほとんどの Ubuntu システムは、デフォルトのターミナル アプリケーションとして bash または dash を使用します。標準のコマンド プロンプトでコマンドを入力すると、通常、ユーザー名、ホスト名、および現在のディレクトリが事前定義された配色で表示されます。 Bash にはコマンド プロンプト用の多くのカスタマイズ オプションが用意されており、プロンプトにさまざまな機能を追加できるだけでなく、さまざまな色でそれらを区別することもできます。
この記事では、さまざまな例を使用して、ターミナル アプリケーションのコマンド プロンプトをカスタマイズし、色を変更して、必要に応じて同じことができるようにします。この記事で説明されているコマンドと手順を Ubuntu 22.04 LTS システムで実行します。
現在の Bash プロンプト構成を表示
Dash または Ctrl+Alt +T ショートカットでターミナルを開くと、次のようなプロンプトが表示されます:
example@unixlinux.online:directory$

このデフォルト形式では、ユーザー名、ホスト名、およびユーザーの現在のディレクトリがリストされます。 bash は、ホーム ディレクトリ内のすべてのユーザーに対して個別に設定された bashrc ファイルからこの構成を取得します。このファイルを開く方法は次のとおりです:
$ nano ~/.bashrc
場所:/home/username/.bashrc
他のテキスト エディタを使用してこのファイルを開くこともできます。
これは、この構成ファイルがどのように見えるかです。ここでは、ファイルの関連部分を示しています。

上の画像に表示されている PS1 変数には、bash プロンプトに必要なすべての構成が含まれています。まず、この変数の文字が何を示しているかを説明しましょう。この変数は、else ステートメントの後にリストされている PS1 変数で明確に確認できます。
- \u-これは現在のユーザーのユーザー名を示します
- \h:これは、完全修飾ドメイン名から抽出された現在のユーザーのホスト名を示します。
- \w:現在の作業ディレクトリを示します。ホーム ディレクトリはチルダ ~ 記号で示されます。
- \$:これは、通常のユーザー ($) またはルート ユーザー (#) であるかどうかを示します。
PS1 変数の構成は、次のように値をエコーして表示することもできます:

シェル プロンプトをカスタマイズする
プロンプト情報が保存されている場所と PS1 変数の説明を確認したら、bash プロンプトをカスタマイズするために変数を編集する方法を見てみましょう。
PS1 変数を編集する前に、デフォルトの内容を新しい変数に保存することが重要です。これは、何か問題が発生した場合に、プロンプトを元の構成に復元するのに役立ちます。ターミナルで次のコマンドを入力してください:
$ DEFAULT=$PS1
これで、変数「DEFAULT」に、デフォルトのプロンプト設定を復元するために必要なすべての情報が含まれています。
PS1 変数を使って実験してみましょう。次のコマンドを入力してください:
$ PS1="\u\$ "
PS1 のこの新しい値は、プロンプトに次の影響を与えます:

色情報がまだ設定されていないため、色なしでユーザー名とルート ユーザー情報のみを表示できます。
次のコマンドを入力して、プロンプトに作業ディレクトリも表示されるようにしましょう
$ PS1="\u:\w\$ "
PS1 のこの新しい値は、プロンプトに次の影響を与えます:

私の作業ディレクトリはホームだったので、~ 記号しか見えませんでした。他のディレクトリ (bin など) では、プロンプトに次の情報が表示されます:

プロンプトをデフォルトに戻す
PS1 変数の元の構成を DEFAULT 変数に保存したので、DEFAULT 変数の値をフィードすることで、PS1 の値をデフォルトに戻すことができます。

他に何をカスタマイズできますか?
プロンプトに特定のカスタム テキストを含める場合 、次の sytanx を使用できます:
$ PS1="[custom text] \example@unixlinux.online\h:\w\$ "
例:
次のように、カスタム メッセージを含めるようにプロンプトを設定しました:

次の基本的な文字をプロンプトに組み込むことができます:
| キャラクター | 目的 |
| \d | 日月日形式の日付。 |
| \e | ベルのキャラクター。 |
| \a | エスケープ文字。 |
| \h | 「.」までの現在のユーザーのホスト名 |
| \H | 現在のユーザーのホスト名。 |
| \l | 端末デバイスのベース名。 |
| \j | シェルによって実行されているジョブの数。 |
| \r | キャリッジ リターン。 |
| \n | 改行 |
| \u | 現在のユーザーのユーザー名。 |
| \v | Bash のバージョン。 |
| \! | 実行中のコマンドの履歴番号を出力します。 |
現在のシステム時刻を含めることができます 次のコマンドを使用してプロンプトで:
$ PS1=”\A\u: \w\$ “
PS1 のこの新しい値は、プロンプトに次の影響を与えます:

コマンドの出力を含めるようにプロンプトをカスタマイズすることもできます。これにより、プロンプトに組み込むための無制限のオプションが提供されます。
構文:
$ PS1="\example@unixlinux.online\h on `[command]` \w\$ "
例:
この例では、現在のユーザーが属するプライマリ グループの名前を含むようにプロンプトを設定します。
$ PS1="\example@unixlinux.online\h on `id -gn` \w\$ "

プロンプトに色を付ける
プロンプトをカスタマイズした後、物事が少しめちゃくちゃに見えるかもしれないことに気付くでしょう。単純な理由は、それらがすべて同じ色でリストされている場合、ある機能を他の機能と区別するのがあまりにも簡単ではないということです.次に、プロンプトをより見やすくするために色を付ける方法を学びましょう。
1 つまたは複数の機能に色を追加するために、PS1 変数には色タグが含まれています。次の画像で強調表示されているテキストはカラー タグです。

これはカラータグのフォーマットです:
\[\033[COLOR]m\]
たとえば、デフォルトのターミナル プロンプトに表示されるデフォルトのユーザー名とホスト名は、次のカラー タグにより緑色になっています。
\[\033[01;32m\]\example@unixlinux.online\h
この色の値を bash プロンプト機能に対して変更して、新しい色を指定したり、新しい色タグを持たない機能に新しい色タグを追加したりできます。
一般的な色とその値は次のとおりです:
| 色 | 価値 |
| 緑 | 32 |
| レッド | 31 |
| ブラック | 30 |
| ブルー | 34 |
| シアン | 36 |
| 紫 | 35 |
| イエロー | 33 |
| ホワイト | 37 |
例:
次のコマンドは、color タグで 31 (赤色) を指定しているため、プロンプトを赤色にします:
$ PS1="\[\033[31m\]\example@unixlinux.online\h:\w$ "

プロンプトでテキスト スタイルを使用する
色タグに属性値を割り当てることで、プロンプト テキストにスタイルを追加できます。属性を持つ色タグの形式は次のとおりです:
\[\033[ATTRIBUTE; COLORm\]
プロンプト テキストには次の属性値を使用できます:
| 属性値 | 目的 |
| 0 | 通常のテキスト (属性が設定されていない場合でも、これはデフォルト値です) |
| 1 | Ubuntu ターミナルでは、この値は太字のテキストを指定します |
| 2 | 暗いテキスト |
| 4 | テキストの下線 |
| 5 | 点滅テキストの場合 |
| 7 | テキストと背景の色を反転 |
| 8 | 隠しテキスト用 |
例:
次のコマンドを使用して、bash プロンプトに下線を引くことができます:
$ PS1="\[\033[4;31m\]\example@unixlinux.online\h:\w$ "
値 4 は、テキストに「下線」を付けたいことを示します。

プロンプトに恒久的な変更を加える
これまでに実行したコマンドは、現在の bash セッションのプロンプトのみを変更します。プロンプトのテキストのカスタマイズと色付けを試し、すべての bash セッションに永続的に設定したい最終段階に達したら、bashrc ファイルを編集する必要があります。
.bashrc ファイルを開き、ファイナライズした PS1 値を if; の下の PS1 行にコピーします。次にライン。次の画像では、bash プロンプトの色を赤に変更したところです:

Ctrl+X を押してファイルを保存します 次に Y を押します .これで、bash プロンプトへの変更が永続的になります。ターミナルを終了して再度開き、bash プロンプトが設定したとおりであることを確認します。

このチュートリアルに従って練習した後は、bash プロンプトのカスタマイズに秀でることができます。次に、プロンプトに組み込んださまざまな機能を区別するための色を設定できます。このようにして、bash プロンプトを使用するたびに、その有用な情報を表示して利用することができます。