在哪里可以找到 Mac OS X Snow Leopard 和 Lion 上的 .bashrc 文件?

Yuv*_*val 96 terminal bash osx-snow-leopard .bash-profile osx-lion

我想在我的雪豹机器上安装 rvm。

它说我需要在我的.bashrc文件中添加一行(我正在使用 bash)但是我的.bashrc文件在哪里?

Ste*_*ski 82

关于.bashrc上面的问题:

在大多数系统上,~/.bashrc仅在启动交互式非登录shell 时使用。但是,当您启动一个新 shell 时,它通常是一个交互式登录shell。由于这是一个登录shell,因此.bashrc被忽略。为了使非登录 shell 和登录 shell 之间的环境保持一致,您必须.bashrc从您的.profile或您的.bash_profile.

请参阅 Bash 参考手册,第6.2Bash 启动文件

作为交互式登录 shell 调用,或使用 --login

当 Bash 作为交互式登录 shell 或作为带有 --login 选项的非交互式 shell 调用时,它首先从文件 /etc/profile 读取并执行命令(如果该文件存在)。读取该文件后,它会按顺序查找 ~/.bash_profile、~/.bash_login 和 ~/.profile,然后从第一个存在且可读的命令中读取和执行命令。

作为交互式非登录 shell 调用

当一个不是登录 shell 的交互式 shell 启动时,Bash 从 ~/.bashrc 读取并执行命令(如果该文件存在)。

因此,通常,您的 ~/.bash_profile 包含该行

   if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
Run Code Online (Sandbox Code Playgroud)

在任何特定于登录的初始化之后(或之前)。

在我的 Mac (Running Leopard) 上,没有一行可以获取~/.bashrc. 我不得不自己添加这个功能。

在某些系统和其他操作系统上,.bashrc来自全局/etc/profile/etc/bash_profile,或使用来自/etc/skel.

老实说,社区.bashrc.bash_profile不太了解和之间的区别。当许多开发人员说“将此添加到您的 .bashrc”时,他们真正的意思是“将此添加到您的 .bash_profile”。他们希望将功能添加到您的登录shell(即.bash_profile),而不是您的非登录shell。实际上,这通常无关紧要,放置配置.bashrc是可以接受的。


Yuv*_*val 64

所以,事实证明,在Mac OS X雪豹以及Mac OS X Lion中,这是加载正在调用该文件.profile,而不是.bashrc

您想要做的是在其中创建一个文件~/.profile并将其命名为 .profile (如果它尚不存在)。

把你需要用每个 bash 实例加载的任何信息放在那里(谢谢,thepurplepixel)。

几个边注:

  1. 默认情况下,文件前面的句点将其标记为对 Finder 和 ls 命令不可见。要使用终端中的 ls 命令列出不可见文件,请使用-a作为参数,如下所示:ls -a
  2. ~符号代表/Users/YourUserNameYourUserName 是您用户名的简称。

编辑:Chris Page 指出(正确地)您在 .profile 文件中放置的任何内容都将适用于您正在使用的任何 shell(即 zhs、bash 等)。如果您希望内容仅影响 bash shell,请将内容放在.bash_profile文件中而不是.profile文件中。

  • 您的问题已于 2010 年 6 月 1 日得到[正确]回答——在您提出问题的一天后。一年多后,您回来并提供完全相同的答案并接受您自己的答案...... (5认同)
  • 实际上,他的回答确实比 2010 年 6 月 1 日给出的答案添加了更多细节。他专门解决了 Mac OS X 上的问题,我认为这很有帮助。 (3认同)
  • 请注意,如果您的主目录中已经存在“.bash_profile”,则不会读取“.profile”文件! (3认同)