🐧 В чем разница между login и Non-Login шеллом |

🐧 В чем разница между login и Non-Login шеллом

Мануал

Оболочка (shell) является важным слоем архитектуры Linux.

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

В этом руководстве мы используем оболочку Bash для примеров.

По сути, оболочка бывает двух типов: Login Shell и Non Login Shell.

Каждая оболочка запускает некоторый набор предопределенных скриптов для настройки окружения этих оболочк.

Login Shell

Оболочка login создается после успешного входа пользователя.

Например, когда вы входите в систему Linux через терминал, SSH или переключаетесь на пользователя с помощью команды «su -».

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

Чтобы определить оболочку login выполните следующую команду на терминале.

echo $0
Если вы получите результат типа «-bash» или «-su», значит, вы находитесь в оболочке login.
Убедитесь, что в качестве префикса используется дефис (-).
Оболочка login выполняет следующие скрипты:
  • Оболочка 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

 

 

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