Команды Linux · 3 min read · Sep 17, 2025
Учебник по команде Linux env для начинающих (5 примеров)

Команда Linux env используется для отображения и управления переменными окружения в сеансе оболочки. Переменные окружения — это динамические значения, которые влияют на процессы или программы, работающие в оболочке, такие как пути к исполняемым файлам, настройки, специфичные для пользователя, и поведение системы. Запустив команду env без аргументов, вы получите список всех текущих переменных окружения и их значений. Кроме того, env можно использовать для выполнения команды с изменённой средой, временно устанавливая или переопределяя конкретные переменные окружения на время выполнения этой команды. Это полезно для тестирования или запуска программ в определённой среде без изменения глобальной конфигурации.
Но прежде чем мы это сделаем, стоит упомянуть, что все команды и инструкции в этом учебнике были протестированы на Debian 12 и Ubuntu 24.04.
Команда Linux env
По определению, команда env позволяет вам запускать программу в изменённой среде. Следующий синтаксис команды указан в её справочной странице:
env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...]А вот что говорит справочная страница о env:
Установите каждое NAME в VALUE в окружении и выполните COMMAND.Следующие примеры в формате вопросов и ответов должны дать вам лучшее представление о том, как работает эта команда:
Вопрос 1. Как получить доступ ко всем переменным окружения с помощью команды env?
Среда Bash, как вы, возможно, уже знаете, состоит из записей VARNAME=VALUE. Чтобы получить доступ ко всем переменным окружения, а также к значениям, связанным с ними, выполните команду env без каких-либо опций.
envВот вывод вышеуказанной команды в нашем случае:

Вопрос 2. Как временно изменить окружение с помощью env?
Ключевая особенность env — это возможность временно изменить окружение процесса. Например, мы создали небольшой исполняемый файл — названный env — который отображает значение переменной окружения USER при выполнении.
Вот вывод в обычном сценарии:
Теперь, что мы сделали, так это использовали команду env, чтобы временно изменить значение переменной окружения USER с ‘himanshu’ на ‘HTF’ для исполняемого файла/процесса. Следующая команда, которую мы использовали в этом случае:
env USER=HTF ./envА вот вывод, полученный в этом случае:
Таким образом, вы можете видеть, что исполняемый файл вернул новое значение.
Примечание: Как предполагает общая синтаксическая структура инструмента, вы можете изменять значения нескольких переменных окружения и заставить процесс использовать эти новые значения.
Вопрос 3. Как заставить процесс игнорировать существующее окружение с помощью env?
Если хотите, вы также можете заставить процесс игнорировать существующее/унаследованное окружение и начать с пустого. Это можно сделать с помощью опции -i или –ignore-environment.
Например:
Вопрос 4. Как заставить env использовать NUL вместо символа новой строки в выводе?
В первом примере, который мы обсудили выше, строки вывода, производимые env, разделяются символом новой строки. Однако, если вы хотите, вы можете заставить env использовать символ NUL в качестве разделителя. Эта функция доступна с помощью командной строки –null.
env --nullСледующий пример скриншота;

Вопрос 5. Как узнать ошибку на основе кода выхода команды env?
Команда env производит следующие коды выхода: 0, 125, 126 и 127. Вот связанные описания ошибок:
0 если COMMAND не указан и окружение выводится
125 если ‘env’ сам по себе не удался
126 если COMMAND найден, но не может быть вызван
127 если COMMAND не может быть найденЕсли вы получите код ошибки, отличный от указанных выше, это код выхода, возвращаемый процессом/командой, которая была выполнена с изменённой средой.
Заключение
Если вы полный новичок в командной строке, вероятно, вам не понадобится этот инструмент на ежедневной основе. Однако это не значит, что о нём не стоит знать — на самом деле, env очень полезен во многих ситуациях. Примеры, которые мы поделились в этом учебнике, должны быть достаточными, чтобы дать вам хорошее начало. Для получения дополнительной информации перейдите на справочную страницу команды или, лучше, выполните следующую команду:
info coreutils env invocationGet new posts in your inbox
No spam. Unsubscribe anytime.