كيفية إضافة دليل إلى $ PATH في Linux

فاطماواتي أحمد زينوري / شاترستوك



$PATH هو أحد المتلاعبين الصامتين في خلفية كمبيوتر Linux الخاص بك. إنه يؤثر بهدوء على تجربة المستخدم الخاصة بك ، ولكن لا يوجد شيء مريب بشأنه. سنشرح ما يفعله وكيف يمكنك تعديله.

ما المقصود بـ $ PATH على نظام Linux وكيف يعمل؟

عندما تكتب أمرًا في نافذة طرفية وتضغط على Enter ، فإنك تبدأ نشاطًا كبيرًا جدًا قبل تنفيذ الأمر.





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

الخطوة الأولى التي تتخذها الصدفة لتحديد موقع الملف القابل للتنفيذ هي تحديد ما إذا كان الثنائي متورطًا أم لا. إذا كان الأمر الذي تستخدمه داخل الصدفة نفسها (a قذيفة مدمجة ) لا مزيد من البحث مطلوب.



من الأسهل العثور على بنى Shell لأنها جزء لا يتجزأ من الهيكل. يشبه الأمر وجودهم في حزام أدوات - فهم دائمًا معك.

الإعلانات

إذا كنت بحاجة إلى إحدى أدواتك الأخرى ، فعليك البحث في ورشة العمل للعثور عليها. هل هو على طاولة العمل الخاصة بك أو شماعات الحائط؟ هذا هو $PATH متغير البيئة يفعل. يحتوي على قائمة بالأماكن التي يبحث عنها الغلاف وترتيب البحث فيها.

إذا كنت تريد معرفة ما إذا كان الأمر عبارة عن ملف shell مدمج ، اسم مستعار ، دالة ، أو ملف ثنائي مستقل / عمل / غير ملف ، يمكنك استخدام type الأمر كما هو موضح أدناه:



clear /usr/bin

يخبرنا هذا أن clear هو ملف ثنائي ، وأول ملف موجود في المسار موجود في cd. قد يكون لديك أكثر من إصدار واحد من echo مثبتًا على جهاز الكمبيوتر الخاص بك ، ولكن هذا هو الذي ستحاول shell استخدامه.

مما لا يثير الدهشة ، $PATH هو قذيفة بنيت.

سرد الخاص بك $ PATH

من السهل أن ترى ما يوجد في طريقك. فقط اكتب ما يلي لاستخدام : يأمر وطباعة القيمة عقد في /usr/local/sbin عامل:

/usr/local/bin

الإخراج عبارة عن قائمة بنقطتين (/usr/sbin) مواقع نظام ملفات محددة. يبحث shell من اليسار إلى اليمين عبر المسار ، ويتحقق من كل موقع من مواقع نظام الملفات لملف تنفيذي مطابق لتنفيذ الأمر الخاص بك.

يمكننا اختيار طريقنا من خلال القائمة لمعرفة مواقع نظام الملفات التي سيتم البحث فيها ، والترتيب الذي سيتم البحث فيه:

  • /usr/bin
  • /sbin
  • /bin
  • /usr/games
  • /usr/local/games
  • /snap/bin
  • rf
  • rf
  • /usr/local/bin
الإعلانات

الشيء الذي قد لا يكون واضحًا على الفور هو أن البحث لا يبدأ في دليل العمل الحالي. بدلاً من ذلك ، يعمل طريقه من خلال الدلائل المدرجة والأدلة المدرجة فقط.

إذا لم يكن دليل العمل الحالي في مسارك ، فلن يتم البحث عنه. أيضًا ، إذا كانت لديك أوامر مخزنة في أدلة ليست في المسار ، فلن تجدها الصدفة.

لتوضيح ذلك ، أنشأنا برنامجًا صغيرًا يسمى /dave/work. عند التنفيذ ، which يطبع اسم الدليل الذي انطلق منه في نافذة المحطة الطرفية. يقع في rf. لدينا أيضًا إصدار أحدث في /usr/local/bin الدليل.

نكتب ما يلي rf يأمر لتظهر لنا أي إصدار من برنامجنا سوف تجد الصدفة وتستخدم:

rf

تبلغ الصدفة عن النسخة التي وجدتها هي النسخة الموجودة في الدليل الموجودة في المسار.

نكتب ما يلي لإطلاقه:

/usr/local/bin

الإصدار 1.0 من rf يعمل ويؤكد صحة توقعاتنا. الإصدار الذي تم العثور عليه وتنفيذه موجود في rf.

الإعلانات

