حرف E

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

Environment Variables

آخر تحديث: 2026-10-06
مستوى الشرح اختر المستوى التقني المناسب لك

الشرح المبسط

متغيرات البيئة هي قيم نصية ديناميكية يحفظها نظام التشغيل في الذاكرة لكي يخبر البرامج بمعلومات أساسية حول بيئة العمل الحالية، مثل اسم المستخدم الحالي، أو اللغة المفضلة، أو مكان وجود الملفات المهمة. لتقريب الفكرة، تخيل أنك تعمل في مكتب وتضع على الحائط لوحة ملاحظات مكتوب عليها: اللغة المعتمدة هي العربية، ومجلد الحفظ هو سطح المكتب. أي موظف جديد يدخل المكتب سينظر إلى هذه اللوحة ويعرف فوراً كيف يتصرف دون أن يسألك في كل مرة. بنفس الطريقة، تقرأ البرامج في لينكس متغيرات البيئة لتعرف كيف تعمل وأين تبحث عن الأوامر والملفات.

الشرح التقني المتقدم

تعد متغيرات البيئة (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 لتطبيق التغييرات فوراً. وتجنب دائماً تخزين كلمات المرور أو المفاتيح السرية الحساسة في متغيرات البيئة العامة على الخوادم المشتركة، لأن أي عملية فرعية أو أداة فحص قد تتمكن من قراءتها.