Оболочки
Часто пользовательские процессы - дочерние процессы оболочки записаны в /etc/passwd для этого пользователя. Файлы инициализации оболочек часто изменяют пути.
В login, названию оболочки предшествует '-', для bash например, написано
'-bash'. Это сигнал системе, что оболочка запускается при входе в
систему. В этом случае, оболочка выполняет инициализационные файлы при
входе в оболочку. Иначе происходит более легкая инициализация.
Дополнительно оболочка проверяет - являются ли команды исходящими из файла
или набираемыми на терминале. Это модифицирует инициализацию оболочки так,
что неинтерактивная оболочка инициализируется совсем слегка, bash, в этом
случае, не выполняет никакой инициализации.
bash
Как нормальная оболочка, bash просматривает общесистемный файл /etc/profile,
где описано системное окружение и пути, которые могут быть установлены для
пользователей bash. Однако, это не выполняется, когда система
интерпретирует оболочку как не-интерактивную. Наиболее важный случай
находится в rsh, когда удаленная команда выполняется на соседней машине.
/etc/profile не запускается, и пути наследуются от rsh демона.
bash получает аргументы командной строки -login и -i, которые могут быть использованы, чтобы установить оболочку, как оболочку для входа или как интерактивную.
Пользователь может переписать значения, установленные в /etc/profile путем
создания файлов ~/.bash_profile, ~/.bash_login или ~/.profile. Обратите
внимание, что только самый первый из них выполняется - отличается от логики
инициализации csh. ~/.bash_login не выполняется специально для оболочки
входа в систему и если .bash_profile существует, он не выполняется вообще.
Если bash используется с именем sh вместо имени bash, он эмулирует
инициализацию bash: ищет файлы /etc/profile и ~/.profile только для
входных оболочек.
tcsh
При входе оболочка tcsh исполняет следующие файлы в данной последовательности:
tcsh может быть скомпилирован так, чтобы выполнять login скрипт до cshrc скрипта. Остерегайтесь!
Не-интерактивные оболочки выполняют только *cshrc скрипты. *login скрипты могут использоваться, чтобы установить путь только однажды во входе в систему.