Tech Racho エンジニアの「?」を「!」に。
  • インフラ

役に立つかもしれないbashプロンプトの3tips

ここで言うプロンプトはコマンド打つときにいつもでるアレです
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に書いておきましょう


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。