Поместите все в .bashrc
а затем источник .bashrc
из .profile
Со страницы руководства bash (на OS X 10.9):
Когда запускается интерактивная оболочка, которая не является оболочкой входа в систему, bash читает и выполняет команды из ~/.bashrc, если этот файл существует. Это может быть запрещено с помощью параметра --norc. Опция --rcfile file заставит bash читать и выполнять команды из файла вместо ~/.bashrc
Приведенный выше текст объясняет, почему все помещается в .bashrc
. Однако, когда вы работаете с оболочкой входа в систему, поведение несколько иное. Опять цитата из справочной страницы:
Когда bash вызывается как интерактивная оболочка входа в систему или как неинтерактивная оболочка с параметром --login, она сначала читает и выполняет команды из файла /etc /profile, если этот файл существует. После прочтения этого файла он ищет ~ /.bash_profile, ~ /.bash_login и ~ /.profile в указанном порядке, а также читает и выполняет команды из первой, которая существует и доступна для чтения. Опция --noprofile может использоваться, когда оболочка запущена, чтобы запретить это поведение.
.profile
читается для логинов, но .bashrc
- нет. Дублировать все эти вещи в .bashrc
- это плохо ™, поэтому нам нужно поместить их в .profile
чтобы поведение оставалось последовательным.
Тем не менее, вы не хотите получать исходники .bashrc
из .profile
безоговорочно. Пожалуйста, смотрите комментарии и другие ответы для получения дополнительной информации.