سؤال كيفية إضافة دليل إلى PATH؟


كيف أقوم بإضافة دليل إلى $PATH في أوبونتو وجعل التغييرات دائمة؟


627
2017-07-22 20:42


الأصل


help.ubuntu.com/community/EnvironmentVariables هناك كل ما تحتاج إلى معرفته. اكتشفت أن الكثير من المدخلات هنا غير صحيحة أو على الأقل لم يتم اقتراح الطريقة. هذا هو جزء كبير من المعلومات التي تتيح لك معرفة أين تقوم بتعديل متغير البيئة الخاص بك بناءً على سبب قيامك بذلك وكيفية القيام بذلك بالضبط دون إفساد كل شيء (مثلما اتبعت بعض النصائح السالفة الذكر). طالما وشكرا لجميع الأسماك! - Bus42


الأجوبة:


باستخدام ~ / .profile لتعيين $ PATH

مسار معين .bash_profile سيتم تعيينه فقط في shell login bash (bash -l). إذا وضعت مسارك .profile سيكون متاحًا لجلسة سطح المكتب الكاملة الخاصة بك. وهذا يعني أن الجلبة ستستخدمها.

فمثلا ~/.profile:

if [ -d "$HOME/bin" ] ; then
  PATH="$PATH:$HOME/bin"
fi

راجع للشغل ، يمكنك التحقق من متغير PATH لعملية من خلال النظر في بيئتها في /proc/[pid]/environ (استبدل [pid] بالرقم من ps axf). مثلا استعمال grep -z "^PATH" /proc/[pid]/environ

ملحوظة:

bash كصورة تسجيل الدخول لا تحليل .profile أي كان .bash_profile أو .bash_login موجود. من عند man bash :

تبحث عن ~ / .bash_profile و ~ / .bash_login و ~ / .profile ، في ذلك   النظام ، ويقرأ وينفذ الأوامر من أول واحد موجود   وقابلة للقراءة.

شاهد الإجابات أدناه للحصول على معلومات حول .pam_environmentأو .bashrc بالنسبة إلى الأصداف التفاعلية التي لم يتم تسجيل الدخول إليها ، أو تعيين القيمة عالميًا لجميع المستخدمين من خلال وضع نص برمجي داخل /etc/profile.d/ او استعمل /etc/X11/Xsession.d/ للتأثير على جلسة مديري العرض.


397
2017-07-22 22:04



رائع ، هذا العمل. لقد رأيت المكان الذي سيضيف إليه سلة المهملات تلقائيًا إذا كنت أستخدمها لذلك ، بدلاً من استخدام البرامج النصية. TY. - justingrif
على Xbunutu .profile لا يمكن تنفيذها حتى أضع في .bashrc ويعمل. - tekumara
هذه القطعة من الوثائق جيدة للغاية: وثائق رسمية حول متغير البيئة. النظر في القراءة (لا يعني أن يتم تحديث إلى الإصدار الأخير من القواعد لإضافة قيم لمتغير البيئة). - Michele
أين في .profile نضيف المسار؟ - Vineet Kaushik
ما زال لدي أي فكرة عن مكان إضافة جزء مسار إضافي إلى. أحتاج إلى إضافة Android SDK إلى المسار الخاص بي ... PATH="$HOME/bin:$PATH" لذلك أقوم بإضافته إليها؟ - Jamie Hutber


تصحيح .bashrc في دليل منزلك وإضافة السطر التالي:

export PATH="/path/to/dir:$PATH"

سوف تحتاج إلى مصدر الخاص بك .bashrc أو تسجيل الخروج / تسجيل الدخول (أو إعادة تشغيل المحطة الطرفية) لتصبح التغييرات سارية المفعول. إلى مصدر الخاص بك .bashrc، اكتب ببساطة

$ source ~/.bashrc

256
2017-07-22 20:45



كيف "مصدر الخاص بك .bashrc"كيف" إعادة تشغيل المحطة "؟ - isomorphismes
في باش هو ببساطة ". .bashrc " - Ophidian
كنت أفترض أنك كنت في دليل منزلك. لأن هذا هو .bashrc الذي تريد تحريره. - Ophidian
.bashrc ليس المكان المناسب لتحديد متغيرات البيئة. يجب أن يدخلوا .profile أو .pam_environment. نرى mywiki.wooledge.org/DotFiles - geirha
LaoTzu . .bashrc ليس .bashrc :) أو source .bashrc لذاك السبب - Znarkus


المكان الموصى به لتحديد دائم ، على نطاق المنظومة متغيرات البيئة المطبقة على جميع المستخدمين في:

/etc/environment

(وهو المكان الافتراضي PATH ويعرف)

سيعمل هذا في سطح المكتب أو وحدة التحكم أو gnome-terminal أو TTY أو المطر أو اللمعان ؛)

  • للتعديل ، اضغط على البديل+F2 واكتب:

    gksudo gedit /etc/environment
    

    (أو افتح الملف باستخدام sudo في محرر النصوص المفضل لديك)

