متغيرات البيئة
Environment Variables
الشرح المبسط
الشرح التقني المتقدم
تعد متغيرات البيئة (Environment Variables) حجر الزاوية في تخصيص سلوك جلسات الصدفة (Shell) والعمليات (Processes) في نظام لينكس. خلف الكواليس، يتم تخزين هذه المتغيرات كأزواج من المفاتيح والقيم (Key-Value Pairs) في مساحة الذاكرة الخاصة بكل عملية، وتنتقل تلقائياً بالوراثة من العملية الأب (Parent Process) إلى العمليات الأبناء (Child Processes) عند إنشائها.
الفرق بين متغيرات الصدفة ومتغيرات البيئة
لتجنب الخلط الشائع في إدارة النظام، يجب التفرقة بين نوعين من المتغيرات والملفات المرتبطة بها:
متغيرات الصدفة المحلية (Shell Variables): تكون مرئية فقط داخل جلسة الصدفة الحالية ولا تنتقل إلى البرامج أو السكربتات التي يتم تشغيلها من داخلها.
متغيرات البيئة المصدّرة (Environment Variables): يتم تصديرها لتصبح متاحة لكافة العمليات الفرعية المنبثقة عن الصدفة الحالية.
ملف ~/.bashrc: يُستخدم لحفظ المتغيرات الخاصة بالمستخدم الحالي لتصبح دائمة في كل جلسة طرفية تفاعلية جديدة.
ملف /etc/environment: يُستخدم لتعريف متغيرات البيئة على مستوى النظام بالكامل لجميع المستخدمين.
العرض والتعديل العملي (الأوامر export و printenv و unset)
لإنشاء متغير محلي ثم ترقيته ليصبح متغير بيئة عام لجلسة العمل الحالية وعرض قيمته:
أمر التنفيذ:
export APP_ENV="production" && printenv APP_ENV
توضيح للأوامر والخيارات التقنية الشائعة في إدارة المتغيرات:
- الأمر printenv: يعرض جميع متغيرات البيئة النشطة حالياً، أو يعرض قيمة متغير محدد عند تمرير اسمه كمعامل.
- الأمر echo $PATH: يطبع قيمة المتغير باستخدام رمز الدولار $، ويعد متغير PATH من أهم المتغيرات لأنه يحدد المجلدات التي يبحث فيها النظام عن الأوامر التنفيذية.
- إضافة مسار جديد: لتوسيع مسارات البحث دون مسح المسارات القديمة نستخدم الصيغة export PATH="$PATH:/new/custom/path".
- الأمر unset: يُستخدم لحذف متغير بيئة من الجلسة الحالية نهائياً، مثل تنفيذ unset APP_ENV.
- الأمر env: يُستخدم لتشغيل برنامج معين داخل بيئة معدلة مؤقتاً دون التأثير على الجلسة الحالية، مثل env LANG=C command.
ملاحظة ختامية: الصورة الكبرى (نصيحة احترافية)
التعديلات التي تجريها باستخدام أمر export في الطرفية هي تعديلات مؤقتة تزول بمجرد إغلاق النافذة. لجعل متغيراتك دائمة، أضف أوامر التصدير إلى ملف ~/.bashrc أو ~/.profile ثم نفذ الأمر source ~/.bashrc لتطبيق التغييرات فوراً. وتجنب دائماً تخزين كلمات المرور أو المفاتيح السرية الحساسة في متغيرات البيئة العامة على الخوادم المشتركة، لأن أي عملية فرعية أو أداة فحص قد تتمكن من قراءتها.