ほとんどのLinuxディストリビューションは、Bashプロンプトを次のように構成します。
username @ hostname:directory $
。ただし、Bashプロンプトを構成して、好きなものを含めたり、好きな色を選択したりすることもできます。
ここでの手順の例は、Ubuntu 16.04LTSで実行されました。プロセスは他のLinuxディストリビューションでも同じである必要がありますが、デフォルトのBashプロンプトと.bashrcファイルの設定は少し異なる場合があります。
プロンプト変数が格納されている場所
Bashプロンプトの構成は、ユーザーアカウントの.bashrcファイルに保存されます。
〜/ .bashrc
。したがって、ユーザー名がbobの場合、ファイルは次の場所にあります。
/ほめ/ぼb/。ばshrc
。
ファイルを開いて、現在のBash変数を表示できます。サンプルのテキストエディタとしてnanoを使用しますが、使用することもできます。 我々 、emacs、またはその他の使い慣れたテキストエディタ。ターミナルを開いて実行します。
なの 〜/。ばshrc
下にスクロールして
Ψ1=
セクション。最初の変数には色情報が含まれているため、かなり複雑に見えます。これについては後で説明します。色情報のない2番目の変数は、次のようになります。
$ {debian_chroot:+($debian_chroot)} \ u @ \ h:\ w \ $
これは、
$9000003
ビット。これらは、Debian chroot環境を使用していて、通常は表示されないかどうかを通知するようにBashに指示するだけです。これらを無視すると、Bashプロンプト変数のデフォルトの構造は次のとおりです。
\ u @ \ h:\ w \ $
¥う
ユーザー名を示し、
@
@記号を示し、
\ h
ホスト名(コンピューター名)を示し、
:
:文字を示し、
\に
作業ディレクトリを示し、
¥$
通常のユーザーアカウントの場合は$を示し、rootの場合は#を示します。だから、それをすべてまとめると、あなたは
username @ hostname:working_directory $
。
Bashプロンプトを変更するには、PS1変数の特殊文字を追加、削除、または再配置するだけです。ただし、デフォルトの変数よりも多くの変数を使用できます。
今のところテキストエディタを終了します。nanoでは、Ctrl + Xを押して終了します。 .bashrcファイルに新しい変数を実際に書き込む前に、変数を試す方法を説明します。
カスタムBashプロンプトを作成する方法
Bashプロンプトの構成はPS1変数に保存されます。 PS1変数の内容を新しい変数に保存するには、次のコマンドを実行します。
DEFAULT = $ PS1
これで、PS1変数をさまざまな値に設定して実験することができます。たとえば、ここの最初の行はプロンプトを基本的な「user $」プロンプトに設定し、2番目の行はプロンプトを基本的な「user:working_directory $」プロンプトに設定します。
PS1 = "\ u \ $" PS1 = "\ u:\ w \ $"
デフォルトのプロンプトに戻したい場合は、次のコマンドを実行するだけです。
PS1 = $ DEFAULT
これらのデフォルト設定を以前に保存したため、Bashはデフォルトのプロンプトに復元されます。ここで行った変更は現在のBashセッションの一時的なものであるため、いつでもサインアウトして再度サインインするか、ターミナルウィンドウを閉じてから再度開いて、デフォルトのプロンプトに戻ることができます。ただし、上記の行を使用すると、サインアウトしたりウィンドウを閉じたりする手間をかけずに、デフォルトのBashプロンプトに簡単に戻ることができます。
変数には任意の文字またはテキストを追加できます。したがって、デフォルトのプロンプトの前に「Hello World」を付けるには、次を使用できます。
PS1 = "Hello World \ u @ \ h:\ w \ $"
基本を理解したので、すべての特殊文字が何であるかを知る必要があります。これらの多くはおそらく気にしないでしょうが、ここに表示される完全なリストがあります バッシュマニュアル :
-
ベル文字:
\ a -
「平日月日」形式の日付(例:「5月26日火曜日」):
\ d -
フォーマットはstrftime(3)に渡され、結果がプロンプト文字列に挿入されます。空の形式は、ロケール固有の時間表現になります。中括弧が必要です:
\ D{format} -
エスケープ文字:
¥え -
最初の「。」までのホスト名:
\ h -
ホスト名:
\ H -
シェルによって現在管理されているジョブの数:
\ j -
シェルの端末デバイス名のベース名:
\ l -
改行:
¥ん -
キャリッジリターン:
\ r -
シェルの名前、$ 0のベース名(最後のスラッシュに続く部分):
\ s -
時間、24時間HH:MM:SS形式:
\ t -
時間、12時間のHH:MM:SS形式:
\ T -
時刻(午前/午後12時間形式):
¥@ -
時間、24時間HH:MM形式:
\ A -
現在のユーザーのユーザー名:
¥う -
Bashのバージョン(例:2.00):
ev -
Bashのリリース、バージョン+パッチレベル(例:2.00.0):
EV -
$ HOMEがチルダで省略された現在の作業ディレクトリ($ PROMPT_DIRTRIM変数を使用):
\に -
$ PWDのベース名。$ HOMEはチルダで省略されています。
\に -
このコマンドの履歴番号:
¥! -
このコマンドのコマンド番号:
¥# -
有効なuidが0の場合、#、それ以外の場合は$:
¥$ -
ASCIIコードが8進値nnnである文字:
¥んん -
バックスラッシュ:
¥¥ -
印刷されない文字のシーケンスを開始します。これは、端末制御シーケンスをプロンプトに埋め込むために使用できます。
¥「 -
印刷されない文字のシーケンスを終了します。
¥」
したがって、日付と時刻をBashプロンプトに追加し、作業ディレクトリを2行目のコマンドに配置する場合は、次の構造を使用できます。
PS1 = "[\d \t] \ u @ \ h \ n \ w \ $"
ここの角かっこはまったく必要ありませんが、視覚的に物事を分割し、線を読みやすくするのに役立ちます。前に説明したように、任意のテキストまたは通常の文字を任意の変数に追加できるため、適切なものを自由に使用してください。
知っておくべきもう1つの強力なトリックがあります。それは、任意のコマンドの出力をプロンプトに追加できることです。プロンプトが表示されるたびに、Bashはコマンドを実行し、現在の情報を入力します。これを行うには、2つの間で実行するコマンドを含めるだけです。
`
文字。これはアポストロフィではありません。キーボードのTabキーの上に表示されるアクサングラーブです。
たとえば、プロンプトでLinuxカーネルのバージョンを表示するとします。次のような行を使用できます。
PS1 = "\ u @ \ h onʻuname -s -r` \ w \ $"
別の例として、システムの稼働時間と負荷の平均を表示したいとします。
稼働時間
コマンド。次の構造を使用できます。これにより、残りのプロンプトの前にアップタイムが独自の行に配置されます。
PS1 = "(ʻuptime`)\ n \ u @ \ h:\ w $"
さまざまな特殊文字やコマンドを自由に試して、理想的なコマンドプロンプトを組み立ててください。
Bashプロンプトに色を追加する方法
好みのプロンプトが決まったら、それに色を追加できます。これは実際には非常に単純ですが、何を見ているのか理解できないと、変数がひどく乱雑で複雑に見えるようになります。
たとえば、以前のデフォルトのカラープロンプト変数は次のとおりです。
$ {debian_chroot:+($debian_chroot)} \ [\033[01;32m\] \ u @ \ h \ [\033[00m\]:\ [\033[01;34m\] \ w \ [\033[00m\] \ $
または、debian_chrootビットをもう一度削除します。
\ [\033[01;32m\] \ u @ \ h \ [\033[00m\]:\ [\033[01;34m\] \ w \ [\033[00m\] \ $
これは実際には
\ u @ \ h:\ w $
以前とは異なりますが、色情報があります。実際、いくつかのセクションに分けることができます。
¥9000015\ u @ \ h¥9000016:¥9000017\に¥9000018¥$
最初のセクションは
\ u @ \ h
ビット、その前に緑色に変わる色情報があります。 2番目は
:
文字の前に、色を削除する色情報が表示されます。 3つ目は
\に
ビット、その前に青色に変わる色情報があります。 4番目は
¥$
ビット、前に色を削除する色情報があります。
独自のカラータグを作成する方法を理解したら、Bashプロンプトの任意のセクションに任意の色を追加できます。
知っておくべきことは次のとおりです。カラーコード情報全体を
¥「
そして
\] キャラクター
s。タグ内では、どちらかで始める必要があります
¥033「
または
¥え「
これが色情報であることをBashに示します。両方
¥033「
そして
¥え「
同じことをします。
¥え「
短いので使いやすいかもしれませんが、
¥033「
ここでは、デフォルトで使用されているものと一致します。タグの最後で、で終わる必要があります
m \
カラータグの終わりを示します。
これを分解すると、すべてのカラータグは次のようになります。唯一の違いは、実際の色を定義するためにCOLORの代わりに追加する情報です。
¥「¥033「色m \]
Bashを使用すると、前景テキストの色を変更したり、テキストに「太字」や「下線」などの属性を追加したり、背景色を設定したりできます。
前景テキストの値は次のとおりです。
- 黒:30
- 青:34
- シアン:36
- 緑:32
- 紫:35
- 赤:31
- 白:37
- 黄色:33
たとえば、紫色のテキストはカラーコード32であるため、次のように使用します。
¥「¥033「
32
m \]
紫色のテキストの場合。
テキストの属性を指定することもできます。この属性は、色番号の前にセミコロン(;)で区切って追加する必要があります。これらの属性を持つテキストは、ターミナルエミュレーターによって外観が異なります。
テキスト属性の値は次のとおりです。
- 通常のテキスト:0
- 太字または薄いテキスト:1(端末エミュレーターによって異なります。)
- 薄暗いテキスト:2
- 下線付きのテキスト:4
- 点滅テキスト:5(これはほとんどのターミナルエミュレーターでは機能しません。)
- 反転テキスト:7(これにより、前景色と背景色が反転するため、現在のテキストが黒の背景に白のテキストである場合、白の背景に黒のテキストが表示されます。)
- 隠しテキスト:8
実際には、通常のテキスト属性を含める必要はありません。とにかく、これがデフォルトです。
たとえば、赤いテキストはコード31で、太字のテキストはコード1なので、次のように使用します。
¥「¥033「
1;31
m \]
太字の赤いテキストの場合。
背景色を指定することもできますが、背景色に属性を追加することはできません。
背景色の値は次のとおりです。
- 黒の背景:40
- 青い背景:44
- シアンの背景:46
- 緑の背景:42
- 紫の背景:45
- 赤い背景:41
- 白い背景:47
- 黄色の背景:43
たとえば、青い背景はコード44なので、
¥「¥033「
44
m \]
青い背景を指定します。
前景色と背景色の両方のタグを指定できます。たとえば、42は緑の背景を表し、31は赤のテキストを表します。したがって、デフォルトのプロンプトを緑の背景に赤のテキストにするには、次を使用します。
Ψ1= "\ [\ 033 [42m \] \ [\ 033 [31m \] \ u @ \ h:\ w \ $ "
ここでは、単一の背景色を指定してから、単一の前景色テキストの色を指定します。これは、プロンプトの開始時に始まり、プロンプト内のすべてのテキストに適用されます。ただし、変数に必要な数のカラータグを指定して、プロンプトのさまざまなセクションに好きなように色を付けることができます。
カラーコード00を指定しない限り、背景と前景のテキストの色はプロンプトを通過し続け、色情報をクリアします。変数内でこのタグを使用して、プロンプトのどこかでフォーマットをデフォルトにリセットすることもできます。たとえば、次の行は、
¥$
キャラクター。
Ψ1= "\ [\ 033 [42m \] \ [\ 033 [31m \] \ u @ \ h:\ w \\ [\ 033 [00m \] \ $ "
新しいデフォルトのプロンプトを設定する方法
色の実験が終了すると、現在のセッションで好きなBashプロンプトが表示されます。ただし、新しいプロンプトを永続的にして、すべてのBashセッションで自動的に使用されるようにすることをお勧めします。
これを行うには、前に見た.bashrcファイルのPS1変数の内容を変更する必要があります。
次のように、お好みのテキストエディタで.bashrcファイルを開きます。
なの 〜/。ばshrc
下にスクロールして、PS1 =セクションを見つけます。デフォルトの変数をカスタマイズした変数に置き換えるだけです。あなたはおそらく去りたいと思うでしょう
$9000019
ただし、ビットだけです。とにかく、chroot環境にいない限り表示されません。
下に色付きのPS1変数を入力します
[ "$color_prompt" = yes ]の場合;その後
ライン。下に色なしで変数を入力します
そうしないと
ライン。
ファイルを保存して、テキストエディタを閉じます。たとえば、ファイルをnanoで保存するには、Ctrl + Oを押し、Enterを押してから、Ctrl + Xを押して終了します。
次回、ターミナルでサインインしたり、新しいターミナルウィンドウを開いたりして、新しいBashシェルを起動すると、カスタマイズされたプロンプトが表示されます。