diff --git a/README.md b/README.md index 80e30ce..846f9d4 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ # Learn Tech - [01. Linux](stream/01_linux_zhirov/) +- [02. Интерпретаторы терминала](stream/02_shells_zhirov/) diff --git a/stream/02_shells_zhirov/README.md b/stream/02_shells_zhirov/README.md new file mode 100644 index 0000000..8f72e4a --- /dev/null +++ b/stream/02_shells_zhirov/README.md @@ -0,0 +1,28 @@ +# Интерпретаторы терминала + +**Окружение** — это область, которую оболочка создает каждый раз при запуске сеанса, где содержатся переменные, определяющие свойства системы. + +- Окружение представляет собой набор переменных, к которым имеют доступ все исполняемые команды. +- Окружение предоставляет среду, через которую процесс оболочки может получать или задавать настройки и, в свою очередь, передавать эти настройки его дочерним процессам. + +Переменные окружения — это переменные, определяемые для текущей оболочки и наследуемые любыми дочерними оболочками или процессами. Переменные окружения используются для передачи информации процессам, которые запущены в оболочке. + +**Оболочка** (*интерпретатор командной строки* или *shell*) - программа, которая принимает команды от пользователя и исполняет их. Кроме этого, оболочка позволяет экспортировать (`export`) переменные во (внешнее) окружение (`environment`). + +![shells](img/shells.gif) + +## Работа с окружением + +`set` в Linux - это установка переменных окружения (environment variables), которые определяют поведение работы системы или программы. Они используются для хранения информации, такой как пути к файлам, настройки программ, язык интерфейса и другие параметры. + +Например, переменная окружения `PATH` указывает системе, где искать исполняемые файлы программ. Переменные окружения могут быть установлены глобально (для всех пользователей) или только для текущей сессии. + +`env` (environment) в Linux - это команда, которая выполняет указанную программу, устанавливая значения переменных окружения перед ее запуском. + +Различие между `set` и `env` заключается в том, что `set` устанавливает переменные окружения только в текущей сессии или в скриптах, в которых была выполнена команда, в то время как `env` устанавливает переменные окружения для запускаемой программы и ее дочерних процессов. Это означает, что переменные окружения, установленные с помощью `env`, будут доступны всему дереву процессов, порожденных запущенной программой. + +## Ссылки + +- [Считывание и настройка переменных оболочки и окружения в Linux](https://www.digitalocean.com/community/tutorials/how-to-read-and-set-environmental-and-shell-variables-on-linux-ru) +- [Переменные оболочки и окружение](https://unix1.jinr.ru/oss/linux/lig/node274.html) + diff --git a/stream/02_shells_zhirov/img/shells.gif b/stream/02_shells_zhirov/img/shells.gif new file mode 100644 index 0000000..e43f82b Binary files /dev/null and b/stream/02_shells_zhirov/img/shells.gif differ