恥は/dev/nullへ by 初心者

プログラミング素人がのろのろと学んだことをつづっています♪

Macのターミナルでコマンドプロンプトを少し変更

Macのターミナルは、デフォルトだとコマンドプロンプトがちょっと寂しい状況です(「デフォルトだと」と書きつつzshからbashに変更してありますが)。 白地の背景に黒い文字のみで、カレントディレクトリ名は表示されているものの、パスが表示されていません。

そこで、

hoge@Neko:~/Documents/buta$

のように現在位置をパスで表示して、ちょっと色を付けることにしました。

下記のように、コマンドプロンプトの色や書式を変更するにはPS1という変数に内容をセットします。

export PS1='\e[32m\u@\h\e[0m:\e[38;5;56m\w\e[0m$ '


パーツの説明を書いておきます。

\u はユーザー名
\h はホスト名(Macの名前)
\w はカレントディレクトリのパス


次に色の説明です。

\e[32m とすることで、それ以降の文字色がグリーンになります。
この結果、\u@\hの部分がグリーンになります。

\e[0m  とすることで、それ以降の文字色が黒になります。
この結果、 : が黒になります。

\e[38;5;56m とすることで、それ以降の文字色がパープルになります。
この結果、\wの部分がパープルになります。

\e[0m  とすることで、それ以降の文字色が黒になります。
この結果、 $ が黒になります。


\e[38;5;56m だけ少し分かりにくいので補足します。

\e[38はこの後に2つの引数を取ります。ex. \e[38;N;Nm
1つ目の引数を5にすると、2つ目の引数で0〜255を使って色を指定できます。

\e[38;5;56m

この場合、0〜255のうち、56番目の色を指定しています。

しかし、それぞれがどんな色か分からないので以下のスクリプトを使って色を出力してみました。

for ((i = 0; i <= 255; i++)); do
    printf '\e[38;5;%dm%d ' $i $i
done

printf '\e[0m'

echo 


出力結果は次のとおりです。


これを参考にして56番目の色を選びました。