what are the functional differences between these guys?
The idea behind this was that one-time setup was done by
Other notable shell config files:
According to the bash man page, .bash_profile is executed for login shells, while .bashrc is executed for interactive non-login shells.
So, what is a login or non-login shell?
When you login (type username and password) via console, either sitting at the machine, or remotely via ssh: .bash_profile is executed to configure your shell before the initial command prompt. But, if you’ve already logged into your machine and open a new terminal window (xterm) inside Gnome or KDE, then .bashrc is executed before the window command prompt. .bashrc is also run when you start a new bash instance by typing /bin/bash in a terminal.
An exception to the terminal window guidelines is Mac OS X’s Terminal.app, which runs a login shell by default for each new terminal window, calling .bash_profile instead of .bashrc. Other GUI terminal emulators may do the same, but most tend not to.
.bash_profile is for making sure that both the things in
If you would omit