सवाल पाथ में निर्देशिका कैसे जोड़ें?


मैं निर्देशिका में कैसे जोड़ूं $PATH उबंटू में और परिवर्तन स्थायी बनाते हैं?


627
2017-07-22 20:42


मूल


help.ubuntu.com/community/EnvironmentVariables आपको बस इतना जानने की ज़रूरत है। मुझे पता चला कि यहां बहुत सारे इनपुट गलत थे या कम से कम विधि का सुझाव नहीं दिया गया था। यह जानकारी का एक बड़ा टुकड़ा है जो आपको यह बताएगा कि आप अपने पर्यावरण चर को संशोधित करने के कारण कहां कर रहे हैं और वास्तव में सबकुछ खराब किए बिना इसे कैसे किया जाए (जैसे मैंने उपर्युक्त बुरी सलाह में से कुछ का पालन किया था)। इतने लंबे समय और सारी मछलियों के लिए धन्यवाद! - Bus42


जवाब:


$ पाथ सेट करने के लिए ~ / .profile का उपयोग करना

एक पथ में सेट .bash_profile केवल एक बैश लॉगिन खोल में सेट किया जाएगा (bash -l)। यदि आप अपना रास्ता डालते हैं .profile यह आपके पूरे डेस्कटॉप सत्र में उपलब्ध होगा। इसका मतलब है कि यहां तक ​​कि मेटासिटी भी इसका इस्तेमाल करेगी।

उदाहरण के लिए ~/.profile:

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

बीटीडब्ल्यू, आप अपने पर्यावरण को देखकर प्रक्रिया के पथ चर को देख सकते हैं /proc/[pid]/environ (से [पिड] को संख्या के साथ बदलें 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



अच्छा, यह काम किया। मैंने देखा कि अगर मैं इसे बना देता हूं तो यह बिन डीआईआर को स्वचालित रूप से जोड़ देगा, इसलिए मैंने स्क्रिप्ट के बजाय इसका उपयोग किया था। स्व। - justingrif
Xbunutu पर .profile निष्पादित नहीं किया गया है इसलिए मैंने इसे .bashrc में रखा और यह काम करता है। - tekumara
दस्तावेज का यह टुकड़ा बहुत अच्छी तरह से किया जाता है: पर्यावरण चर के बारे में आधिकारिक दस्तावेज। इसे पढ़ने पर विचार करें (यह कहना न कि पर्यावरण चर में मूल्य जोड़ने के लिए नियमों के अंतिम संस्करण में अद्यतन किया गया है)। - Michele
कहाँ .profile हम पथ जोड़ते हैं ?? - Vineet Kaushik
मुझे अभी भी पता नहीं है कि मेरा अतिरिक्त पथ भाग कहां जोड़ना है। मुझे अपने पथ में एंड्रॉइड एसडीके जोड़ने की जरूरत है ... 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
@लाओ त्सू . .bashrc नहीं .bashrc :) या source .bashrc उस बात के लिए - Znarkus


स्थायी परिभाषित करने के लिए अनुशंसित जगह, प्रणाली विस्तृत सभी उपयोगकर्ताओं के लिए आवेदन करने वाले पर्यावरण चर इनके हैं:

/etc/environment

(जहां डिफ़ॉल्ट है PATH परिभषित किया)

यह डेस्कटॉप या कंसोल, gnome-terminal या TTY, बारिश या चमक में काम करेगा;)

  • संपादित करने के लिए, दबाएं ऑल्ट+F2 और टाइप करें:

    gksudo gedit /etc/environment
    

    (या फ़ाइल का उपयोग कर खोलें sudo अपने पसंदीदा पाठ संपादक में)

परिवर्तनों को प्रभावित करने के लिए, चलाएं . /etc/environment। चूंकि यह फ़ाइल सिर्फ एक साधारण स्क्रिप्ट है, यह नए पथ को चलाएगी और असाइन करेगी PATH वातावरण विविधता। रन एनवी जांचने और देखने के लिए PATH लिस्टिंग में मूल्य।

सम्बंधित:


101
2017-07-31 03:49



और फिर परिवर्तनों को प्रभावी होने के लिए आपको रीबूट करने की आवश्यकता है ... - Lee
मुझे ठीक इसी की आवश्यकता थी। योनि के माध्यम से एक फेंकने वाली वीएम छवि प्रदान करना और पथ में नोड और एनपीएम जोड़ने की आवश्यकता है। - Austin Pray
प्रभाव में बदलाव करने के लिए। / आदि / वातावरण (हाँ, डॉट, एक अंतरिक्ष और / आदि / पर्यावरण)। चूंकि यह फ़ाइल सिर्फ एक साधारण स्क्रिप्ट है, यह पाथ पर्यावरण चर के लिए नया पथ चलाएगी और असाइन करेगी। रन एनवी जांचने और लिस्टिंग में पथ मूल्य देखने के लिए। - WindRider
मुझे दौड़ने की जरूरत थी source /etc/environment परिवर्तनों को फिर से लोड करने के लिए - JohnnyAW


मुझे लगता है कि उबंटू में कैननिकल तरीका है:

  • के तहत एक नई फाइल बनाएँ /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



शुरुआत के बजाए पथ के अंत में अपना कस्टम पथ जोड़ना आम तौर पर सुरक्षित होता है। यह आपके प्रोग्राम (या किसी और के दुर्भावनापूर्ण प्रोग्राम) के साथ गलती से सिस्टम कमांड को प्रतिस्थापित करता है। यह आपके भ्रम से भी बहुत भ्रम से बचाता है जब कोई आपके सिस्टम पर काम करता है (या आपको सलाह देता है) और उन्हें आपके द्वारा "प्रतिस्थापित" आदेशों से अप्रत्याशित परिणाम मिलते हैं। - Joe


