جدول المحتويات
- تكوين متغيرات بيئة Linux
- الوصول إلى متغيرات البيئة في لينكس
- طريقة تكوين متغير بيئة Linux 1: تصدير PATH
- طريقة تكوين متغير بيئة Linux 2: vim ~/.bashrc
- طريقة تكوين متغير بيئة Linux 3: vim ~/.bash_profile
- طريقة تكوين متغيرات بيئة Linux 4: vim /etc/bashrc
- طريقة تكوين متغير بيئة Linux 5: vim /etc/profile
- طريقة تكوين متغيرات بيئة Linux 6: vim /etc/environment
- تحليل آلية تحميل متغيرات بيئة Linux
- تصنيف المتغيرات البيئية
- طريقة اختبار ترتيب تحميل متغيرات بيئة Linux
- شرح مفصل لتحميل ملفات متغيرات بيئة Linux
- نصائح
تكوين متغيرات بيئة Linux
أثناء تخصيص تثبيتات البرامج، تنشأ الحاجة المتكررة إلى إعداد متغيرات البيئة. فيما يلي عدد من الطرق المتنوعة لتكوين متغيرات البيئة.
مثال:
- نظام التشغيل: أوبونتو 14.0
- اسم المستخدم: spoto
- المسار لتكوين متغيرات بيئة MySQL: /home/spoto/mysql/bin
الوصول إلى متغيرات البيئة في لينكس
لاسترجاع متغيرات البيئة، استخدم الطرق التالية:
- استخدم الأمر "تصدير" لإظهار كافة متغيرات البيئة المحددة بواسطة النظام.
- استخدم الأمر 'echo $PATH' لعرض القيمة الحالية لمتغير بيئة PATH.
يؤدي تنفيذ هذه الأوامر إلى النتائج التالية:
spoto:~export
declare -x HOME="/home/spoto"
declare -x LANG="en_US.UTF-8"
declare -x LANGUAGE="en_US:"
declare -x LESSCLOSE="/usr/bin/lesspipe %s %s"
declare -x LESSOPEN="| /usr/bin/lesspipe %s"
declare -x LOGNAME="spoto"
declare -x MAIL="/var/mail/spoto"
declare -x PATH="/home/spoto/bin:/home/spoto/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
declare -x SSH_TTY="/dev/pts/0"
declare -x TERM="xterm"
declare -x USER="spoto"
spoto:~ echo $PATH
/home/spoto/bin:/home/spoto/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
يحدد متغير PATH مسارات البحث لتنفيذ الأوامر. ويفصل بين المسارات المختلفة باستخدام النقطتين (:)، وعند تعريفه باستخدام export، قد يتم تضمين علامات الاقتباس المزدوجة أو قد لا يتم تضمينها.
طريقة تكوين متغير بيئة Linux 1: تصدير PATH
قم بتعديل قيمة PATH مباشرةً باستخدام أمر التصدير. فيما يلي طريقة تكوين MySQL لإدخال متغير البيئة:
export PATH=/home/spoto/mysql/bin:PATH
# Or put the PATH in the front.
export PATH=PATH:/home/spoto/mysql/bin
ملحوظات:
- وقت التفعيل: فوري
- فترة الصلاحية: تنطبق على جلسة المحطة الحالية؛ تصبح غير صالحة بعد إغلاق النافذة
- نطاق التطبيق: ساري المفعول حصريًا للمستخدم الحالي
- أثناء تكوين متغيرات البيئة، من المهم تضمين الإعدادات الأصلية، وخاصةً جزء $PATH، لمنع الكتابة فوق التكوينات الموجودة.
طريقة تكوين متغير بيئة Linux 2: vim ~/.bashrc
قم بالتكوين عن طريق تعديل الملف ~/.bashrc الموجود في دليل المستخدم:
vim ~/.bashrc
# Add this to the last line
export PATH=$PATH:/home/spoto/mysql/bin
ملحوظات:
- وقت التنشيط: يصبح ساري المفعول عند فتح محطة طرفية جديدة باستخدام نفس المستخدم أو الحصول عليها يدويًا باستخدام 'source ~/.bashrc.'
- مدة التأثير: سارية المفعول بشكل دائم
- نطاق التطبيق: ينطبق فقط على المستخدم الحالي
- إذا تجاوزت ملفات تحميل متغيرات البيئة اللاحقة تعريف PATH، فقد لا يسري هذا التأثير.
طريقة تكوين متغير بيئة Linux 3: vim ~/.bash_profile
على غرار تعديل ملف ~/.bashrc، أضف المسار الجديد في نهاية الملف:
vim ~/.bash_profile
# Add this to the last line
export PATH=$PATH:/home/spoto/mysql/bin
ملحوظات:
- وقت التنشيط: يصبح ساري المفعول عند فتح محطة طرفية جديدة باستخدام نفس المستخدم أو الحصول عليها يدويًا باستخدام 'source ~/.bash_profile.'
- مدة التأثير: سارية المفعول بشكل دائم
- نطاق التطبيق: ينطبق فقط على المستخدم الحالي
- إذا لم يكن هناك ملف ~/.bash_profile، فيمكنك تحرير الملف ~/.profile أو إنشاء ملف جديد.
طريقة تكوين متغيرات بيئة Linux 4: vim /etc/bashrc
تتضمن هذه الطريقة تعديل تكوينات النظام وتتطلب امتيازات المسؤول (مثل الجذر) أو أذونات الكتابة للملف:
# If the /etc/bashrc file is not editable, it needs to be modified to be editable.
chmod -v u+w /etc/bashrc
vim /etc/bashrc
# Add this to the last line
export PATH=$PATH:/home/spoto/mysql/bin
ملحوظات:
- وقت التنشيط: يصبح ساري المفعول عند فتح محطة طرفية جديدة أو الحصول يدويًا على /etc/bashrc.
- مدة التأثير: سارية المفعول بشكل دائم
- نطاق التطبيق: فعال لجميع المستخدمين
طريقة تكوين متغير بيئة Linux 5: vim /etc/profile
تتضمن هذه الطريقة تعديل تكوينات النظام وتتطلب امتيازات المسؤول أو أذونات الكتابة للملف، على غرار vim /etc/bashrc:
# If the /etc/profile file is not editable, it needs to be modified to be editable.
chmod -v u+w /etc/profile
vim /etc/profile
# Add this to the last line
export PATH=$PATH:/home/spoto/mysql/bin
ملحوظات:
- وقت التنشيط: يصبح ساري المفعول عند فتح محطة طرفية جديدة أو الحصول يدويًا على /etc/profile.
- مدة التأثير: سارية المفعول بشكل دائم
- نطاق التطبيق: فعال لجميع المستخدمين
طريقة تكوين متغيرات بيئة Linux 6: vim /etc/environment
تتضمن هذه الطريقة تعديل ملف تكوين بيئة النظام وتتطلب امتيازات المسؤول أو أذونات الكتابة للملف:
# If the /etc/bashrc file is not editable, it needs to be modified to be editable.
chmod -v u+w /etc/environment
vim /etc/profile
# Add this to the last line
export PATH=$PATH:/home/spoto/mysql/bin
ملحوظات:
- وقت التنشيط: يصبح ساري المفعول عند فتح محطة طرفية جديدة أو الحصول يدويًا على /etc/environment.
- مدة التأثير: سارية المفعول بشكل دائم
- نطاق التطبيق: فعال لجميع المستخدمين
تحليل آلية تحميل متغيرات بيئة Linux
تم توضيح طرق التكوين المختلفة لمتغيرات البيئة أعلاه. كيف يقوم Linux بتحميل هذه التكوينات، وبأي ترتيب؟
يمكن أن تؤدي تسلسلات التحميل المحددة إلى تجاوز أو عدم فعالية تعريفات المتغيرات البيئية ذات الأسماء المتطابقة.
تصنيف المتغيرات البيئية
يمكن تصنيف متغيرات البيئة على نطاق واسع إلى متغيرات بيئة محددة من قبل المستخدم ومتغيرات بيئة على مستوى النظام.
- ملفات تعريف متغيرات البيئة على مستوى المستخدم: ~/.bashrc، ~/.profile (على بعض الأنظمة: ~/.bash_profile)
- ملفات تعريف متغيرات البيئة على مستوى النظام: /etc/bashrc، /etc/profile (على بعض الأنظمة: /etc/bash_profile)، /etc/environment
طريقة اختبار ترتيب تحميل متغيرات بيئة Linux
لاختبار ترتيب تحميل متغيرات البيئة في ملفات مختلفة، سنقوم بتعريف متغير البيئة UU_ORDER في بداية كل ملف تعريف متغير بيئة. ستكون قيمة هذا المتغير عبارة عن تسلسل قيمته الخاصة مع اسم الملف الحالي. الملفات التي سيتم تعديلها هي كما يلي:
- /إلخ/البيئة
- /إلخ/الملف الشخصي
- /etc/bash.bashrc
- /etc/profile.d/test.sh
- ~/.الملف الشخصي
- ~/.bashrc
أضف الكود التالي كسطر أول في كل ملف، ثم اضبط المحتوى بعد النقطتين إلى الاسم المطلق للملف الحالي وفقًا لذلك.
export UU_ORDER= " $UU_ORDER :~/.bash_profile"
بعد إجراء التعديلات، احفظ التغييرات. افتح نافذة طرفية جديدة ولاحظ قيمة المتغير من خلال تنفيذ الأمر 'echo $UU_ORDER':
spoto:~echoUU_ORDER
$ UU_ORDER:/etc/environment:/etc/profile:/etc/bash.bashrc:/etc/profile.d/test.sh:~/.profile:~/.bashrc
يمكن استنتاج تسلسل تحميل متغيرات البيئة في Linux على النحو التالي:
- /إلخ/البيئة
- /إلخ/الملف الشخصي
- /etc/bash.bashrc
- /etc/profile.d/test.sh
- ~/.الملف الشخصي
- ~/.bashrc
شرح مفصل لتحميل ملفات متغيرات بيئة Linux
من الاختبار أعلاه، من الواضح أن Linux يقوم بتحميل متغيرات البيئة بالترتيب التالي:
- متغيرات بيئة النظام -> متغيرات البيئة المحددة من قبل المستخدم
- /etc/البيئة -> /etc/profile -> ~/.profile
عند فتح ملف /etc/profile، ستلاحظ أنه يقوم بتحميل ملف /etc/bash.bashrc. ثم يقوم بفحص وتحميل ملفات .sh في الدليل /etc/profile.d/.
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ "PS1" ]; then
if [ "BASH" ] && [ "BASH" != "/bin/sh" ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='\h:\w\$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ "`id -u`" -eq 0 ]; then
PS1='# '
else
PS1=' '
fi
fi
fi
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r i ]; then
.i
fi
done
unset i
fi
وبعد ذلك، عند فحص ملف ~/.profile، يصبح من الواضح أن هذا الملف يتضمن تحميل ملف ~/.bashrc.
# if running bash
if [ -n "BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "HOME/.bashrc" ]; then
. "HOME/.bashrc"
fi
fi
# set PATH so it includes user 's private bin directories
PATH="HOME/bin:HOME/.local/bin:PATH"
نصائح
يمكنك تخصيص ملف متغير بيئي، مثل تعريف "spoto.profile" ضمن مشروع معين. في هذا الملف، استخدم "export" لتعريف سلسلة من المتغيرات. ثم أضف "source spoto.profile" في نهاية ملف ~/.profile. يتيح لك هذا الوصول إلى مجموعة المتغيرات التي قمت بتحديدها شخصيًا في نصوص Shell في كل مرة تقوم فيها بتسجيل الدخول.
بدلاً من ذلك، يمكنك استخدام الأمر "alias" لتحديد أسماء مستعارة لأوامر معينة. على سبيل المثال، "alias rm="rm -i" (يجب استخدام علامتي الاقتباس المزدوجتين). يضمن دمج هذا الكود في ~/.profile أنه في كل مرة تستخدم فيها الأمر "rm"، فإنه ينفذ الأمر "rm -i" بشكل أساسي، مما يوفر حلاً ملائمًا وفعالًا.