انتقل إلى المحتوى الرئيسي

المتغيرات البيئية

السياق والتاريخ​

المتغيرات البيئية هي آلية أساسية في أنظمة التشغيل الحديثة، تسمح بتخزين معلومات التكوين ونقل المعلمات إلى العمليات. تم تقديمها في الأنظمة الأولى لـ 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 لا يغير الجلسة الحالية — يسجل للجلسات المستقبلية.

أفضل الممارسات​

  1. التسمية بالأحرف الكبيرة واستخدام _ لفصل الكلمات.
  2. تحديد حجم PATH: الطول الزائد قد يكسر بعض البرامج.
  3. التوثيق في نص برمجي أو README لأي تعديل دائم.
  4. النسخ الاحتياطي للحالة قبل التعديلات الكبيرة (تصدير السجل).
  5. الاختبار في VM: تحقق من النصوص البرمجية على الأجهزة الافتراضية قبل النشر.

ما يجب تذكره​

  • المتغيرات البيئية هي آلية أساسية لنقل المعلمات إلى العمليات.
  • لديها ثلاثة نطاقات: جلسة، مستخدم، آلة.
  • يوفر PowerShell و setx وسائل قوية لقراءة وتحديد وحذف هذه المتغيرات.
  • دائمًا اختبر على VM ووثق تغييراتك!