我正在使用bash,但仍然不熟悉.profile
,.bashrc
,.bash_profile
之间的区别。
我想要的结果是让 ruby 版本和rvm gemset
出现在我的 bash 提示符上。
我PS1="$(~/.rvm/bin/rvm-prompt) $PS1"
添加到.bash_profile(通过 xcode),它会显示
ruby-1.9.3-p286 John-MacBook-Air:~ john$
我想得到的是
ruby-1.9.3-p286@rails3 $
"rails3"是rvm gemset
的输出。
如何从提示中删除John-MacBook-Air:~ john
?
我尝试在 .profile 和 .bashrc 中添加该行,但没有运气,但它似乎在.bash_profile中有效。 这些文件之间的任何澄清将不胜感激。 我在 Mac 上运行 rvm。
溶液
在.bash_profile中包括以下内容
PS1='W $ '
PS1="$(~/.rvm/bin/rvm-prompt) $PS1"
提示看起来像
ruby-1.9.3-p286@rails3 ~ $
这一行是问题所在:
PS1="$(~/.rvm/bin/rvm-prompt) $PS1"
你说的是"将我的 rvm 提示符添加到 PS1",然后将预先存在的PS1
放在最后。系统的默认PS1
是设置以下内容:
PS1='h:W u$ '
在该设置中,h
是主机名(此处为"John-MacBook-Air"),W
是当前工作目录,您的主目录缩写为~
,u
是您用户的登录名(此处为"john"),如果您是普通用户,$
将显示美元符号,如果您是以 root 身份登录,则会显示八角星 (#
)。在OSX上,这是默认在/etc/bashrc
中设置的。如果要更改提示,则需要自定义提示的后半部分,而不是像现在一样重新输入$PS1
回到新设置中。删除主机名很常见,但我强烈建议不要删除当前工作目录。在终端会话中,这是非常有用的信息。只有我的两分钱。
要查看您可以在那里放置什么,请查看有关在 Bash 中设置提示的信息。
我正在使用bash,但仍然不熟悉.profile,.bashrc.bash_profile之间的区别。
这取决于您的系统配置。请阅读手册页。您还可以通过包含其中一个来更改系统范围或用户范围的行为。
这里有一些注意事项可以更好地理解。
-
每次登录初始化。(或:会话启动) 有些启动文件只对登录 shell 执行。在我的系统上,他们只设置环境变量。(这是有道理的,因为环境变量是继承的)。 这些可以称为
/etc/profile
或~/.profile
,用于普通sh
。如果bash
是你的 shell,并且你有~/.bash_profile
或~/.bash_login
,默认情况下,它将首选那些(按此顺序)。 请注意,在下次登录之前,对会话启动文件的更改不起作用。此外,您需要确保将变量导出到环境中,例如PS1=something ; export PS1
. -
按进程初始化。对于 Plain
sh
,没有默认的每进程初始化文件,但您可以将ENV
环境变量设置为指向一个。对于bash
,还有BASH_ENV
变量和~/.bashrc
文件。每进程初始化文件是可以存储每进程 shell 设置(无法通过环境继承的设置)的地方,例如别名或函数定义。
如果您只想查看是否执行了特定文件,您可以随时回显某些内容,或触摸某些文件,例如echo TEST
或touch /tmp/test
.