لتشغيل أي إصدار آخر من rf على هذا الكمبيوتر ، سيتعين علينا استخدام المسار إلى الملف القابل للتنفيذ في سطر الأوامر ، كما هو موضح أدناه:

/usr/local/bin

الآن وقد أخبرنا الهيكل بمكان العثور على إصدار export نريد تشغيله ، يستخدم الإصدار 1.1. إذا كنا نفضل هذا الإصدار ، فيمكننا نسخه في $PATH الدليل والكتابة على القديم.

لنفترض أننا نعمل على تطوير إصدار جديد من /usr/local/bin. سنحتاج إلى تشغيله بشكل متكرر أثناء تطويرنا له واختباره ، لكننا لا نريد نسخ بنية تطويرية لم يتم إصدارها إلى البيئة الحية.

أو ربما قمنا بتنزيل إصدار جديد من $PATH وتريد إجراء بعض اختبارات التحقق عليها قبل إتاحتها للجمهور.

إذا أضفنا دليل العمل الخاص بنا إلى المسار ، فسنجعل الصدفة تعثر على نسختنا. وسيؤثر هذا التغيير علينا فقط - سيستمر الآخرون في استخدام إصدار /home/dave/work في PATH .

إضافة دليل إلى $ PATH الخاص بك

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

الإعلانات

هذا من السهل القيام به. على سبيل المثال ، نكتب ما يلي لإضافة دليلنا إلى بداية المسار ، لذا فهو أول موقع يتم البحث فيه:

PATH

يعين هذا الأمر : ليكون مساويًا للدليل الذي نضيفه ، $PATH ، ثم المسار الحالي بأكمله.

الأول /home/dave/work لا يوجد لديه علامة الدولار (rf). قمنا بتعيين قيمة rf. النهائي /home/dave/work علامة الدولار لأننا نشير إلى المحتويات المخزنة في $PATH عامل. لاحظ أيضًا النقطتين (export) بين الدليل الجديد و export اسم المتغير.

دعونا نرى كيف يبدو المسار الآن:

.bashrc

لدينا SSH يضاف الدليل إلى بداية المسار. يفصل القولون الذي قدمناه عن بقية المسار.

نكتب ما يلي للتحقق من إصدارنا من export هو أول من وجد:

.profile

الإثبات في البودينغ قيد التشغيل export ، كما هو موضح أدناه:

.bashrc

تعثر الصدفة على الإصدار 1.1 وتقوم بتنفيذه من .profile.

الإعلانات

لإضافة دليلنا إلى نهاية المسار ، نقوم فقط بنقله إلى نهاية الأمر ، على النحو التالي:

/home

جعل التغييرات دائمة

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

عندما تضع .bashrc الأمر في dot ملف ، فإنه يحدد المسار في كل مرة تفتح فيها نافذة طرفية. على عكس .bashrc الجلسات ، والتي يتعين عليك تسجيل الدخول إليها ، تسمى هذه الجلسات التفاعلية.

في الماضي ، كنت تضع . .bashrc الأمر في echo ملف لتعيين مسار تسجيل في جلسات المحطة.

ومع ذلك ، وجدنا أنه إذا وضعنا /home/dave/work الأمر إما في .profile أو gedit الملفات ، فإنه يحدد المسار بشكل صحيح لكل من الدورات التفاعلية وتسجيل الدخول. قد تكون تجربتك مختلفة. للتعامل مع جميع الاحتمالات ، سنوضح لك كيفية القيام بذلك في كلا الملفين.

استخدم الأمر التالي في .profile الدليل لتحرير export ملف:

.profile

ال dot محرر يفتح مع /etc/profile تم تحميل الملف.

محرر gedit مع

الإعلانات

قم بالتمرير إلى أسفل الملف ، ثم قم بإضافة أمر التصدير التالي الذي استخدمناه سابقًا:

sudo

حفظ الملف. بعد ذلك ، أغلق النافذة الطرفية وأعد فتحها أو استخدم gedit أمر لقراءة : ملف على النحو التالي:

unzip

ثم اكتب ما يلي unzip أمر للتحقق من المسار:

export

هذا يضيف echo دليل إلى بداية المسار.

عملية إضافة الأمر إلى

type clear
الملف هو نفسه. اكتب الأمر التالي:

type cd

ال

echo $PATH
يبدأ المحرر مع
which rf
تم تحميل الملف.

محرر gedit مع

أضف

