أوامر 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: