在 bash 提示符下显示



我正在使用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.
  • 按进程初始化。对于 Plainsh,没有默认的每进程初始化文件,但您可以将ENV环境变量设置为指向一个。对于bash,还有BASH_ENV变量和~/.bashrc文件。每进程初始化文件是可以存储每进程 shell 设置(无法通过环境继承的设置)的地方,例如别名或函数定义。

如果您只想查看是否执行了特定文件,您可以随时回显某些内容,或触摸某些文件,例如echo TESTtouch /tmp/test.

相关内容

  • 没有找到相关文章

最新更新