Setup Your .bash_profile On OS X | A Sample Bash Profile

This is another addition to my entry level OS X shell category.  This one covers setting up a more detailed bash profile, so certain things are done by default when you open your Terminal.

We start by opening the Terminal in your ~/Applications/Utilities folder. If you don’t know what that means please start with this post, as it will show you a very basic beginning to the Terminal in OS X.  Be sure you are in your home directory by typing pwd at the bash prompt and hit enter.  It should look similar to this:


Next, we start vim opened to your .bash_profile.  At the bash prompt type vim .bash_profile and hit enter.  If the file exists, it will open it, if not it will create one for you.     Your Terminal window should now look like this:

vim .bash_profile

My screen shows one alias I created in my last tutorial. I like that one but technically it doesn’t belong in your .bash_profile, it belongs in a file called .bashrc. The .bash_profile is for your login shell options, and the .bashrc file is read for subsequent interactive shells;  meaning a shell opened to type commands, not just to run a script from a file automatically.  You can launch another shell on top of your login shell by typing the shell name at the prompt, i.e., bash, and then hitting enter.

This lesson will focus on login defaults, such as the PATH variable in your .bash_profile. In the process, we will be using vim, so if you are unfamiliar with that, practice makes perfect!

The PATH variable is where the system searches for binaries (shell scripts, programs, etc.) to execute.  All UNIX systems provide a default path, but you can add to it.  As you add scripts of your own creation and such, you probably want to create a directory in your home folder to store them.  This way if you screw something up, it will affect you and not the system.  For example, an erroneous rm command if you are in the /bin directory could be really bad news.

Let’s go ahead and first create a new directory called bin in your home directory.  Create a new interactive shell by pressing ⌘-N.  Type mkdir bin and hit enter.  Now type ls and hit enter.  You should see the new directory listed with your other folders:

mkdir Command

This is where you can store any shell scripts that you create, as they are easy to find in this folder.  In vim, type “i” without quotes to get you into INSERT mode.  You will see –INSERT– at the bottom of your Terminal window.  Now you can begin typing text.  You should comment your script files, and your other various profiles so you know what something does if you ever need to edit.  It’s just good programming practice to get the comments done as you progress with coding, not when you’re done!

To make a single line comment, the first character on the line needs to be the pound sign, #.  Type in #Additional binary folders, and hit enter.  Next, we set the PATH like so, to *add* to the default PATH: export PATH=$PATH:/Users/yourusername/bin

You can see in my screenshot below what the file should look like.  Replace the yourusername with your actual username for your account.  Mine is Tech, so that’s how it shows in my screenshot.  Also keep in mind, that UNIX is case-sensitive:

Bash Profile PATH

Now you can save this by hitting the escape key, and typing :w then pressing enter.  Let’s add some more commands to the profile.  We can set a welcome message to the login, and set the shell’s timer to check for new mail.  This really only matters if you use a text-only mail client, such as PINE or Alpine.  It will not affect the OS X Mail client.

Set a message to display when you login with the echo command.  This is a good command to know for the command line as well, as you can see certain system variable settings, such as your current PATH.  You can do this by typing echo $PATH at the bash prompt and hitting enter.  To use echo in your .bash_profile to set a welcome message, type echo followed by the message:

echo Welcome back, Mr Awesome!  Your present working directory is: $PWD

looks like this when you log in:

Welcome Message SetTo set the mail check timer, write a line in your .bash_profile like so:  export MAILCHECK=30

The time set is in seconds, and OS X’s bash shell by default is set to 60 seconds.  Your .bash_profile should now look similar to this:

Finished Profile Example

Next time I will cover creating a simple shell script, and changing file permissions to run them.  Also, I will try to cover some common aliases, as well as creating your .bashrc file, which is where we store the aliases.  Thanks for reading, and if you have any suggestions or questions, please feel free to ask!