Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

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\] $ '
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした