I want to install rvm on my Snow Leopard machine.
It says I need to add a line to my .bashrc file (I'm using bash) but where is my .bashrc file?
I want to install rvm on my Snow Leopard machine.
It says I need to add a line to my .bashrc file (I'm using bash) but where is my .bashrc file?
Regarding the problem with .bashrc above:
On most systems, ~/.bashrc is only used when starting an interactive non-login shell. However, when you start up a new shell it is often an interactive login shell. Since this is a login shell, the .bashrc is ignored. To keep the environment consistent between non-login and login shells, you must source the .bashrc from your .profile or your .bash_profile.
See the Bash Reference Manual, section 6.2 Bash Startup Files
Invoked as an interactive login shell, or with --login
When Bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable.
Invoked as an interactive non-login shell
When an interactive shell that is not a login shell is started, Bash reads and executes commands from ~/.bashrc, if that file exists.
So, typically, your ~/.bash_profile contains the line
if [ -f ~/.bashrc ]; then . ~/.bashrc; fiafter (or before) any login-specific initializations.
On my Mac (Running Leopard), there was no line to source ~/.bashrc. I had to add this functionality on my own.
On some systems and other OSes, .bashrc is sourced from the global /etc/profile or /etc/bash_profile , or is done using the template files from /etc/skel.
To be honest the distinction between .bashrc and .bash_profile is not well understood by the community. When many developers say "Add this to your .bashrc", what they really mean is "Add this to your .bash_profile". They want the functionality to be added to your login shell (which is .bash_profile), not to your non-login shell. In reality, it doesn't usually matter and placing configuration in .bashrc is acceptable.
So turns out that on Mac OS X Snow Leopard as well as Mac OS X Lion, the file that's loaded is called .profile, not .bashrc.
What you want to do is create a file in ~/.profile and call it .profile (if it doesn't already exists).
Put whatever information you needed to load with each instance of bash there (Thanks, thepurplepixel).
A couple of side notes:
-a as a parameter as such: ls -a~ symbol stands for /Users/YourUserName where YourUserName
is your username's shortname.Edit: Chris Page notes (correctly) that whatever you place in a .profile file will apply to whatever shell you're using (i.e. zhs, bash, et cetera). If you want the contents to affect only the bash shell, place the contents in a .bash_profile file instead of a .profile file.
.bash_profile already exists in your home directory, then .profile file will not be read!
– Phani
Jul 01 '14 at 19:51
You have to make your own .bashrc. You can simply use a text editor to make a file called .bashrc (no extension) with the contents you want and save it in your home directory (/Users/YourUserName/).
.bashrc will work, but only if there is no .profile. I guess ~/.profile exists by default, though. Glad I could help! (And you should put your solution in an answer and accept it for future readers of this question).
– squircle
May 31 '10 at 00:09
I find that in my OS 10.6.5 the bash settings are in "/etc/bashrc". I think this is the toplevel specifications for shell.
However, you need a root account to modify it. The local per-user specifications "~/.bashrc" should start with the following snippet, to read and load the system-level bash settings:
if [ -r /etc/bashrc ]; then
. /etc/bashrc
fi
I normally add aliases in the system level bashrc so that all users can access them as well. Unless they don't want to use your shortcuts and aliases.
Good luck!
~/.bashrc , not /etc/bashrc. /etc/bashrc are the global settings for all users on your system, which probably isn't what you want. Also, Apple may come along and change /etc/bashrc periodically, which might blow away your customizations.
– Stefan Lasiewski
May 27 '15 at 17:02
Use the .profile file to add anything that you would add to a linux .bashrc file.
For example
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"