Оболочка входа и простая оболочка

Сеансы работы с командной оболочкой входа могут быть двух типов: сеанс командной оболочки входа (login shell session) и сеанс простой командной оболочки (non-login shell session).

Сеанс командной оболочки входа (login shell session) — это сеанс, который на входе запрашивает имя пользователя и пароль, например, когда вход выполняется в виртуальной консоли. Сеанс простой командной оболочки (non-login shell session) обычно начинается, когда запускается терминал в графическом окружении.

Командные оболочки входа читают один или несколько файлов запуска, перечисленных в табл. 11.2.

Обычные сеансы командной оболочки читают файлы, перечисленные в табл. 11.3.

Помимо чтения настроек из файлов запуска, перечисленных выше, обычные командные оболочки наследуют окружение от родительского процесса, каковым обычно является командная оболочка входа.

Таблица 11.2. Файлы запуска для сеансов командной оболочки входа

Файл

Содержит

/etc/profile

Общесистемный конфигурационный сценарий, настройки из которого применяются для всех пользователей

~/.bash_profile

Личный пользовательский файл запуска. Может использоваться для расширения и/или переопределения общесистемных настроек

~/.bash_login

Если файл ~/.bash_profile присутствует в домашнем каталоге, bash пытается прочитать его

~/.profile

Если в домашнем каталоге нет ни ~/.bash_profile, ни ~/.bash_login, bash пытается прочитать этот файл. Используется по умолчанию в дистрибутивах на основе Debian, таких как Ubuntu

Таблица 11.3. Файлы запуска для обычных сеансов командной оболочки

Файл

Содержит

/etc/bash.bashrc

Общесистемный конфигурационный сценарий, настройки из которого применяются для всех пользователей

~/.bashrc

Личный пользовательский файл запуска. Может использоваться для расширения и/или переопределения общесистемных настроек

Загляните в свою систему и посмотрите, какие файлы запуска у вас имеются. Помните: поскольку большинство имен файлов из перечисленных выше начинается с точки (такие файлы считаются скрытыми), при использовании команды ls ей необходимо передавать параметр -a.

С точки зрения обычного пользователя, файл ~/.bashrc является, пожалуй, самым важным файлом запуска, потому что его содержимое читается практически всегда. Обычные командные оболочки читают его по умолчанию, а большинство файлов запуска для командных оболочек входа написаны так, что оболочка также прочитает файл ~/.bashrc.