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

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

我想在我的 Snow Leopard 机器上安装 rvm。

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

答案1

关于上述问题.bashrc

在大多数系统中,~/.bashrc仅在启动交互的未登录。然而,当你启动一个新的 shell 时,它通常是交互的登录. 由于这是登录shell 中,将.bashrc被忽略。要使非登录 shell 和登录 shell 之间的环境保持一致,您必须.bashrc从您的.profile或您的中获取.bash_profile

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

作为交互式登录 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

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

在我的 Mac(运行 Leopard)上,没有 source 行~/.bashrc。我不得不自己添加此功能。

在某些系统和其他操作系统上,.bashrc来源于全局/etc/profile/etc/bash_profile,或使用来自的模板文件完成/etc/skel

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

答案2

因此事实证明,在 Mac OS X Snow Leopard 以及 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文件中。

答案3

您必须自己制作.bashrc。您只需使用文本编辑器创建一个名为.bashrc(无扩展名) 的文件,其中包含您想要的内容,然后将其保存在您的主目录中(/Users/YourUserName/)。

答案4

使用 .profile 文件添加您想要添加到 linux .bashrc 文件的任何内容。

例如

PATH=/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/:/opt/local/bin:/opt/depot_tools/:~/bin:$PATH
alias t='/Users/<username>/.todo/todo.sh'
alias punch='python /Users/<username>/.todo/Punch.py'
alias clock='cat </dev/tcp/time.nist.gov/13'
alias sudotext="sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit" 

相关内容