Es wird grundsätzlich unterschieden, ob es sich um eine interaktive oder nicht handelet. Bei der zsh wird auch noch unterschieden, ob es sich um eine loginshell handelt. Auf diese Weise, kann man z.B. bei jedem login das Programm fortune einen mehr oder minder nette Begrüßung ausgeben lassen, ohne daß diese auch bei irgendwelchen Shellscripten geschieht.
Die Datei /etc/profile wird immer ausgewertet, hier können also zentrale Abkürzungen und Umgebungsvariablen gesetzt werden. in der /.profile kann jeder Benutzer eigene Variablen setzen.
Will man nicht zwischen login und anderen Shells unterscheiden, so kann man .bashrc in die .profile laden und alle Änderungen in der .bashr vornehmen.