Есть большое количество мест, где это можно определить.
Чтобы получить полное объяснение, вам нужно взглянуть на man- страницу bash разделе INVOCATION , но я должен предупредить вас, что, вероятно, у вас будет головная боль, прежде чем вы все это выясните :-)
В зависимости от того, как вызывается оболочка и какие файлы существуют, это может быть один или несколько из:
/etc/profile .
/etc/bash.bashrc
~/.bash_profile .
~/.bash_login .
~/.profile .
~/.bashrc .
- все, что указано с параметром
--rcfile .
- все, что указано в переменной окружения
BASH_ENV .
- все, что указано в переменной среды
ENV .
- любой файл, вызванный из предыдущих файлов.
Что бы это ни стоило, я обычно проверяю, что у меня есть ~/.bash_profile (так как это самый высокий приоритет из набора {~/.bash_profile, ~/.bash_login, ~/.profile} - он будет обрабатывать только первое, что он находит в этой группе).
Я также проверяю, что у меня есть ~/.bashrc и что ~/.bash_profile его в конце.
Таким образом, ~/.bash_profile содержит только то, что мне нужно для входа в оболочку, а ~/.bashrc содержит то, что мне нужно в каждой оболочке. Вам просто нужно убедиться, что последний не содержит никаких "кумулятивных" команд (например, добавление чего-либо в конец пути).
Существуют и другие способы его настройки, особенно если вы используете разные оболочки и должны обмениваться профилями между ними, но приведенная выше схема является самой простой, которую я нашел в настройках bash only.