В чем отличие .bash_profile и .bashrc

Работая с Линуксом, необходимо постоянно помнить, какой «профиль» нужно редактировать для автоматической установки переменных среды.

Согласно документации по bash, файл .bash_profile исполняется для оболочек, осуществляющих авторизацию пользователя, а файл .bashrc исполняется для интерактивных оболочек, не авторизующих пользователя.

При авторизации в консоли — физической или по SSH, выполняется .bash_profile.

Однако, если вы запускаете терминал в оконной системе (GNOME, KDE), режим оболочки в Emacs, или выполняете /bin/bash из другой оболочки, выполняется .bashrc.

Однако, большинство людей вызывают один скрипт из другого. Для достижения этого эффекта вам необходимо открыть файл .bash_profile и добавить следующие строки:

if [ -f ~/.bashrc ]; then
  source ~/.bashrc
fi

Теперь .bashrc будет исполняться при любой авторизации без необходимости дублировать код.