2012-10-15 37 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