我想在我的 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)。
几点补充说明:
- 文件前面的句点默认将其标记为对 Finder 和 ls 命令不可见。要使用终端中的 ls 命令列出不可见文件,请使用
-a
作为参数,如下所示:ls -a
- 该
~
符号代表/Users/YourUserName
YourUserName 是您的用户名的简称。
编辑: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"