لإحداث تغييرات ، قم بتشغيل . /etc/environment. بما أن هذا الملف هو مجرد نص بسيط ، فسوف يتم تشغيله وتعيين المسار الجديد له PATH متغيرات البيئة. للتحقق من تشغيل env ورؤية PATH قيمة في القائمة.

ذات صلة:


101
2017-07-31 03:49



ثم تحتاج إلى إعادة تشغيل التغييرات لتصبح نافذة المفعول ... - Lee
هذا هو بالضبط ما أحتاجه. توفير صورة من خلال vm رمي بعيدا عن طريق المتشرد واللازمة لإضافة عقدة و npm إلى المسار. - Austin Pray
لأخذ التغييرات في الواقع تشغيل. / etc / environement (yes، dot، a space and / etc / environment). نظرًا لأن هذا الملف مجرد برنامج نصي بسيط ، فسوف يتم تشغيله وتعيين المسار الجديد لمتغير بيئة PATH. للتحقق من تشغيل env ومشاهدة قيمة PATH في القائمة. - WindRider
أنا في حاجة لتشغيل source /etc/environment لإعادة تحميل التغييرات - JohnnyAW


أعتقد أن الطريقة الأساسية في Ubuntu هي:

  • إنشاء ملف جديد تحت /etc/profile.d/

    sudo vi /etc/profile.d/SCRIPT_NAME.sh
    
  • أضف هناك:

    export PATH="YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH"
    
  • وأعطيه تنفيذ إذن

    sudo chmod a+x /etc/profile.d/SCRIPT_NAME.sh
    

54
2018-01-09 01:31



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


للنوبي الكامل (مثل أنا) الذين هم أكثر راحة مع واجهة المستخدم الرسومية:

  1. افتح $HOME مجلد.
  2. اذهب إلى رأي → أظهر الملفات المخفية أو اضغط السيطرة + H.
  3. انقر بالزر الأيمن على .profile وانقر فوق فتح مع محرر النص.
  4. انتقل إلى أسفل وإضافة PATH="$PATH:/my/path/foo".
  5. حفظ.
  6. تسجيل الخروج وتسجيل الدخول مرة أخرى لتطبيق التغييرات (السماح Ubuntu تحميل الواقع .profile).

44
2017-10-24 22:05



لا يوصى بعد الآن بتحرير ملف .profile. لا يزال بإمكانك استخدام هذه الطريقة لتحرير الملف .pam_environment انظر: help.ubuntu.com/community/EnvironmentVariables - PulsarBlow
أشكرPulsarBlow! لست متأكدًا تمامًا من الفرق والفائدة على الرغم من ذلك ... هذا هو عنوان URL المباشر للقسم ذي الصلة: help.ubuntu.com/community/... - dain
تسبب هذا الجواب في توقف النظام عن تسجيل الدخول بسبب تجاوز جميع المسارات. باستخدام Ubuntu 16.04. - Frisbetarian
Frisbetarian لديك للتأكد من إضافة $PATH: بت يتضمن تعريف PATH الحالي - dain
@ ديان: تعليقك حفظ حياتي! - Py-ser


لمتغيرات البيئة الثابتة المتاحة لمستخدمين معينين فقط. أنا أوصي وثائق Ubuntu الرسمية.

https://help.ubuntu.com/community/EnvironmentVariables

في اشارة الى الوثائق اعلاه، لقد اعداد بلدي أدوات مسار SDK لنظام التشغيل Android بواسطة:

  1. خلق ~/.pam_environment ملف في الدليل الرئيسي.
  2. محتواه PATH DEFAULT=${PATH}:~/android-sdk-linux/tools.
  3. يمكن إضافة مسار مستخدم مخصص إضافي عن طريق فصل المسارات باستخدام القولون (:).
  4. هذا يتطلب إعادة تسجيل الدخول، مما يعني أنك بحاجة إلى تسجيل الخروج وتسجيل الدخول مرة أخرى إلى بيئة سطح المكتب.

40
2017-12-08 23:07



هذا هو أفضل إجابة. - Paulo Coghi


ضع هذا الخط في حياتك ~/.bashrc ملف.

يتم الحصول عليه عند فتح الجهاز

تصحيح: استنادًا إلى التعليقات أدناه ، للحصول على إعداد أكثر عمومية سيتم تطبيقه على جميع الأصداف (بما في ذلك عندما تضغط البديل-F2 في الوحدة) ، أضف الخط إلى ~/.profile ملف. ربما لا ينبغي أن تفعل كلاهما ، كما سيتم إضافة المسار مرتين إلى حسابك PATH البيئة إذا قمت بفتح محطة طرفية.


25
2017-07-31 01:08



