我想在我的Snow Leopard机器上安装rvm。
它说我需要在.bashrc
文件中添加一行(我正在使用bash),但是.bashrc
文件在哪里?
我想在我的Snow Leopard机器上安装rvm。
它说我需要在.bashrc
文件中添加一行(我正在使用bash),但是.bashrc
文件在哪里?
Answers:
关于.bashrc
以上问题:
在大多数系统上,~/.bashrc
仅在启动交互式非登录 shell时使用。但是,当您启动一个新的外壳程序时,它通常是一个交互式登录外壳程序。由于这是一个登录外壳程序,因此将.bashrc
被忽略。要使非登录外壳程序和登录外壳程序之间的环境保持一致,必须.bashrc
从.profile
或中获取.bash_profile
。
请参见《 Bash参考手册》的第6.2节“ Bash启动文件”
作为交互式登录shell或--login调用
当Bash作为交互式登录shell或使用--login选项作为非交互式shell调用时,它首先从文件/ etc / profile中读取并执行命令(如果该文件存在)。读取该文件后,它将按该顺序查找〜/ .bash_profile,〜/ .bash_login和〜/ .profile,并从存在且可读的第一个命令中读取并执行命令。
作为交互式非登录外壳程序调用
启动不是登录外壳程序的交互式外壳程序时,如果该文件存在,则Bash从〜/ .bashrc读取并执行命令。
因此,通常,您的〜/ .bash_profile包含以下行
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
在任何特定于登录的初始化之后(或之前)。
在我的Mac(Running Leopard)上,没有源可提供~/.bashrc
。我必须自己添加此功能。
在某些系统和其他OS上,它们.bashrc
是从全局/etc/profile
或来源获得的/etc/bash_profile
,或者是使用的模板文件来完成的/etc/skel
。
说实话之间的区别.bashrc
,并.bash_profile
没有很好地得到社会的理解。当许多开发人员说“将其添加到您的.bashrc中”时,他们真正的意思是“将其添加到您的.bash_profile中”。他们希望将功能添加到您的登录外壳程序(.bash_profile
),而不是非登录外壳程序中。实际上,这通常并不重要,.bashrc
可以接受放置配置。
因此事实证明,在Mac OS X Snow Leopard和Mac OS X Lion上,已加载的文件称为.profile
,而不是.bashrc
。
您要执行的操作是在其中创建一个文件,~/.profile
并将其命名为.profile(如果尚不存在)。
将您需要加载的所有信息放入每个bash实例中(谢谢,紫色像素)。
一些注意事项:
-a
像这样使用as作为参数:ls -a
~
符号代表/Users/YourUserName
YourUserName是用户名的简称。编辑:克里斯·佩奇(正确的注释)指出,将.profile文件中放置的任何内容都将应用于您正在使用的任何外壳程序(即zhs,bash等)。如果您希望内容仅影响bash shell,请将内容放置在.bash_profile
文件中而不是.profile
文件中。
.bash_profile
您的主目录中已经存在一个.profile
文件,则不会读取该文件!
你必须自己做.bashrc
。您可以简单地使用文本编辑器创建一个.bashrc
包含所需内容的文件(无扩展名)并将其保存在主目录(/Users/YourUserName/
)中。
.bashrc
将起作用,但前提是没有.profile
。我想~/.profile
默认存在。很高兴我能帮上忙!(并且您应该将解决方案放入答案中,并让以后的读者接受该问题)。
我发现在OS 10.6.5中,bash设置位于“ / etc / bashrc”中。我认为这是shell的顶级规范。
但是,您需要一个root帐户才能对其进行修改。每个用户的本地规范“〜/ .bashrc”应以以下代码段开头,以读取和加载系统级bash设置:
if [ -r /etc/bashrc ]; then
. /etc/bashrc
fi
我通常在系统级bashrc中添加别名,以便所有用户也可以访问它们。除非他们不想使用您的快捷方式和别名。
祝好运!
~/.bashrc
,而不是/etc/bashrc
。/etc/bashrc
是系统上所有用户的全局设置,可能不是您想要的。此外,Apple可能会出现并/etc/bashrc
定期更改,这可能会破坏您的自定义设置。
使用.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"