Це залежить від того, як ви запускаєте свою оболонку. Як говорили інші, оболонка для входу завантажить ваш профіль (спочатку буде шукати .bash_profile, потім спробує .profile). Якщо він знайде одне з них, він завантажує їх. Оболонка без входу (інтерактивна чи неінтерактивна) буде джерелом .bashrc.
Я б запропонував все вкласти в .bashrc. Розкол .profile / .bashrc був на зразок довільного і мав більше сенсу в старі часи UNIX, коли tty не було лише назвою пристрою і означало фактичний TeleType. Він мав на меті запустити певні речі (наприклад, перевірку пошти) на "головному" вході на сервер, а також просто звичайні настройки для інших оболонок. У більшості Linux-серверів ви зараз увійдете в систему, ви насправді не входите в оболонку, оскільки ви входите в якийсь графічний інтерфейс (KDE, gnome, CDE "здригання"). Про "нерестові процеси входу" тепер опікується ваш менеджер сеансів. Зараз це набагато менш актуально.
Моя пропозиція. Зробіть .profile складатися виключно з:
[ -f $HOME/.bashrc ] && . $HOME/.bashrc
як перший рядок .bashrc, захищайте від дивних речей, що виникають під час запуску баш-сценарію, вискокуючи рано:
[[ $- != *i* ]] && return