bash Linuxシェルは、プロンプトにさまざまな機能を組み込むだけでなく、さまざまな色でそれらを区別するために使用できる、プロンプトの多くのカスタマイズオプションを提供します。
この記事では、さまざまな例を使用して、ターミナルアプリケーションのプロンプトをカスタマイズおよび色変更し、ニーズに応じて同じことを実行できるようにします。この記事で説明されているコマンドと手順は、Debian10Busterシステムにあります。
現在のBashプロンプト構成の表示
Debian Application Launcher検索でターミナルを開くと、次のようなプロンプトが表示されます。
[email protected]:directory$
このデフォルトの形式では、ユーザー名、ホスト名、そしてユーザーの現在のディレクトリが一覧表示されます。 bashは、ホームディレクトリ内のすべてのユーザーに対して個別に設定されたbashrcファイルからこの構成を取得します。このファイルを開く方法は次のとおりです。
$ nano ~/.bashrc
場所:/home/username/.bashrc
他のテキストエディタを使用してこのファイルを開くこともできます。
この構成ファイルは次のようになります。ここにファイルの関連部分を示しています。
上の画像に表示されているPS1変数には、bashプロンプトに必要なすべての構成が含まれています。まず、この変数の文字が何を示しているかを説明しましょう。この変数は、elseステートメントの後にリストされているPS1変数で明確に表示できます。
- \u-これは現在のユーザーのユーザー名を示します
- \ h:これは、完全修飾ドメイン名から抽出された現在のユーザーのホスト名を示します。
- \ w:これは現在の作業ディレクトリを示します。ホームディレクトリはチルダ〜記号で示されます。
- \ $]は、通常のユーザー($)かrootユーザー(#)かを示します。
次のように値をエコーすることで、PS1変数の構成を表示することもできます。
$ echo $PS1
Bashプロンプトをカスタマイズする
プロンプト情報が格納されている場所とPS1変数の説明を確認したら、bashプロンプトをカスタマイズするためにプロンプト情報を編集する方法を見てみましょう。
PS1変数を編集する前に、デフォルトの内容を新しい変数に保存することが重要です。これは、問題が発生した場合にプロンプトを元の構成に復元するのに役立ちます。ターミナルで次のコマンドを入力します:
$ DEFAULT=$PS1
これで、変数「DEFAULT」には、デフォルトのプロンプト設定を復元するために必要なすべての情報が含まれています。
PS1変数を試してみましょう。次のコマンドを入力します:
$ PS1="\u\$ "
PS1のこの新しい値は、プロンプトに次の影響を及ぼします。
色情報がまだ設定されていないため、色なしでユーザー名とrootユーザー情報のみを表示できます。
次のコマンドを入力して、プロンプトに作業ディレクトリも表示されるようにします
$ PS1="\u:\w\$ "
PS1のこの新しい値は、プロンプトに次の影響を及ぼします。
私の作業ディレクトリはホームだったので、〜記号しか見えませんでした。他のディレクトリ、たとえば「写真」では、プロンプトに次の情報が表示されます。
プロンプトをデフォルトに戻す
PS1変数の元の構成をDEFAULT変数に保存したので、デフォルト変数の値をフィードすることにより、PS1の値をデフォルトに戻すことができます。
他に何をカスタマイズできますか?
プロンプトに特定のカスタムテキストを含める場合 、次の構文を使用できます:
$ PS1="[custom text] \[email protected]\h:\w\$ "
例:
次のようにカスタムメッセージを含めるようにプロンプトを設定しました:
プロンプトには、次の基本文字を組み込むことができます。
キャラクター | 目的 |
\ d | 日月の日付形式の日付。 |
\ e | ベルのキャラクター。 |
\ a | エスケープ文字。 |
\ h | 「。」までの現在のユーザーのホスト名 |
\ H | 現在のユーザーのホスト名。 |
\ l | 端末デバイスのベース名。 |
\ j | シェルによって実行されているジョブの数。 |
\ r | キャリッジリターン。 |
\ n | 新しい行。 |
\ u | 現在のユーザーのユーザー名。 |
\ v | Bashバージョン。 |
\! | 実行中のコマンドの履歴番号を出力します。 |
現在のシステム時刻を含めることができます 次のコマンドを使用してプロンプトで:
$ PS1=”\A\u: \w\$ “
PS1のこの新しい値は、プロンプトに次の影響を及ぼします。
コマンドの出力を含めるようにプロンプトをカスタマイズすることもできます。これにより、プロンプトに組み込むための無制限のオプションが提供されます。
構文:
$ PS1="\[email protected]\h on `[command]` \w\$ "
例:
この例では、現在のユーザーが属するプライマリグループの名前を含めるようにプロンプトを設定します。
$ PS1="\[email protected]\h on `id -gn` \w\$ "
バッシュプロンプトの色付け
プロンプトをカスタマイズした後、物事が少し混乱しているように見えるかもしれないことに気付くでしょう。明白な理由は、それらがすべて同じ色でリストされている場合、1つの機能を他の機能と区別するのはそれほど簡単ではないということです。それでは、プロンプトを色付けして見やすくする方法を学びましょう。
1つまたは複数の機能に色を追加するために、PS1変数にはカラータグが含まれています。次の画像で強調表示されているテキストはカラータグです。
これはカラータグの形式です:
\[\033[COLOR]m\]
たとえば、次のカラータグがあるため、デフォルトのターミナルプロンプトに表示されるデフォルトのユーザー名とホスト名は緑色です。
\[\033[01;32m\]\[email protected]\h
この色の値をbashプロンプト機能に対して変更して、新しい色を指定したり、色がない機能に新しい色タグを追加したりできます。
一般的な色とその値は次のとおりです。
色 | 値 |
緑 | 32 |
赤 | 31 |
黒 | 30 |
青 | 34 |
シアン | 36 |
紫 | 35 |
黄色 | 33 |
白 | 37 |
例:
次のコマンドは、カラータグで31(赤色)を指定しているため、プロンプトを赤色に変えます。
$ PS1="\[\033[31m\]\[email protected]\h:\w$ "
Bashプロンプトでテキストスタイルを使用する
カラータグに属性値を割り当てることにより、プロンプトテキストにスタイルを追加できます。属性を持つカラータグの形式は次のとおりです。
\ [\ 033 [ATTRIBUTE; COLORm \]
プロンプトテキストには、次の属性値を使用できます。
属性値 | 目的 |
0 | 通常のテキスト(属性が設定されていない場合でも、これはデフォルト値です) |
1 | Debianターミナルでは、この値は太字のテキストを指定します |
2 | 薄暗いテキスト |
4 | テキストの下線 |
5 | 点滅するテキストの場合 |
7 | テキストと背景色を反転します |
8 | 非表示のテキストの場合 |
例:
次のコマンドを使用して、bashプロンプトに下線を付けることができます。
$ PS1 =” \ [\ 033 [4; 31m \]\[メール保護]\h:\ w $”
値4は、テキストに「下線を引く」ことを示します。
プロンプトに永続的な変更を加える
これまでに実行したコマンドは、現在のbashセッションのプロンプトのみを変更します。テキストのカスタマイズとプロンプトの色付けを試し、すべてのbashセッションに永続的に設定する最終結果に達したら、bashrcファイルを編集する必要があります。
.bashrcファイルを開き、PS1行のif;の下にファイナライズしたPS1値をコピーします。次に行します。次の画像では、bashプロンプトの色を赤に変更しました:
Ctrl + Xを押してからYを押して、ファイルを保存します。これで、bashプロンプトへの変更が永続的になります。ターミナルを終了して再度開くと、bashプロンプトが設定したものと同じままであることがわかります。
このチュートリアルと一緒に練習した後は、bashプロンプトのカスタマイズに優れています。次に、プロンプトに組み込んださまざまな機能を区別するための色を設定できます。このようにして、bashプロンプトを使用するたびに、その有用な情報を表示して利用できるようになります。