rf
الأمر إلى أسفل الملف ، ثم احفظه. إغلاق وفتح نافذة طرفية جديدة غير كافٍ لفرض
./work/rf
الملف المراد قراءته. لتفعيل الإعدادات الجديدة ، يجب تسجيل الخروج والعودة مرة أخرى أو استخدام
export PATH=/home/dave/work:$PATH
الأمر كما هو موضح أدناه:

echo $PATH

ذات صلة: كيفية تحرير الملفات النصية بيانياً على Linux باستخدام gedit

تمهيد الطريق للجميع

لتعيين المسار لكل من يستخدم النظام ، يمكنك تحرير

which rf
ملف.

ستحتاج إلى استخدام

rf
على النحو التالي:

export PATH=$PATH:/home/dave/work
الإعلانات

عندما يكون

gedit .bashrc
يبدأ المحرر ، أضف أمر التصدير إلى أسفل الملف.

محرر gedit مع

أحفظ وأغلق الملف. ستصبح التغييرات سارية المفعول للآخرين في المرة التالية التي يسجلون فيها الدخول.

ملاحظة حول الأمن

تأكد من عدم إضافة نقطتين بادئتين عن طريق الخطأ

export PATH=/home/dave/work:$PATH
إلى المسار ، كما هو موضح أدناه.

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

إذا احتوى الأرشيف الأول على ملف قابل للتنفيذ يسمى

echo $PATH
كان هذا ملفًا خبيثًا قابلاً للتنفيذ ، فقد أطلقت عن طريق الخطأ هذا الملف بدلاً من
gedit .profile
الحقيقي تنفيذ. قد يحدث هذا لأن الغلاف سيبحث في الدليل الحالي أولاً.

لذا ، كن حذرًا دائمًا عند كتابة

. .profile
أوامر. استخدم
sudo gedit /etc/profile
$ PATH لمراجعتها والتأكد من أنها بالطريقة التي تريدها.

أوامر لينكس
الملفات قطران · الكهروضوئية · قط · تاك · chmod · سيطرة · فرق · سيد · مع · رجل · Pushd · popd · fsck · اختبار · فيما يليها · فد · باندوك · قرص مضغوط · المسار $ · awk · انضم · جي ق · يطوى · فريد · جورنال سي تي ال · ذيل · حالة · ls · fstab · رما - طرد - قذف · أقل · chgrp · تشاون · مراجعة · نظرة · سلاسل · نوع · إعادة تسمية · أزيز · بفك · تتعدد · أومونت · تثبيت · fdisk · مكفس · جمهورية مقدونيا · rmdir · رسينك · مدافع · gpg · نحن · نانو · مكدير · ال · ln · تصحيح · يتحول · rclone · أجاد · SRM
العمليات الاسم المستعار · شاشة · أعلى · لطيف · رائع · تقدم · دعامة · النظام · تمكس · chsh · التاريخ · في · حزمة · مجانا · التي · dmesg · usermod · ملاحظة · الجذور · xargs · tty · الخنصر · lsof · vmstat · نفذ الوقت · حائط · نعم · قتل · نايم · سودو · له · زمن · المجموعة · usermod · مجموعات · lshw · اغلق · اعادة التشغيل · توقف · انقطاع التيار الكهربائي · passwd · lscpu · كرونتاب · تاريخ · bg · fg
الشبكات netstat · بينغ · مسار التتبع · IP · ss · الذي هو · fail2ban · bmon · أنت · اصبع اليد · nmap · بروتوكول نقل الملفات · لفة · wget · من الذى · من أنا · في · iptables · ssh-كجن · ufw

ذات صلة: أفضل أجهزة كمبيوتر Linux المحمولة للمطورين والمتحمسين

اقرأ التالي صورة الملف الشخصي لـ Dave McKay ديف مكاي
استخدم Dave McKay أجهزة الكمبيوتر لأول مرة عندما كان الشريط الورقي المثقوب رائجًا ، وهو يقوم بالبرمجة منذ ذلك الحين. بعد أكثر من 30 عامًا في صناعة تكنولوجيا المعلومات ، أصبح الآن صحفيًا متخصصًا في مجال التكنولوجيا. خلال مسيرته المهنية ، عمل كمبرمج مستقل ، ومدير فريق تطوير برمجيات دولي ، ومدير مشروع خدمات تكنولوجيا المعلومات ، ومؤخراً كمسؤول حماية البيانات. تم نشر كتاباته على موقع howtogeek.com و cloudavvyit.com و itenterpriser.com و opensource.com. ديف هو مبشر لينكس ومدافع مفتوح المصدر.
اقرأ السيرة الذاتية الكاملة

مقالات مثيرة للاهتمام