Bash でコマンドプロンプトの色を設定するにはどうすればいいですか?

Bash でコマンドプロンプトの色を設定するにはどうすればいいですか?

Bash で最後のコマンドの結果を参照するのは、コマンド プロンプトと結果が同じ色であるため、少し困難です。これにより、連続するコマンドの結果を区別することが困難になります。

たとえば、色をピンクに変更するにはどうすればいいでしょうか?

答え1

@Rob は正しいです。具体的には、明るい赤に変更するには (ピンクは使用可能な色ではありません)、次の操作を行います。

PS1 = "\[\033[1;31m\]\u:\w\$\[\033[0m\] "
#      ^^^^^^^     ^^                    Begin/end ANSI escape
#             ^^^^^                      "light red foreground"
#                    ^^^^^^^             Your original prompt
#                           ^^^^^^^^^^^  Reset color back to default foreground

とで囲まれたANSI エスケープ シーケンス (この場合は1;31m、「明るい赤の前景」のコード)を使用する必要があります。\[\033[\]

編集:明るい紫色が希望の色に近いかもしれません。PS1変更は読者の課題として残しておきます。

Linux ドキュメント プロジェクトの参照

答え2

別の解決策が必要な場合は、ターミナル セッションの PS1 の色を永続的にせずに設定するための小さなスクリプトを作成できます (永続的な色を希望しない限り、Alex の解決策に従ってください)。

ディレクトリを作成しyellow.shて保存し/usr/bin、ファイルを実行可能にすると、chmod +x yellow.shを編集しyellow.shて次のコードを追加できます。

#!/bin/bash
clear

# Yellow color variable
ylw='\x1b[93m'

echo -e "${ylw}"
clear

このスクリプトを実行すると、ターミナルの色が黄色に変わります。次のコードを使用して、同様に PS1 の色をリセットできます。

#!/bin/bash
clear

# Reset color to default
rst='\x1b[0m'

echo -e "${rst}"
clear

以下に、使用できるカラーコード変数の簡単なリストを示します。

black=$'\x1b[90m' # Dark gray. Not used much.
red=$'\x1b[91m'
green=$'\x1b[92m'
yellow=$'\x1b[93m'
blue=$'\x1b[94m'
purple=$'\x1b[95m'
cyan=$'\x1b[96m'
pink=$'\x1b[97m'
default=$'\x1b[0m' # Reset to default color.

単純なスクリプト内での一般的なコマンドの使用法:

echo -e "${red} $(ls $1) ${default}" # Argument would be the directory you want to list.

これは、使用する色の設定方法に応じて、かなり迅速に行うことができます。私が提供した色コードはすべてではありません。端末がサポートする色に応じて、256 色の範囲を使用できます。

関連情報