.profile is for things that are not specifically related to
Bash, like environment variables
PATH and friends, and should be available anytime.
.profile should also be loaded when starting a graphical desktop session.
.bashrc is for the configuring the interactive Bash usage, like
Bash aliases, setting your favorite
editor, setting the
Bash prompt, etc.
.bash_profile is for making sure that both the things in
.bashrc are loaded for
.bash_profile could be something simple like
. ~/.profile . ~/.bashrc
If you were to omit
.profile would be loaded.
Until next time!