Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
98
Help us understand the problem. What is going on with this article?
@iwazer

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\] $ '
98
Help us understand the problem. What is going on with this article?
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
iwazer
http://profile.livedoor.com/ratt777/
mapion
ワンマイル・イノベーション・カンパニー  普段の買い物、子育て、学校、休日のお出かけや趣味・・身の回り(=ワンマイル)でおきることに着目して、最もユーザーに身近なところからイノベーションを起こしていく。ユーザーの生活圏内(=ワンマイル)でイノベーションを起こし続ける企業を目指していきます。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
98
Help us understand the problem. What is going on with this article?