المتغيرات البيئية
السياق والتاريخ
المتغيرات البيئية هي آلية أساسية في أنظمة التشغيل الحديثة، تسمح بتخزين معلومات التكوين ونقل المعلمات إلى العمليات. تم تقديمها في الأنظمة الأولى لـ Unix وتم اعتمادها من قبل Windows مع وصول Windows NT.
لماذا تستخدم المتغيرات البيئية
-
إعدادات عامة
- مسارات الوصول إلى الملفات التنفيذية (
PATH)، الدليل المؤقت (TEMP/TMP)، اللغة والتنسيق الإقليمي (LANG).
- مسارات الوصول إلى الملفات التنفيذية (
-
العزل وقابلية النقل
- يمكن للبرامج النصية والتطبيقات قراءة معلماتها دون ترميز مسارات مطلقة.
-
نقل إلى العمليات الفرعية
- أي متغير معرف في عملية أصلية يتم وراثته من قبل العمليات الفرعية.
الأنواع والنطاق
| النطاق | دائم؟ | يمكن الوصول إليه من خلال | مثال على المتغير |
|---|---|---|---|
| عملية | لا | العملية الحالية | $env:MYVAR = "session" |
| مستخدم | نعم | كل عملية للمستخدم (جلسة جديدة) | Set-Variable USER عبر GUI أو PowerShell |
| آلة | نعم | كل مستخدم وكل عملية (جلسة جديدة) | Set-Variable MACHINE |
- جلسة (عملية): تعديل مؤقت، يختفي عند الإغلاق.
- مستخدم: مخزن في السجل تحت
HKCU:\Environment. - نظام (آلة): مخزن في السجل تحت
HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment.
الإدارة عبر الواجهة الرسومية
ابحث عن "البيئة" في إعدادات Windows.
الموفر Env في PowerShell
يعرض PowerShell المتغيرات البيئية كـ "PSDrive" يسمى Env:.
سرد وقراءة
# سرد جميع المتغيرات البيئية
Get-ChildItem Env:
# قراءة متغير محدد
Get-Item Env:PATH
# أو
$env:PATH
الأداة setx
يسمح الباينري Windows setx بالكتابة بسرعة:
# تعيين للمستخدم (افتراضيًا)
setx LOG_LEVEL "DEBUG"
# تعيين للآلة (مع /M، يتطلب Admin)
setx NODE_ENV "production" /M
Note :
setxلا يغير الجلسة الحالية — يسجل للجلسات المستقبلية.
أفضل الممارسات
- التسمية بالأحرف الكبيرة واستخدام
_لفصل الكلمات. - تحديد حجم
PATH: الطول الزائد قد يكسر بعض البرامج. - التوثيق في نص برمجي أو README لأي تعديل دائم.
- النسخ الاحتياطي للحالة قبل التعديلات الكبيرة (تصدير السجل).
- الاختبار في VM: تحقق من النصوص البرمجية على الأجهزة الافتراضية قبل النشر.
ما يجب تذكره
- المتغيرات البيئية هي آلية أساسية لنقل المعلمات إلى العمليات.
- لديها ثلاثة نطاقات: جلسة، مستخدم، آلة.
- يوفر PowerShell و
setxوسائل قوية لقراءة وتحديد وحذف هذه المتغيرات. - دائمًا اختبر على VM ووثق تغييراتك!