👯 Как BASH Shell загружает свои файлы конфигурации в Linux |

👯 Как BASH Shell загружает свои файлы конфигурации в Linux

Мануал

BASH Shell попытается загрузить несколько файлов конфигурации во время инициализации.

Существует 2 набора файлов конфигурации, в зависимости от того, используется ли оболочка login или non-login.

  • Когда вы входите на сервер на “голом” железном мониторе, или через SSH, или с помощью # su – [username], вы получаете оболочку login.
  • Когда вы запускаете оболочку в терминале в существующем сеансе (gnome-терминал, оболочка внутри другого или с помощью # su [имя пользователя]…), вы получаете оболочку non-login Скрипт оболочки также выполняется под оболочкой non-login.

Ниже мы проиллюстрируем разницу, добавив отладку в эти файлы конфигурации.

Login shell

По умолчанию оболочка входа в систему ( login )загружает следующие файлы:

# su - test
this is /etc/profile
this is ~/.bash_profile
this is ~/.bashrc
this is /etc/bashrc

Здесь обратите внимание на файл ~/.bash_profile, файл по умолчанию называется ~/.bashrc и ~/.bashrc/ называется /etc/bashrc.

Если по какой-то причине BASH не может найти файл ~/.bash_profile, он будет искать ~/.bash_login вместо этого.

Если снова ~/.bash_login не может быть найден, BASH вместо этого будет искать ~/.profile.

И в 2 случаях ~/.bashrc и /etc/bashrc загружаться не будут, если они не были явно вызваны в ~/.bash_login или ~/.profile.

Примеры, когда ~/.bash_profile не существует:

– При наличии ~/.bash_login, независимо от того, существует ~/.profile или нет:

$ su - test
Password: 
this is /etc/profile
This is ~/.bash_login

– Только ~/.profile:

# su - test
this is /etc/profile
this is ~/.profile

Non-login Shell

Это проще, BASH загружает только ~/.bashrc, и снова файл вызывается /etc/bashrc.

# su test
this is ~/.bashrc
this is /etc/bashrc

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий