Оболочка (shell) является важным слоем архитектуры Linux.
Оболочка – это интерфейс, который принимает входные данные от пользователей и отправляет инструкции в ядро, а также принимает выходные данные из ядра и отправляет результат обратно в выходную оболочку.
В этом руководстве мы используем оболочку Bash для примеров.
По сути, оболочка бывает двух типов: Login Shell и Non Login Shell.
Каждая оболочка запускает некоторый набор предопределенных скриптов для настройки окружения этих оболочк.
Login Shell
Оболочка login создается после успешного входа пользователя.
Например, когда вы входите в систему Linux через терминал, SSH или переключаетесь на пользователя с помощью команды «su -».
Когда запускается оболочка login, она в свою очередь запускает набор предопределенных скриптов для настройки среды оболочки.
Чтобы определить оболочку login выполните следующую команду на терминале.
echo $0
- Оболочка login выполняет /etc/profile
- /etc/profile выполняет все скрипты в /etc/profile.d/
- Затем выполняется ~/.bash_profile
- ~/.bash_profile выполняет скрипты пользователей ~/.bashrc
- ~/.bashrc выполняет /etc/bashrc
Non Login Shell
Non Login Shell – это оболочка, которая запускается login shell.
Например, оболочка, которую вы запустили из другой оболочки или запустили с помощью программы и т. д.
Оболочка non-login выполняет следующий скрипт для установки среды:
- non-login сначала выполняет ~/.bashrc
- Затем ~/.bashrc выполняет /etc/bashrc
- /etc/bashrc вызывает скрипты в /etc/profile.d
Проверка shell Login или Non Login
Чтобы найти текущую оболочку, просто запустите приведенную ниже команду.
Посмотрите результаты и найдите различия между ними.
echo $0
Вывод Login shell будет -bash или -su..
Вывод Non logins shell будет будет bash или su