/etc/profile
и файлы в /etc/profile.d
читаются оболочками входа в систему. Это хорошо для таких вещей, как установка переменных окружения, которые наследуются дочерними процессами: таким образом они устанавливаются во всех программах в сессии. Это не подходит для настроек оболочки, таких как определения функций, поскольку они доступны только в данном экземпляре оболочки. Для настроек оболочки нужно использовать файл конфигурации оболочки, а не файл конфигурации сеанса. Для bash это ~/.bashrc
, и (в системах, где это включено) /etc/bash.bashrc
.
Для получения дополнительной информации смотрите Существует ли эквивалентный файл ".bashrc", читаемый всеми оболочками? и Разница между Login Shell и Non-Login Shell?