Каждый созданный процесс получает свою собственную среду, которая живет столько же времени, сколько процесс. Ваша оболочка, как и любой другой процесс. Его окружение свое.
Если вы введете «set» без аргументов, вы увидите, что существует. Многие из этих настроек предназначены для управления поведением программы: ваш путь поиска, требуемый экран X11, домашний каталог (если не / home / yourname) и т. Д.
Использование действительно то, что вам нужно. Каждый раз, когда вам нужно сохранить некоторую полезную часть информации (например, длинный список параметров командной строки для какой-либо программы) в переменной, которую могут прочитать другие приложения или к которой вы можете получить доступ из оболочки, используйте среду.
Например:
USUAL_CONFIGURE_OPTS="--prefix=/home/charlie --sysconfdir=/home/charlie/tmp-etc"
./configure $USUAL_CONFIGURE_OPTS --and-additional-arguments
Edit:
Как программист, я читаю среду, чтобы определить предпочтения пользователя и подчиняться им. Например, переменная POSIXLY_CORRECT влияет на вывод моих программ, если она установлена. Среда - это то, где пользователь говорит программам, как себя вести. Также бывает, что среда - удобное место для хранения полезных битов, как я описал выше.
Опять же (в ответ на ваш комментарий) каждая выполняемая программа является процессом. Процесс получает свое собственное адресное пространство (собственную память), его среда хранится в этом пространстве. Это означает, что среда специфична для этого процесса и живет только столько времени, сколько сам процесс.
Редактировать 2:
Я думаю, что теперь я полностью понимаю ваш вопрос. Если кто-то говорит «виртуальная среда», он просто замечает, что среда находится в адресном пространстве приложения, которое отображается ядром как виртуальная память (некоторые страницы могут находиться в физической памяти, некоторые могут быть в разделе подкачки, совместно используемые динамические объекты, и т.д.).
Ни один процесс не может получить доступ к среде другого, если он явно не создает карту для этого конкретного региона и не делит ее с другим процессом. Опять же, адресное пространство процесса является полностью приватным и изолированным от других процессов. Переменные среды находятся внутри этого адресного пространства, в противном случае процесс не сможет получить к ним доступ или манипулировать ими.