According to the bash man page, .bash_profile is executed for login shells, while .bashrc is executed for interactive non-login shells.
when you login when using a console, either physically at the machine or using ssh, .bash_profile is executed.
However, if you launch a terminal within a windowing system such as GNOME,KDE, launch the Emacs *shell* mode, or execute /bin/bash from within another terminal then .bashrc is executed.
Most people edit the files so one calls the other anyway.
To do this you need to open .bash_profile and uncomment the following lines (under the comment # include .bashrc if it exists):
if [ -f ~/.bashrc ];
Now when we login to our machine from a console,.bashrc will get called.