LoginSignup
101
95

More than 5 years have passed since last update.

Bashのプロンプトを変える(OSX)

Last updated at Posted at 2013-01-24

Mac OS XはマルチユーザOSですが開発用に使う場合、自分専用であることがほとんどなのでTerminalのプロンプトに自分のアカウントが表示されてても特に嬉しくないですね。短いプロンプトの方がいい。

デフォルト

hostname:Desktop iwazer$ 

いらないものをトル

大昔の共有ホストじゃないんだしホスト名、ユーザ名要らない〜

PS1='\W $ '
Desktop $

これでカレントワーキングディレクトリの末端のみの表示になります。

パス出てないとイヤ

ホスト名、ユーザ名の代わりにディレクトリはパス(Home以下は相対だが)がいいという場合、小文字の\wにすればOK

PS1='\w $ '
~/Desktop/work $ 

いつもここから

~/.bash_profileに仕込んでおけば新しくTerminalを開くと同時に適用されます。

 :
export PS1='\W $ '

時間を出す

コマンドのおおまかな実行時間を知りたいとかよくありますね。プロンプトに時間が出てると便利かも!

export PS1='\W \t $ '

まぁ、これプロンプトが表示された時の時刻なので、コマンドをコピーしておいて、一度空打ちしてからペースト&実行しないと、開始時間として使えないわけですがあくまでも目安として。

ちゃんと実行時間を知るのが目的ならtime使えや(`・д・´)

色をつける

エスケープシーケンス使うと色が付きますが詳しいことはググれ…

export PS1='\[\033[40;1;32m\]\W \[\033[40;2;37m\]\t\[\033[0m\] $ '

Gitのブランチを出す キタ━(゚∀゚)━!

ちょっとまてよコレ、ナイスすぎるだろ。
https://cybozu.atlassian.net/wiki/pages/viewpage.action?pageId=3145730#Git&GitHub-現在のブランチをプロンプトで表示したい

しかし、そのままではMacのBashでは使えなかったので修正。

このコードは少々ダメなとこがあります。下に加筆あり

git_branch() {
  echo $(git branch 2>/dev/null | sed -ne "s/^\* \(.*\)$/\1/p")
}

そんなわけで、いまの私の設定はコレ

export PS1='\[\033[40;0;33m\]\W/ \[\033[40;2;37m\]\t\[\033[0m\] \[\033[40;1;32m\]$(git_branch)\[\033[0m\] $ '

gitプロジェクトフォルダであろうとなかろうと毎回、新しい行になるたびにgit branchが実行されるが、まぁ今のマシンは速いから (゚ε゚)キニシナイ!!

おまけ

ちなみにデフォルトの設定をわざわざ書くと

export PS1='\h:\W \u$'

こういうことです。

2013/04/13 追記

git-branchはたいてい色が付く設定で利用していると思われます。こんな感じ。

.gitconfig
[color]
    branch = always
    diff = always
    status = always
    interactive = always

ということは、上記のgit_branch関数はエスケープシーケンスが付いてる上にさらに付けようとしていた(-ω-)

なぜ気づいたかというと、会社のOSX Lionでは何の問題もなかったのに、自分のOSX Mountain LionだとBashで履歴マッチとかさせるとカーソルポジションがおかしくなってたから。

git-branchコマンドに--no-colorオプションを渡したら解決しました。

.bash_profile
git_branch() {
  echo $(git branch --no-color 2>/dev/null | sed -ne "s/^\* \(.*\)$/\1/p")
}

また、自分の設定はって紹介していたプロンプトも後ですぐに色を変えるのに無駄にリセットしてたり(背景色によっては必要かもですが)してるのが気になったので、現在の設定を書いておきます。

.bash_profile
export PS1='\[\033[0;33m\]\W/ \[\033[1;30m\]\t \[\033[1;32m\]$(git_branch)\[\033[0m\] $ '
101
95
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
101
95