Depende de cómo comiences tu shell. Como otros han dicho, un shell de inicio de sesión cargará su perfil (primero buscará .bash_profile, luego intentará .profile). Si encuentra uno de estos, los carga. Un shell sin inicio de sesión (ya sea interactivo o no interactivo) generará .bashrc.
Sugeriría poner todo en .bashrc. La división .profile / .bashrc era algo arbitraria y tenía más sentido en los viejos tiempos de UNIX cuando tty no era solo un nombre de dispositivo y significaba un TeleType real. Estaba destinado a comenzar ciertas cosas (como verificar el correo) en el inicio de sesión 'principal' a un servidor, y solo cosas de configuración normal para otros shells. En la mayoría de Linux, iniciará sesión ahora, en realidad no está iniciando sesión en un shell, ya que está iniciando sesión en alguna interfaz gráfica (KDE, gnome, CDE 'shudder'). El administrador de la sesión ahora se encarga de los "procesos de inicio de sesión". Es mucho menos relevante ahora.
Mi sugerencia: haga que su .profile consista únicamente en:
[ -f $HOME/.bashrc ] && . $HOME/.bashrc
como la primera línea de .bashrc, evite que sucedan cosas extrañas al ejecutar un script bash saltando temprano:
[[ $- != *i* ]] && return