はじめに
先日、イベント参加者の方より質問をいただき、自分もあまり手をつけたことをない領域でしたので備忘がてら、bashプロンプトの設定について残しておきたいと思います!
質問してもらったことは、私の環境できず…役立たずですみません。
最近Catalinaにアップデートして、標準がzshになっていたようで自分の環境で質問内容試そうとしたら、bashじゃねーじゃん!となったのはここだけのお話です…w
CentOSなどはBashですし、、、残しおきます!
※ サーバーとかの共有bashは変更したら迷惑かかるのでやらないように!
あくまでも個人環境でやってみてね。
確認環境
- MacOS(Catalina)
そもそもbashのカスタマイズ
エモい黒画面使ってたらカッコよくね?レベル…
例までに標準とカスタムしたものです。
■標準
■Bashカスタム
はい。
普通にエモいっすね。
これはみんな使いたがるレベル。経理のお姉さんがこんな画面で仕事してたら1撃で惚れます。
bash設定ファイル
ユーザーごとに設定する必要があります。
Macだとデフォルトでは見えないようになっているので、Finderの場合は⌘ + ⇧ + . (ピリオド)で表示します。
bashだと ls -aとかかな。
パス | 用途、実行タイミングなど |
---|---|
~/.bash_profile | bashがログインシェルとして起動されたときにのみ実行される。 オレオレエイリアスの宣言とか、プロンプトのカスタマイズはここで行ってます。 |
~/.bashrc | インタラクティブ(対話的)シェルの初めに読まれる。 シェル変数や環境変数、エイリアスなどユーザー環境の基本となる設定を記述するのが一般的らしい |
いまの設定値確認方法
Bashの場合PS1変数でプロンプトのフォーマットを指定しています。
とりあえず、以下のコマンドをぶったたく!
echo $PS1
ちなみに標準設定値は次のものとなっていました。
\h:\W \u\$
各設定値
PS1変数にどのような装飾をするか設定していきます。
設定する際の構造は次のような形になっています。
設定値 | 意味 |
---|---|
\a | ASCIIのベル文字(07)を表示する(ビープ音を鳴らす) |
\d | 「曜 日 月 日」の形式(例:Fri Jan 5)で日付を表示する |
\e | ASCIIのエスケープ文字(033)を表示する |
\h | ホスト名のうち最初の「.」までの部分を表示する |
\H | ホスト名を表示する |
\n | 改行する |
\r | 復帰する |
\s | シェルの名前を表示する |
\t | 現在の時刻を24時間の「HH:MM:SS」形式で表示する |
\T | 現在の時刻を12時間の「HH:MM:SS」形式で表示する |
\@ | 現在の時刻を12時間の「am/pm」形式で表示する |
\u | 現在のユーザー名を表示する |
\v | bashのバージョンを表示する |
\V | bashのリリースを表示する |
\w | 現在の作業ディレクトリをユーザーのホームディレクトリからの絶対パスで表示する |
\W | 現在の作業ディレクトリを表示する |
! | このコマンドの履歴番号を表示する |
# | このコマンドのコマンド番号(現在のシェルのセッション中に実行されたコマンドのシーケンスにおける位置)を表示する |
\$ | 一般ユーザーの時:$ rootの時:#を表示 (実効UIDが0の場合に#となり、それ以外の場合に$となる) |
\nnn | 8進数nnnに対応する文字を表示する |
\ | バックスラッシュを表示する |
[ | 非表示文字のシーケンスを開始する。これを使って、プロンプト中に端末の制御シーケンスを埋め込むことができる |
] | 非表示文字のシーケンスを終了する |
装飾設定値
効果 | 番号 |
---|---|
bold | 1 |
下線 | 4 |
反転 | 7 |
文字色 | 番号 | 背景色 | 番号 | bold体文字色 | 番号 |
---|---|---|---|---|---|
Black | 30 | Black | 40 | Dark Gray | 1;30 |
Blue | 34 | Blue | 44 | Light Blue | 1;34 |
Green | 32 | Green | 42 | Light Green | 1;32 |
Cyan | 36 | Cyan | 46 | Light Cyan | 1;36 |
Red | 31 | Red | 41 | Light Red | 1;31 |
Purple | 35 | Purple | 45 | Light Purple | 1;35 |
Brown | 33 | Brown | 43 | Yellow | 1;33 |
Light Gray | 37 | Light Gray | 47 | White | 1;37 |
設定方法
次のコマンドでbash設定ファイルを編集します。
vim ~/.bashrc
次は例ですが、PS1変数に設定する値を入力します。
(i キー押下で編集モードにします)
ここでは「太字緑でユーザー名 @ ホスト名 : 太字青でカレントフルパス ルートなら#それ以外なら$」と設定しています。
- [\e[色指定m] で色指定開始
- [\e[装飾;色指定m] で装飾と色指定開始
- [\e[m] で色指定リセット
PS1='\[\e[1;32m\]\u@\h\[\e[m\]:\[\e[1;34m\]\w\[\e[m\]\$ '
(escキー押下後)以下のコマンドで保存します。
:wq
設定ファイルの更新はできたので、設定内容を以下のコマンドで反映します。
source ~/.bashrc
調べてみて
なんかいろいろ省略されすぎてて、理解まで時間がかかる…
1度設定したらあまり触るものでもないので、どこまで時間かけて理解すべきものかなといった印象です…
Gitのデフォルトブランチを表示することもできるようなので、それは気が向いた時でも記事にしてみようかな。
こういうのしっかり設定しておくとスッと後ろ通った人に印象付けできそうw
ちなみに設定ミスるとまともにbash動かなくなるようなので、変だなと思ったらPS1変数を消してやり直してみましょう_:(´ཀ`」 ∠):