في أنظمة تشغيل الحاسوب، البيئة هي مساحة تحتوي على معلومات حول سلوك البرامج والتطبيقات.
تستخدم البرامج متغيرات بيئة لينكس للحصول على معلومات حول البيئة، وكل متغير بيئة هو متغير له اسم وقيمة مرتبطة به.
في كل مرة يتم فيها تهيئة البيئة، تُنشأ جلسة طرفية جديدة، ويمكن الاستفادة من ذلك كتجربة تعليمية لمعرفة كيف يُمكن لتغيير متغيرات بيئة لينكس تغيير أشياء مثل مظهر الشل، وإنشاء مسارات للملفات القابلة للتنفيذ، وإعدادات تخطيط لوحة المفاتيح، وتحديد المجلد الرئيسي الافتراضي، على سبيل المثال.
الطرفية في لينكس تحافظ على مجموعة من البيانات اثناء عملها تدعى بالبيئة حيث ان هذه البيانات المخزنة في البيئة تستعمله البرامج لتحديد معلومات حول إعدادت النظام.
تخزن البرامج مجموعة من الإعدادت الخاصة بها في ملف إعدادت النظام (البيئة), كما ان هذه البرامج تستغل البيئة لتعديل السلوك الخاص بها,معرفة هذا يجعل من السهل تطوير تجربة خاصة في استعمال الطرفية.
متغيرات الطرفية توضع هناك بواسطة bash, اما متغيرات البييئة فهي اي شئ يمكن اضافته.
إضافة إلى المتغيرات، تخزن الطرفية بعض البيانات البرمجية، وهي الأسماء المستعارة aliases ووظائف الطرفية shell functions.
لرؤية ما يتم تخزينه في البيئة هناك امرين هما set المضمن في bash و البرنامج printenv, حيث يظهر الأول كل من متغيرات البيئة و الطرفية بينام الأخر يظهر متغيرات البيئة فقط.
محتويات البيئة دائما ما تكون طويلة لذا يفضل نقل مخرجات البيئة إلى مدخلات برنامج less عبر | هكذا:
يمكن استعمال الأمر printenv لإظهار محتوى متغير معين من البيئة مثل printenv USERNAME سيظهر اسم المستخدم الحالي للطرفية.
الأمر printenv كما نلاحظ يظهر فقط المتغيرات الخاصة بالبيئة عكس الأمر set الذي يظهر كل من متغيرات البيئة و الطرفية بالإضافة إلى وظائف (الدوال)الطرفية كما انه يظهرهم في ترتيب أبجدي.
الأمر echo ايضا يمكن استعماله لإظهار قيم المتغيرات وذلك بكتابة إٍسم المتغير يسبقه علامة الدولار $ كمايلي:
من العناصر التي لا يظهرها الأمران السابقان الاسماء المستعارة, ولإظهارها يستخدم الأمر alias بلا اي إضافة.
كل الأوامر سابقة الذكر تستعمل لغرض فحص البيئة فالأمر printenv بالإصافة لأمر env الذي يعمل نفس عمل الأمر السابق وهو اظهار المتغيرات مع قيمها بشكل كامل بينما الأمر printenv و الأمر echo يمكن استعمالهم لإستحضار قيمة متغير واحد وقد شرحنا طريقة ذلك سابقا لكل أمر, اما بالنسبة لأمر set بالإضافة لإظهار متغيرات البيئة فهو يظهر معلومات اخرى هي متغيرات الطرفية (المتغيرات المحلية) و الوظائف (الدوال).
إذا كنت تريد البحث عن متغير معين ضمن القائمة الكبيرة للبيانات، يمكنك استخدام grep مع printenv أو set
تستخدم البرامج متغيرات بيئة لينكس للحصول على معلومات حول البيئة، وكل متغير بيئة هو متغير له اسم وقيمة مرتبطة به.
في كل مرة يتم فيها تهيئة البيئة، تُنشأ جلسة طرفية جديدة، ويمكن الاستفادة من ذلك كتجربة تعليمية لمعرفة كيف يُمكن لتغيير متغيرات بيئة لينكس تغيير أشياء مثل مظهر الشل، وإنشاء مسارات للملفات القابلة للتنفيذ، وإعدادات تخطيط لوحة المفاتيح، وتحديد المجلد الرئيسي الافتراضي، على سبيل المثال.
الطرفية في لينكس تحافظ على مجموعة من البيانات اثناء عملها تدعى بالبيئة حيث ان هذه البيانات المخزنة في البيئة تستعمله البرامج لتحديد معلومات حول إعدادت النظام.
تخزن البرامج مجموعة من الإعدادت الخاصة بها في ملف إعدادت النظام (البيئة), كما ان هذه البرامج تستغل البيئة لتعديل السلوك الخاص بها,معرفة هذا يجعل من السهل تطوير تجربة خاصة في استعمال الطرفية.
ما الذي يخزن في البيئة؟
تخزن الطرفية نوعين اساسين من البيانات في البيئة الا أنه لا يمكن التميز بين النوعين وهما متغيرات البيئة environment variables و متغيرات الطرفية shell variables.متغيرات الطرفية توضع هناك بواسطة bash, اما متغيرات البييئة فهي اي شئ يمكن اضافته.
إضافة إلى المتغيرات، تخزن الطرفية بعض البيانات البرمجية، وهي الأسماء المستعارة aliases ووظائف الطرفية shell functions.
لرؤية ما يتم تخزينه في البيئة هناك امرين هما set المضمن في bash و البرنامج printenv, حيث يظهر الأول كل من متغيرات البيئة و الطرفية بينام الأخر يظهر متغيرات البيئة فقط.
محتويات البيئة دائما ما تكون طويلة لذا يفضل نقل مخرجات البيئة إلى مدخلات برنامج less عبر | هكذا:
printenv | less
set | less
محتويات البيئة هي مجموعة من المتغيرات مع القيم الخاصة بها يمكن إظهرها في الطرفية بعد تنفيذ الأوامر السابقة.يمكن استعمال الأمر printenv لإظهار محتوى متغير معين من البيئة مثل printenv USERNAME سيظهر اسم المستخدم الحالي للطرفية.
الأمر printenv كما نلاحظ يظهر فقط المتغيرات الخاصة بالبيئة عكس الأمر set الذي يظهر كل من متغيرات البيئة و الطرفية بالإضافة إلى وظائف (الدوال)الطرفية كما انه يظهرهم في ترتيب أبجدي.
الأمر echo ايضا يمكن استعماله لإظهار قيم المتغيرات وذلك بكتابة إٍسم المتغير يسبقه علامة الدولار $ كمايلي:
echo $USERNAME
الامر السابق سوف يظهر اسم المستخدم الحالي للطرفية كما في المثال الذي قبله.من العناصر التي لا يظهرها الأمران السابقان الاسماء المستعارة, ولإظهارها يستخدم الأمر alias بلا اي إضافة.
كل الأوامر سابقة الذكر تستعمل لغرض فحص البيئة فالأمر printenv بالإصافة لأمر env الذي يعمل نفس عمل الأمر السابق وهو اظهار المتغيرات مع قيمها بشكل كامل بينما الأمر printenv و الأمر echo يمكن استعمالهم لإستحضار قيمة متغير واحد وقد شرحنا طريقة ذلك سابقا لكل أمر, اما بالنسبة لأمر set بالإضافة لإظهار متغيرات البيئة فهو يظهر معلومات اخرى هي متغيرات الطرفية (المتغيرات المحلية) و الوظائف (الدوال).
إذا كنت تريد البحث عن متغير معين ضمن القائمة الكبيرة للبيانات، يمكنك استخدام grep مع printenv أو set
"printenv | grep "USER
"set | grep "PATH
البيئة تحتوي على العديد من المتغيرات وقد تختلف من نوزيعة الى اخرى ولكنك ستلاجظ ان كلها تبدو على الشكل التالي:
PATH: يُحدد المسارات التي يبحث فيها النظام عن الملفات التنفيذية عند كتابة الأوامر.
HOME يشير إلى المجلد الرئيسي للمستخدم الحالي.
USER او LOGNAME يحتفظ باسم المستخدم الحالي.
SHELL يُحدد المسار إلى الصدفة الافتراضية للمستخدم (مثل /bin/bash).
PWD يُظهر المسار الحالي للدليل العامل.
LANG يضبط اللغة والترميز الافتراضي للنظام (مثل en_US.UTF-8).
PS1 يتحكم في تنسيق سطر الأوامر (Prompt).
EDITOR يُحدد محرر النصوص الافتراضي (يستخدمه git و cron).
DISPLAY اسم شاشتك إذا كنت تستخدم بيئة رسومية. عادةً ما يكون 0:، أي أول شاشة يُنشئها خادم X.
TERM اسم نوع الطرفيةالتي لديك. تدعم أنظمة يونكس العديد من بروتوكولات المحطيات الطرفية؛ يُحدد هذا المتغير البروتوكول المُستخدم مع مُحاكي الطرفية.
لا تقلق إذا كانت بعض هذه القيم مفقودة، فهي تختلف باختلاف التوزيع.
يختلف ترتيب قراءة ملفات التشغيل حسب جلسة الطرفية المفتوحة وهما نوعين فتح جلسة تطلب تسجيل دخول login shell session و جلسة لاتطلب تسجيل دخول non-login shell session.
يكمن الفرق بينهما ان الجلسة التي يتطلب فيها تسجبل دخول تطلب اسم مستخدم وكلمة مرور حيث نجدها في الطرفية الوهمية بينما الأخرى نجدها عند فتح الطرفية في الوجهة الرسومية GUI ولا تطلب تسجيل دخول.
كما يمكن للطرفية التي لاتتطلب تسجيل دخول ان ترث البيئة من العملية الأب لها(العمليات في لينكس موضوع مهم يمكنك البحث فيه).
مسار ملفات التشغيل للطرفية التي تطلب تسجيل دخول:
لا تقلق إذا كانت بعض هذه القيم مفقودة، فهي تختلف باختلاف التوزيع.
كيف تعمل البيئة؟
تنشاء البيئة عند تسجيل الدخول للنظام, فيبدء برنامج bash بقراءة سلسلة من ملفات اعدادات برمجية تدعى بملفات التشغيل. تقوم ملفات التشغيل بتحديد البيئة الإفتتراضية لكامل مستخدمي النظام يتبع هذا قراءة مجموعة اخرى من ملفات بدء التشغيل الموجودة في مسار الدليل الرئسي للمستخدم(مجلد المنزل الخاص بالمستخدم) , هذه الملفات الاخيرة تُعرف البيئة الخاصة بالمستخدم الحالي.يختلف ترتيب قراءة ملفات التشغيل حسب جلسة الطرفية المفتوحة وهما نوعين فتح جلسة تطلب تسجيل دخول login shell session و جلسة لاتطلب تسجيل دخول non-login shell session.
يكمن الفرق بينهما ان الجلسة التي يتطلب فيها تسجبل دخول تطلب اسم مستخدم وكلمة مرور حيث نجدها في الطرفية الوهمية بينما الأخرى نجدها عند فتح الطرفية في الوجهة الرسومية GUI ولا تطلب تسجيل دخول.
كما يمكن للطرفية التي لاتتطلب تسجيل دخول ان ترث البيئة من العملية الأب لها(العمليات في لينكس موضوع مهم يمكنك البحث فيه).
مسار ملفات التشغيل للطرفية التي تطلب تسجيل دخول:
etc/profile/ : نص برمجي عام للتكوين يُطبق على جميع المستخدمين.
bash_profile./~: ملف بدء تشغيل شخصي للمستخدم. يُمكن استخدامه لتوسيع أو تجاوز إعدادات نص البرمجي العام للتكوين.
bash_login./~ : إذا لم يتم العثور على الملف السابق bash_profile./~, فسيحاول bash قراءة هذا الملف.
profile./~ : إذا لم يتم العثور على الملفان السابقان، فسيحاول bash قراءة هذا الملف. هذا هو ملف الإعداد الافتراضي في التوزيعات المبنية على Debian.
مسار ملفات التشغيل للطرفية التي لا تطلب تسجيل دخول:
ملف برمجي عام لجميع المستخدمين. /etc/bash.bashrc
مسار ملفات التشغيل للطرفية التي لا تطلب تسجيل دخول:
ملف برمجي عام لجميع المستخدمين. /etc/bash.bashrc
bashrc./~ ملف بدء تشغيل شخصي للمستخدم. يُمكن استخدامه لتوسيع أو تجاوز الإعدادات في النص الببرمجي العام للتكوين.
ملاحظة : يشر الرمز ~ الى مسار مجلد البيت للمستخدم الحالي للطرفية و تقر هكذا home/user/.profile/
كما تشير النقطة في بداية اسم الملف الى أن الملف مخفي اسخدم الخيار a- في الأمر ls لعرض الملفات المخفية.
اذان بعد كل هذا ماهو ملف التشغيل؟ حسنا ملف التشغيل هو سكريبت (نص برمجي) مكتوب بلغة برمجة shell scripting لذلك لفهم محتوى ملفات التشغيل لابد ان تدرك اساسيات هذه اللغة.لكن تسطتيع ملاحظة بعض الاشياء مثل الاسطر التي تبدء بعلامة # هذه الاسطر تدعى بالتعليقات comments يضيفها المطور للنص البرمجي لتسهيل القراءة و الفهم حيث من خلالها يمكن فهم محتوى الملف, كما ايضا يوجد الجمل الشرطية و ايضا اشياء اخرى خاصة بمفاهيم البرمجية بلغة shell scripting.
دائما ما تسألت من اين تاتي الطرفية بالبرامج لتنفيذها فهي لاتقوم بالبحث في الجهاز بأكمله كل مرة لتنفيذ برنامج ما, حسنا لقد ذكرنا سابقا المتغير PATH التي يخزن فيه جميع مسارات البرامج التنفذية تستغل الطرفية هذا المتغير للبحث عن البرنامج المراد تنفيذه في تلك المجلدات وليس البحث في الجهاز بأكمله, ولذلك اذا اردت برمجة برامج تنفذية خاصة بك على الطرفية فيمكنك ا انشاء مجلد للبرامج في مجلد المنزل الخاص بك على النظام ثم اضافة مسار هذا المجلد للمتغير PATH عن طريق كتابة الأمر:
PATH=$PATH: $HOME/bin
حيث ان =PATH تقول للطرفية اربط القيمة بعد علامة المساواة بالمتغير PATH
علامة $ تشير للتوسع فتقول للطرفية ضع القيمة الحالية للمتغير(وهي مسارات البرامج التنفذية) PATH
النقطتان تشير باضافة مسار جديد للتغير او قيمة جديدة
اما HOME/bin$ فهي توسعة تفهمها الطرفية هكذا home/user/bin/
و bin هو المجلد المراد تخزين النصوص البرمجية للبرامج التنفذية الخاصة بنا.
حسنا كقاعدة عامة لاضافة قيمة على متغير او انشاء متغير للبيئة جديد ضع هذه التعديلات في ملف bash_profile. او profile. حسب التوزيعة التي تستعملها, ولأي تعديل اخرى ضعها في ملف bashrc.
اذا كنت مجرد مستخدم عادي للنظام ولست المسؤول فضع هذه التعديلات في ملفات التشغيل الموجودة في مجلد البيت الخاص بك, نعم يمكن التعديل على ملفات التشغيل الموجودة في etc ومن الحكمة فعل ذلك وجعل التغيرات على جميع مستخدمي النظام إلا ان في الوقت الحالي ضع التعديلات فقط على الملفات التي لديك صلاحيات التعديل عليها لكي لاتخرج الأمور عن السيطرة.
وللتعديل على ملف التشغيل نستعمل برنامج محرر نصوص, هناك العديد من محررات النصوص. أشهرها nano و Vim وemacs. محرر nano هو محرر بسيط وسهل الاستخدام، محرر Vim هو المحرر التقليدي في لينكس. و emacs وهو بيئة برمجة ضخمة، متعددة الأغراض، تقوم بكل شيء. على الرغم من توفره بسهولة، إلا أنه نادرًا ما يُثبّت افتراضيًا على معظم أنظمة لينكس.
يمكن استدعاء محررات النصوص من سطر الأوامر بكتابة اسم المحرر متبوعًا باسم الملف المراد تعديله، حيث ينشئ المحرر ملفًا جديدًا إذا لم يكن الملف موجودًا. على سبيل المثال، أمر nano some_file يفتح الملف في محرر nano إذا كان موجودًا أو يستعد لإنشائه. مع التأكيد على أهمية إنشاء نسخة احتياطية قبل تعديل ملفات التشغيل المهمة مثل bashrc. باستخدام أمر مثل cp .bashrc .bashrc.bak، حيث يُفضل استخدام ملحقات مثل bak. أو old. للإشارة إلى النسخ الاحتياطية، مع الانتباه إلى أن أمر cp يستبدل الملفات الموجودة دون سابق إنذار.
كما ايضا يمكنك استعمال الأمر export لجعل المتغيرات متاحة على مستوى البيئة (Environment) بحيث يمكن للبرامج والعمليات الفرعية الوصول إليها. فعند تعريف متغير عادي في الـ Shell، يكون استخدامه مقتصرًا على الجلسة الحالية فقط، ولا يمكن للبرامج التي يتم تشغيلها من داخلها أن تراه. لكن عند استخدام export يتم "تصدير" هذا المتغير ليصبح جزءًا من البيئة، وبالتالي يمكن لأي عملية فرعية أو برنامج يُشغَّل من هذه الجلسة أن يستخدمه. يُستعمل هذا الأمر عادة لإعداد المسارات مثل PATH أو ضبط اللغة مثل LANG أو لتحديد متغيرات خاصة بتشغيل البرامج والتطبيقات. بهذه الطريقة يضمن المستخدم أن إعداداته تبقى متاحة لكل العمليات المرتبطة بجلسة العمل.
وفي الاخير استعمل الأمر source لتنفيذ محتويات ملف إعدادات أو سكربت داخل نفس جلسة الـ Shell الحالية، مما يجعل أي تغييرات على المتغيرات أو الإعدادات فعّالة مباشرة دون الحاجة لإعادة تشغيل الجلسة. فعلى سبيل المثال، عند تعديل ملف bashrc. يمكن تطبيق التغييرات فورًا باستخدام source ~/.bashrc بدلًا من تسجيل الخروج والدخول من جديد. والفرق الأساسي بينه وبين تشغيل سكربت بشكل مباشر هو أن التشغيل العادي يتم في جلسة فرعية (subshell) ولا يؤثر على البيئة الحالية، بينما source ينفذ الأوامر في نفس الجلسة، وبذلك يغيّر المتغيرات والإعدادات بشكل فوري ودائم في بيئة العمل الحالية.
ملاحظة : يشر الرمز ~ الى مسار مجلد البيت للمستخدم الحالي للطرفية و تقر هكذا home/user/.profile/
كما تشير النقطة في بداية اسم الملف الى أن الملف مخفي اسخدم الخيار a- في الأمر ls لعرض الملفات المخفية.
اذان بعد كل هذا ماهو ملف التشغيل؟ حسنا ملف التشغيل هو سكريبت (نص برمجي) مكتوب بلغة برمجة shell scripting لذلك لفهم محتوى ملفات التشغيل لابد ان تدرك اساسيات هذه اللغة.لكن تسطتيع ملاحظة بعض الاشياء مثل الاسطر التي تبدء بعلامة # هذه الاسطر تدعى بالتعليقات comments يضيفها المطور للنص البرمجي لتسهيل القراءة و الفهم حيث من خلالها يمكن فهم محتوى الملف, كما ايضا يوجد الجمل الشرطية و ايضا اشياء اخرى خاصة بمفاهيم البرمجية بلغة shell scripting.
دائما ما تسألت من اين تاتي الطرفية بالبرامج لتنفيذها فهي لاتقوم بالبحث في الجهاز بأكمله كل مرة لتنفيذ برنامج ما, حسنا لقد ذكرنا سابقا المتغير PATH التي يخزن فيه جميع مسارات البرامج التنفذية تستغل الطرفية هذا المتغير للبحث عن البرنامج المراد تنفيذه في تلك المجلدات وليس البحث في الجهاز بأكمله, ولذلك اذا اردت برمجة برامج تنفذية خاصة بك على الطرفية فيمكنك ا انشاء مجلد للبرامج في مجلد المنزل الخاص بك على النظام ثم اضافة مسار هذا المجلد للمتغير PATH عن طريق كتابة الأمر:
PATH=$PATH: $HOME/bin
حيث ان =PATH تقول للطرفية اربط القيمة بعد علامة المساواة بالمتغير PATH
علامة $ تشير للتوسع فتقول للطرفية ضع القيمة الحالية للمتغير(وهي مسارات البرامج التنفذية) PATH
النقطتان تشير باضافة مسار جديد للتغير او قيمة جديدة
اما HOME/bin$ فهي توسعة تفهمها الطرفية هكذا home/user/bin/
و bin هو المجلد المراد تخزين النصوص البرمجية للبرامج التنفذية الخاصة بنا.
التعديل على البيئة:
الأن بما أننا نعرف أماكن تواجد ملفات التشغيل وعلى ما تحتويه يمكننا الأن التعديل عليهم لتخصيص البيئة الخاصة بنا, إذان اي الملفات يجب التعديل عليها؟حسنا كقاعدة عامة لاضافة قيمة على متغير او انشاء متغير للبيئة جديد ضع هذه التعديلات في ملف bash_profile. او profile. حسب التوزيعة التي تستعملها, ولأي تعديل اخرى ضعها في ملف bashrc.
اذا كنت مجرد مستخدم عادي للنظام ولست المسؤول فضع هذه التعديلات في ملفات التشغيل الموجودة في مجلد البيت الخاص بك, نعم يمكن التعديل على ملفات التشغيل الموجودة في etc ومن الحكمة فعل ذلك وجعل التغيرات على جميع مستخدمي النظام إلا ان في الوقت الحالي ضع التعديلات فقط على الملفات التي لديك صلاحيات التعديل عليها لكي لاتخرج الأمور عن السيطرة.
وللتعديل على ملف التشغيل نستعمل برنامج محرر نصوص, هناك العديد من محررات النصوص. أشهرها nano و Vim وemacs. محرر nano هو محرر بسيط وسهل الاستخدام، محرر Vim هو المحرر التقليدي في لينكس. و emacs وهو بيئة برمجة ضخمة، متعددة الأغراض، تقوم بكل شيء. على الرغم من توفره بسهولة، إلا أنه نادرًا ما يُثبّت افتراضيًا على معظم أنظمة لينكس.
يمكن استدعاء محررات النصوص من سطر الأوامر بكتابة اسم المحرر متبوعًا باسم الملف المراد تعديله، حيث ينشئ المحرر ملفًا جديدًا إذا لم يكن الملف موجودًا. على سبيل المثال، أمر nano some_file يفتح الملف في محرر nano إذا كان موجودًا أو يستعد لإنشائه. مع التأكيد على أهمية إنشاء نسخة احتياطية قبل تعديل ملفات التشغيل المهمة مثل bashrc. باستخدام أمر مثل cp .bashrc .bashrc.bak، حيث يُفضل استخدام ملحقات مثل bak. أو old. للإشارة إلى النسخ الاحتياطية، مع الانتباه إلى أن أمر cp يستبدل الملفات الموجودة دون سابق إنذار.
كما ايضا يمكنك استعمال الأمر export لجعل المتغيرات متاحة على مستوى البيئة (Environment) بحيث يمكن للبرامج والعمليات الفرعية الوصول إليها. فعند تعريف متغير عادي في الـ Shell، يكون استخدامه مقتصرًا على الجلسة الحالية فقط، ولا يمكن للبرامج التي يتم تشغيلها من داخلها أن تراه. لكن عند استخدام export يتم "تصدير" هذا المتغير ليصبح جزءًا من البيئة، وبالتالي يمكن لأي عملية فرعية أو برنامج يُشغَّل من هذه الجلسة أن يستخدمه. يُستعمل هذا الأمر عادة لإعداد المسارات مثل PATH أو ضبط اللغة مثل LANG أو لتحديد متغيرات خاصة بتشغيل البرامج والتطبيقات. بهذه الطريقة يضمن المستخدم أن إعداداته تبقى متاحة لكل العمليات المرتبطة بجلسة العمل.
وفي الاخير استعمل الأمر source لتنفيذ محتويات ملف إعدادات أو سكربت داخل نفس جلسة الـ Shell الحالية، مما يجعل أي تغييرات على المتغيرات أو الإعدادات فعّالة مباشرة دون الحاجة لإعادة تشغيل الجلسة. فعلى سبيل المثال، عند تعديل ملف bashrc. يمكن تطبيق التغييرات فورًا باستخدام source ~/.bashrc بدلًا من تسجيل الخروج والدخول من جديد. والفرق الأساسي بينه وبين تشغيل سكربت بشكل مباشر هو أن التشغيل العادي يتم في جلسة فرعية (subshell) ولا يؤثر على البيئة الحالية، بينما source ينفذ الأوامر في نفس الجلسة، وبذلك يغيّر المتغيرات والإعدادات بشكل فوري ودائم في بيئة العمل الحالية.