ここで言うプロンプトはコマンド打つときにいつもでるアレです
bashではPS1
変数で変更できます
知っておくと便利かもしれないtipsを3つ紹介
1. 色を付けられる
プロンプトもターミナルで表示されるのでエスケープシーケンスが使えます
設定方法は簡単で
\[\033[カラーコードm\]
と\[\033[00m\]
で囲むだけです
カラーコードはこんな感じです
Black 0;30 Dark Gray 1;30
Blue 0;34 Light Blue 1;34
Green 0;32 Light Green 1;32
Cyan 0;36 Light Cyan 1;36
Red 0;31 Light Red 1;31
Purple 0;35 Light Purple 1;35
Brown 0;33 Yellow 1;33
Light Gray 0;37 White 1;37
背景色も指定できるのでいろいろ試してみると面白いです
参考リンク: http://archive.linux.or.jp/JF/JFdocs/Bash-Prompt-HOWTO-5.html
文字色を緑にしたり青にしたり、背景色を赤にしてみたり
PS1='\[\033[01;32m\]Green\[\033[00m\]\[\033[01;34m\]Blue\[\033[00m\]\$ '
PS1='\[\033[41;01;32m\]Green BG=red\[\033[00m\]\[\033[01;34m\]Blue\[\033[00m\]\$ '
デモ
2. コマンドが使える
コマンドも使えます
$()
で囲めばいいだけです
沢山のコマンドを実行する場合はPROMPT_COMMAND
という環境変数に関数名を設定して
実行させることもできます
バックグラウンドジョブの数を表示する
バックグラウンドジョブの存在を忘れる人用
PS1='\u@\h:\w\$ \[\033[01;32m\][$(jobs|wc -l)]\[\033[00m\]'
gitリポジトリ内ならgitブランチ名,変更ファイル数を表示
gitリポジトリでない場合は何も表示しない
PS1='\u@\h:\w\$ \[\033[01;32m\]$(if git status &>/dev/null;then echo git[branch:$(git branch | cut -d" " -f2-) change:$(git status -s |wc -l)];fi)\[\033[00m\] '
デモ
3. 環境変数が使える
環境変数は現在のシェルと同様のものを参照できます
$SHLVL
や$?
も参照できます
現在のシェルの深さ$SHLVLを表示
(シェルの深さがわからなくなる人用)
前回のコマンドが失敗したら背景色を赤色にする
export PS1='\[\033[44;01;33m\]$SHLVL\[\033[00m\] \[\033[$(if [ "$?" != "0" ];then echo "41;";fi)01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
デモ
気に入った設定があったら.bashrcに書いておきましょう