Есть большое количество мест, где это можно определить.
Чтобы получить полное объяснение, вам нужно взглянуть на 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.