في الواقع ، أعتقد أنك قمت بتعيين المسار في أي منهما $HOME/.profile لإعدادات شخصية ، أو /etc/profile لكل المستخدمين. ولكن إذا كانت هناك حاجة فقط لباش ، أفترض إما ستعمل. - Marty Fried
إذا قمت بتعيينها ~/.bashrc، لن يكون متاحًا إلا في المطاريف التي تفتحها. مثلا إذا ضربت Alt + F2 وحاول تشغيل أمر من ذلك dir ، فلن يعثر عليه. إذا قمت بتعيينها ~/.profile أو ~/.pam_environment، فإن جلسة gnome (أو أي DE تستخدمها) سيرثها. إلحاق PATH في ~/.bashrc لديه أيضًا العيب في حالة فتح / تنفيذ الأمر bash بشكل تفاعلي من خلال قذيفة bash تفاعلية أخرى ، سيتم إلحاقه عدة مرات. - geirha
لم ألق نظرة على هذا منذ فترة ، لذلك أجريت بحثًا ، ويبدو أن هناك ما لا يقل عن 95 طريقة مختلفة لإعداد المسار ، تتم مناقشة معظمها هنا. لم أحسب أبداً ما هو الأفضل. أعتقد ~/.profile هو الصحيح للمسارات الشخصية ، على الرغم من ؛ هذا هو المكان الذي يضيف فيه Ubuntu ~/bin دليل. وأنا أعترف بأنني بالغت قليلاً في عدد الطرق - قليلاً فقط. - Marty Fried
MartyFried ، نعم ، لاقتباس البوت في #bash على freenode: «إن الغالبية العظمى من النصوص البرمجية bash والشفرات والبرامج التعليمية والأدلة على الإنترنت هي حماقة. كان Sturgeon متفائلاً. »باستخدام google لمشكلة bash ، ستجد في كثير من الأحيان الكثير من الحلول نصف النهائية قبل العثور على حل جيد. أوه وانا ذاهب مع ~/.profile في هذه الحالة أيضًا. - geirha
geirha - أوافق على أن معظم الأدلة على الإنترنت بشكل عام ربما تكون هراء ، وخاصة أي شيء ينكس منذ اختلاف التوزيعات ، أو حتى إصدارات مختلفة من نفس واحدة ، تفعل الأشياء بشكل مختلف. عادة ما يتلخص الأمر في ما ينجح ، ولكن معظم الناس لا يدركون أن ما ينجح هو ببساطة ما ينجح ، وليس بالضرورة ما هو صحيح أو حتى ما سيعمل دائمًا. أحاول معرفة أي من الطرق العديدة صحيحة ، لأنني أكره القيام بالأشياء أكثر من مرة - لكن ذلك ليس سهلاً دائماً. :) - Marty Fried


لتعيين النظام على نطاق واسع ، إلحاق الخط export PATH=/path/you're/adding:$PATH حتى نهاية /etc/profile.

لإضافة الدليل للمستخدم المسجل الدخول فقط ، قم بإلحاق نفس السطر بـ ~/.bash_profile.


15
2017-07-22 23:20





ستعمل إضافته إلى .bashrc ولكن أعتقد أن الطريقة الأكثر تقليدية لإعداد متغيرات المسار هي في .bash_profile عن طريق إضافة السطور التالية.

PATH=$PATH:/my/path/foo
export PATH

بالنسبة الى هذا الموضوع يبدو كما لو أن سلوك أوبونتو مختلف قليلاً عن ريدهات والنسخ.


14
2017-07-22 20:58



ليس لدي ملف .bash_profile ، هل يجب علي إنشاؤه؟ - justingrif
اذا كنت تمتلك .bashrcضعه في .bashrc في حين أن. محطات واجهة المستخدم الرسومية في أوبونتو ليست قذائف الدخول ، لذلك .bash_profile لن يتم تشغيلها.
أنا لا أدير قوّة غوي. ولكن من الخيط أعلاه يبدو أن .bashrc ستعمل على ما يرام. - justingrif
سيعمل كلاهما إذا كانت shell الخاص بك عبارة عن shell تسجيل دخول. لكنني جربت طريقة .bash_profile على إحدى أجهزة Ubuntu الخاصة بي وحتى بعد إعادة تشغيل جلسة gnome الخاصة بي لم تكن مصدر ملفي .bash_profile. لذا أود أن أقول إن وضع هذا في .bashrc هو على الأرجح الطريق للذهاب مع أوبونتو. - 3dinfluence
لا تريد .bash_profile. إذا لم تجد باش .bash_profile (عندما تقوم بتسجيل الدخول بشكل تفاعلي) ، ستبحث عنه .profile واستخدام ذلك بدلا من ذلك. بشكل افتراضي ، سيكون لديك .profile و .bashrc في أوبونتو. و .profile هو المكان الصحيح لتعيين متغيرات البيئة إذا تجاهلنا pam_env. - geirha


في المحطة ، cd إلى the_directory_you_want_to_add_in_the_path

echo "export PATH=$(pwd):\${PATH}" >> ~/.bashrc

لم تكن هذه فكرتي. لقد وجدت هذه الطريقة لتصدير مسار في هذا بلوق هنا.


9
2017-09-08 22:44