Команды Linux: env

Краткое руководство поenvкоманда, используемая для запуска команд и взаимодействия с переменными среды

ВenvКоманда может использоваться для передачи переменных среды без их установки во внешней среде (текущей оболочке).

Предположим, вы хотите запустить приложение Node.js и установитьUSERпеременная к нему.

Вы можете запустить

env USER=flavio node app.js

иUSERпеременная среды будет доступна из приложения Node.js через Nodeprocess.envинтерфейс.

Вы также можете запустить команду, очищающую все уже установленные переменные среды, используя команду-iвариант:

env -i node app.js

В этом случае вы получите сообщение об ошибкеenv: node: No such file or directoryпосколькуnodeкоманда недоступна, так какPATHпеременная, используемая оболочкой для поиска команд в общих путях, не задана.

Значит вам нужно пройти полный путь доnodeпрограмма:

env -i /usr/local/bin/node app.js

Попробуйте с помощью простогоapp.jsфайл с таким содержанием:

console.log(process.env.NAME)
console.log(process.env.PATH)

Вы увидите, что на выходе

undefined
undefined

You can pass an env variable:

env -i NAME=flavio node app.js

and the output will be

flavio
undefined

Removing the -i option will make PATH available again inside the program:

The env command can also be used to print out all the environment variables, if ran with no options:

env

it will return a list of the environment variables set, for example:

HOME=/Users/flavio
LOGNAME=flavio
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin
PWD=/Users/flavio
SHELL=/usr/local/bin/fish

You can also make a variable inaccessible inside the program you run, using the -u option, for example this code removes the HOME variable from the command environment:

env -u HOME node app.js

The env command works on Linux, macOS, WSL, and anywhere you have a UNIX environment

Download my free Linux Commands Handbook


More cli tutorials: