29 lines
3.8 KiB
Markdown
29 lines
3.8 KiB
Markdown
# Интерпретаторы терминала
|
||
|
||
**Окружение** — это область, которую оболочка создает каждый раз при запуске сеанса, где содержатся переменные, определяющие свойства системы.
|
||
|
||
- Окружение представляет собой набор переменных, к которым имеют доступ все исполняемые команды.
|
||
- Окружение предоставляет среду, через которую процесс оболочки может получать или задавать настройки и, в свою очередь, передавать эти настройки его дочерним процессам.
|
||
|
||
Переменные окружения — это переменные, определяемые для текущей оболочки и наследуемые любыми дочерними оболочками или процессами. Переменные окружения используются для передачи информации процессам, которые запущены в оболочке.
|
||
|
||
**Оболочка** (*интерпретатор командной строки* или *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)
|
||
|