The info bash page gives information on the different startup shells that bash reads in when starting up. The .bashrc file is read in every time a new shell is opened, while .bash_profile is read in when a login shell is starting.
Your distro probably has a .bash_profile or .profile script sourcing the .bashrc, so it is run even when first logging in.
This webpage contains a good wrapup:
http://www.comptechdoc.org/os/linux/...vironment.html
from the above webpage:
$HOME/.bash_profile - Users environment stuff and startup programs
$HOME/.bashrc - user aliases and functions
$HOME/.bash_logout - User actions to be done at logout
$HOME/.inputrc - Contains keybindings and other bits.
One thing that determines which script to write is determined on the shell you might use. .profile is read in by both bash and