Каковы различия между оболочкой и переменными среды? Где эти переменные хранятся?
Ссылаясь на этот источник ,
Стандартные переменные UNIX разделены на две категории, переменные среды и переменные оболочки. В широком смысле, переменные оболочки применяются только к текущий экземпляр оболочки и используется для кратковременной работы условия; переменные среды имеют более далеко идущее значение, и те, которые установлены при входе в систему, действительны для продолжительность сеанса. От соглашение, переменные среды имеют ВЕРХНИЙ РЕГИСТР и переменные оболочки имеют имена в нижнем регистре.
Чтобы перечислить все переменные среды, используйте printenv
, а для перечисления всех переменных оболочки используйте set
.
Вы заметите, что переменные среды хранят более постоянное значение, например:
HOME=/home/adam
которое меняется довольно редко, в то время как переменные оболочки хранят локальные, временные, специфичные для оболочки значения, например:
PWD=/tmp
которое изменяется каждый раз, когда вы смени свой текущий каталог.
Для большинства практических задач установите значения среды, добавив export VARIABLE_NAME = VALUE
в ваш файл ~ / .bashrc.
Переменная оболочки - это просто частный случай переменной среды. Переменные оболочки наследуются из среды и, возможно, копируются в среду дочерних элементов оболочки в зависимости от используемого синтаксиса: http://www.pixelbeat.org/docs/env.html