في هذا المقال إن شاء الله سنتعلم عن PATH وكيفية استخدمه في لينكس.
عموما معظم البرامج التي تعمل في بيئة لينكس تعمل بشكل سلس ولا تحتاج أن تحدد لها المسار الخاص بها لتعمل،
لكن أحيانا ربما تحتاج إلى تحديد مسار برنامجك يدويا خاصة إذا كان سكربت أو بعض البرامج التي تعمل خارج المستودعات الرسمية.
كذلك ستحتاج إلى تحديد مسار البرنامج إذا كان البرنامج او السكربت يعمل من مسار غير معتاد مثل المسارات bin او usr/bin بل هي مسارات أخرى غير معيارية كأن يكون في home مثلا.
نأتي الان إلى السؤال المهم
ما هو Path Environment Variable؟
ممكن أن نقول عنه انه البيئة التي تستخدم لتعريف مسارات تشغيل التطبيقات، وتحتوي علي قائمة بمسارات البرامج.
PATH:
هو متغير يخبر shell عن المسار الذي ينبغي البحث فيه عن الملفات التنفيذية.
نأتي إلى أهم جزء في المقال وهو:
كيفية إضافة مسار إلى PATH
لمعرفة المسارات الموجودة في PATH.echo $PATH

الناتج سيكون مسارات مفصولة ب “:” حيث إن ما يأتي وراء هذا الرمز يتم إضافته الى المسار الحالي.
export PATH=$PATH:/srv/scripts
يقوم shell بالبحث في المسارات التالية للملفات التنفيذية:
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/usr/local/games
/snap/bin
/home/linuxiac/.dotnet/tools
إذا وجد ملفين تنفيذين تتشارك نفس الاسم يقوم shell بتشغيل الملف الذي يأتي ترتيبه اولا في PATH.
إضافة مسار إلى PATH بشكل مؤقت
لنفترض أنك عملت سكربت في المسار/srv/scripts
إذا أردت إضافة هذا المشار الى PATHexport PATH=$PATH:/srv/scripts
لنرى محتويات PATHecho $PATH
إذا أردت أن تجعل الأولوية للبحث لهذا المسارexport PATH=/srv/scripts:$PATH
ملاحظة مهمة
هذه المسارات التي اضفتها بالطريقة السابقة هي مؤقته وستختفي بمجرد تسجيل خروج او الخروج من shell لأنه يحفظ مؤقتا في الجلسة الخاصة ب shell
كيف يمكن جعل هذا التغيير مستمر؟
ذلك يتم بإضافة مسار ثابت الى PATH الى .bashrc نفتح الملف بمحرر نانو
nano ~/.bashrc

نضيف السطر التالي إلى نهاية الملفexport PATH=$PATH:/srv/scripts
الخطوة الاخيرة هي حفظ الملف وعمل load لPATH الجديد الى الجلسة الحالية الخاصة ب shell
source ~/.bashrc
يمكنك الان مشاهدة المسار الجديد الذي تم إضافته الى PATHecho $PATH

في أمان الله
المصادر
- How to Add a Directory to PATH in Linux [With Examples]
- How to change the path in the Linux terminal?
هذا الموضوع فائز بجائزة أسس للكتابة.
هذا الموضوع أحد المواضيع الفائزة بجائزة أسس للكتابة، الجائزة الاولى في العالم العربي للتحفيز الكتابة عن البرمجيات الحرة.
تفاصيل أكثر عن الجائزة

المواضيع الفائزة لشهر مارس 2022


Fatehi
كاتب فائز بجائزة أسس للكتابة