2012-10-15 39 views
0

我正在使用bash,但仍不熟悉.profile,.bashrc,.bash_profile之間的區別。在bash提示符下顯示

我希望的結果是讓我的bash提示符顯示紅寶石版本和rvm gemset

我加入PS1="\$(~/.rvm/bin/rvm-prompt) $PS1"(通過Xcode中)對.bash_profile並顯示

ruby-1.9.3-p286 John-MacBook-Air:~ john$ 

我試圖讓是

[email protected] $ 

隨着 「Rails3中」 是的rvm gemset輸出。

如何從提示中刪除John-MacBook-Air:~ john

我嘗試在.profile和.bashrc中添加一行但沒有運氣,但似乎在.bash_profile中工作。任何澄清這些文件之間將不勝感激。我在Mac上運行rvm。

SOLUTION

包括以下到的.bash_profile

PS1='\W \$ ' 
PS1="\$(~/.rvm/bin/rvm-prompt) $PS1" 

提示貌似

[email protected] ~ $ 

回答

3

這條線的問題是:

PS1="\$(~/.rvm/bin/rvm-prompt) $PS1" 

你說什麼就有什麼「加我RVM提示PS1」,然後把預先存在的PS1末。該系統的默認PS1是設置這樣的:

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

在該環境中\h是主機名(這裏「約翰 - 的MacBook空中」),\W是你的home目錄當前工作目錄簡稱~\u是你的用戶的登錄名(在這裏「約翰」)和\$將顯示美元符號,如果你是一個普通用戶,如果你以root身份登錄的井號(#)。在OSX上,默認設置爲/etc/bashrc。如果你想改變的提示,你需要自定義提示的後半部分,而不僅僅是重新進入$PS1因爲是回新設置。卸下主機名是常見的,但我會非常強烈建議刪除當前工作目錄。在終端會話中,這是非常有用的信息。只是我的兩分錢。

要查看您可以放在那裏,請查看關於setting your prompt in Bash的信息。

+0

正是我一直在尋找。感謝關於保留工作目錄的建議,我開始看到它的有用性和重要性。我已將我的解決方案添加到原始問題帖子中。 – FluxEngine

2

我使用bash的工作,並與之間的區別還很陌生.profile,.bashrc,.bash_profile。

這取決於您的系統配置。閱讀該手冊。您也可以通過從另一個包括一個系統或用戶範圍來改變行爲。

這裏有一些筆記要更好地理解。

  • 每次登錄初始化。(或:會話啓動)有些啓動文件僅對登錄shell執行。在我的系統中,他們只設置環境變量。 (這是有道理的,因爲環境變量是繼承的)。 對於普通的sh,可以稱爲/etc/profile~/.profile。如果bash是您的外殼,並且您有~/.bash_profile~/.bash_login,則它將優先選擇那些(按此順序),而不是默認設置。 請注意,在下次登錄之前,會話啓動文件的更改不會生效。此外,您需要確保將變量導出到環境中,如PS1=something ; export PS1
  • 每個進程的初始化。對於Plain sh,沒有默認的每進程初始化文件,但可以將ENV環境變量設置爲指向一個。對於bash,還有BASH_ENV變量和~/.bashrc文件。每進程初始化文件是可以存儲每進程shell設置(無法在環境中繼承的那些設置)的地方,例如,別名或函數定義。

如果你只是想看看,如果執行一個特定的文件,你可以隨時呼應的東西,或接觸某些文件像echo TESTtouch /tmp/test