पूर्ण नए शौक (जैसे मैं हूं) के लिए जो जीयूआई के साथ अधिक आरामदायक हैं:

  1. अपनी खोलो $HOME फ़ोल्डर।
  2. के लिए जाओ राय → छिपी फ़ाइलें देखें या दबाएं Ctrl + एच
  3. राइट क्लिक करें .profile और क्लिक करें पाठ संपादक के साथ खोलें
  4. नीचे स्क्रॉल करें और जोड़ें PATH="$PATH:/my/path/foo"
  5. बचाना।
  6. परिवर्तन लागू करने के लिए लॉग आउट करें और वापस लॉग इन करें (उबंटू वास्तव में लोड होने दें .profile)।

44
2017-10-24 22:05



.Profile फ़ाइल को संपादित करने की अब अनुशंसा नहीं की जाती है। आप अभी भी फ़ाइल को संपादित करने के लिए इस विधि का उपयोग कर सकते हैं .pam_environment देखें: help.ubuntu.com/community/EnvironmentVariables - PulsarBlow
धन्यवाद @ पुलसर ब्लो! मुझे सच में यकीन नहीं है कि वास्तव में क्या अंतर और लाभ है ... यह प्रासंगिक अनुभाग का सीधा यूआरएल है: help.ubuntu.com/community/... - dain
इस जवाब ने मेरे सिस्टम को ओवरराइड किए जाने वाले सभी पथों के कारण लॉग इन करना बंद कर दिया। उबंटू 16.04 का उपयोग करना। - Frisbetarian
@Frisbetarian आपको जोड़ना सुनिश्चित करना है $PATH: बिट जिसमें मौजूदा पाथ परिभाषा शामिल है - dain
@dain: आपकी टिप्पणी ने मेरी जिंदगी बचाई! - Py-ser


निरंतर पर्यावरण चर के लिए केवल विशिष्ट उपयोगकर्ताओं के लिए उपलब्ध है। मैं उबंटू आधिकारिक दस्तावेज की अत्यधिक अनुशंसा करता हूं।

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

उपरोक्त दस्तावेज का जिक्र करते हुए, मैंने अपना सेटअप किया है एंड्रॉइड एसडीके पथ-उपकरण द्वारा:

  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 दबाते हैं और उस डीआईआर से कमांड चलाने का प्रयास करते हैं, तो उसे यह नहीं मिलेगा। यदि आप इसे सेट करते हैं ~/.profile या ~/.pam_environment, gnome सत्र (या जो भी आप डीई उपयोग करते हैं) इसका वारिस करेंगे। इसमें पैथ संलग्न करना ~/.bashrc यह भी दोष है कि यदि आप किसी अन्य इंटरैक्टिव बैश खोल से इंटरैक्टिव रूप से बैच खोलते / निष्पादित करते हैं, तो इसे कई बार जोड़ा जाएगा। - geirha
मैंने वास्तव में थोड़ी देर के लिए इस पर ध्यान नहीं दिया है, इसलिए मैंने एक खोज की, और ऐसा लगता है कि पथ निर्धारित करने के लिए कम से कम 95 अलग-अलग तरीके हैं, जिनमें से अधिकतर चर्चा की जाती हैं यहाँ। मैंने कभी नहीं सोचा कि कौन सा सबसे अच्छा है। मुझे लगता है ~/.profile व्यक्तिगत पथ के लिए सही है, यद्यपि; यही वह जगह है जहां उबंटू ने कहा ~/bin निर्देशिका। और मैं कबूल करता हूं कि मैंने तरीकों की संख्या पर थोड़ा सा अतिरंजित किया - बस थोड़ा सा। - Marty Fried
@MartyFried, हां, freenode पर #bash में बॉट उद्धृत करने के लिए: «इंटरनेट पर बैश स्क्रिप्ट, कोड, ट्यूटोरियल, और गाइड के भारी बहुमत बकवास हैं। स्टर्जन एक आशावादी था। »बैश समस्या के लिए Google का उपयोग करके, आपको एक अच्छा खोजने से पहले आपको बहुत से आधा काम करने वाले समाधान मिलेंगे। ओह और मैं साथ जाऊंगा ~/.profile इस मामले में भी। - geirha
@ गिरहा - मैं मानता हूं कि आम तौर पर इंटरनेट पर अधिकतर मार्गदर्शिकाएं शायद बकवास होती हैं, विशेष रूप से कुछ अलग-अलग डिस्ट्रोज़ या यहां तक ​​कि अलग-अलग संस्करणों के बाद से कुछ भी लिनक्स, चीजों को अलग-अलग करते हैं। यह आम तौर पर काम करने के लिए उबाल जाता है, लेकिन ज्यादातर लोगों को यह नहीं पता कि काम क्या है जो काम करता है, जरूरी नहीं कि क्या सही है या यहां तक ​​कि हमेशा क्या काम करेगा। मैं यह पता लगाने की कोशिश करता हूं कि कौन से तरीके वास्तव में सही हैं, क्योंकि मुझे एक से अधिक बार काम करने से नफरत है - लेकिन यह हमेशा आसान नहीं होता है। :) - Marty Fried


इसे सिस्टम चौड़ा सेट करने के लिए, लाइन संलग्न करें export PATH=/path/you're/adding:$PATH के अंत तक /etc/profile

केवल लॉग-इन किए गए उपयोगकर्ता के लिए निर्देशिका जोड़ने के लिए, उसी पंक्ति को संलग्न करें ~/.bash_profile


15
2017-07-22 23:20