मैं मैक ओएस एक्स पर $ PATH चर को कैसे रीसेट करूं?


17

मैंने अपने पथ चर को गड़बड़ कर दिया है, और अब कुछ ऐप जो मैं चलाते हैं त्रुटियों को कहते हैं कि कमांड नहीं मिला (त्रुटि 127) जैसे कि दिनांक और नींद । शेल में सीधे निष्पादित होने पर ये कमांड ठीक काम करते हैं।

मुझे लगता है कि यह एक विकृत $ PATH चर के साथ करने के लिए कुछ है, और इसे रीसेट करने का तरीका जानने की आवश्यकता है। मैं फ़ाइलों को हटा देने के बाद ~ / .bashrc , ~ / .bash_profile , /etc/bash.bashrc , और ~ / .bashrc और ~ / .profile

क्या अन्य फाइलें मेरे $ PATH को पकड़ सकती हैं ? वहाँ कुछ आसान तरीका है जो मेरे रास्ते पकड़ सकता है असंख्य फाइलों में खुदाई से पथ को रीसेट करने के लिए है?

ध्यान दें, यह पथ समस्या केवल मेरे उपयोगकर्ता के साथ है। मैंने अपने सिस्टम पर एक परीक्षण उपयोगकर्ता बनाया, और पथ ठीक था, वापस सामान्य हो गया।

अद्यतन: धन्यवाद। मुझे पता है कि जो एक फाइल मैंने डिलीट की थी, उसने किया, लेकिन चीजें फिर से काम कर रही हैं। आप लोगों ने वह किया जो 'विशेषज्ञ' नहीं कर सकते थे। और हाँ, क्रिस, आप सही थे। मेरे द्वारा किए गए PATH अनुकूलन bash_login में थे। लेकिन किसी तरह यह मेरे बिना उन अनुकूलन को हटाने के बिना काम किया। मुझे लगता है कि यह coz हो सकता है मैं 'RCEnvironment' नामक इस प्रीफेन का उपयोग कर रहा था, और मैंने उद्धरणों के साथ एक पथ दर्ज किया था: और इसमें पथ। मुझे पता नहीं कि क्या यह उद्धरण लेता है, और यह प्रतिस्थापित नहीं करता है: $ PATH, ताकि संभवतः त्रुटि की जड़ हो। मैं भूल गया था कि मैं भी पूर्वनिर्मित था!


1
/ etc / प्रोफाइल PATH के लिए सेटिंग्स प्रारंभिक मानों के लिए सबसे संभावित स्थान है, लेकिन वहां कुछ ऐसा है जो सभी उपयोगकर्ताओं को प्रभावित करेगा। वहाँ भी है ~ / .bash_login, जिसे आपने सूचीबद्ध नहीं किया था (हालांकि आपने पहले ही इसे समाप्त कर दिया है)।
क्रिस जॉन्सन

जवाबों:


19

यदि आपके पास एक ~ / .MacOSX / environment.plist फ़ाइल है, तो यह देखने के लिए जांचें कि क्या यह डिफ़ॉल्ट पथ मूल्य प्रदान करता है।

यदि यह एक्सएमएल प्रारूप में है (प्लिस्ट कई प्रारूपों में हो सकता है), तो आप किसी भी पाठ संपादक के साथ संपादित कर सकते हैं। plutil -lint ~/.MacOSX/environment.plistयदि आप इसे हाथ से संपादित करते हैं, तो इसे देखें ।

या, आप एक्सएमएल या बाइनरी प्रारूप प्लिस्ट फाइलों में नियंत्रित संशोधन करने के लिए डिफॉल्ट या प्लिस्टबड्डी जैसे आदेशों का उपयोग कर सकते हैं ।


आप किसी भी शेल के इनिशियलाइज़ेशन फाइल में हमेशा अपना पैठ सेट कर सकते हैं।

अपने शेल की स्टार्टअप फाइल्स ( .bashrc, या .bash_profile/ .bash_login/ .profile) में निम्नलिखित की तरह कुछ डालें :

PATH=/usr/bin:/bin:/usr/sbin:/sbin
export PATH

# add custom, local installations to PATH
PATH=/usr/local/bin:/usr/local/sbin:"$PATH"

# add MacPorts to PATH
PATH=/opt/local/bin:/opt/local/sbin:"$PATH"

शेल के शुरू होने पर जो भी डिफ़ॉल्ट पथ सेट होता है उसे ओवरराइड करेगा (पहला PATH=उपयोग नहीं करता है $PATH, इसलिए यह हमेशा केवल जो भी आप इसे देता है, उसके साथ शुरू होगा)।

केवल 'लॉगिन' फ़ाइलों में से एक कभी (पहले एक है कि मौजूद है और की पठनीय है इस्तेमाल किया जाएगा ~/.bash_profile, ~/.bash_loginऔर ~/.profileउपयोग किया जाएगा)। .profileअन्य गोले के साथ पीछे की संगतता के लिए है - यदि आप इसका उपयोग करते हैं, तो इसे सिंटैक्स से मुक्त रखना सुनिश्चित करें जो बैश के लिए विशिष्ट है । यदि आप साथ जाते हैं .bash_loginया .bash_profile(वे नामों के अलावा कार्यात्मक रूप से समतुल्य हैं), तो [[ -e ~/.bashrc -a -r ~/.bashrc ]] && source ~/.bashrc ]]शीर्ष के पास एक रेखा का उपयोग करें ताकि लॉगिन गोले भी आपके द्वारा किए गए अनुकूलन प्राप्त करेंगे .bashrc

यदि आप चाहते हैं कि bash के सभी उदाहरण समान PATH हों, तो उपयोग करें .bashrc। यदि आप अक्सर अपने आप को कमांड लाइन से एकल शेल के पैट को संशोधित करते हुए पाते हैं और उस संशोधित पैट का उपयोग उपखंडों में करना चाहते हैं (ऐसे मामले जो शायद बहुत आम नहीं हैं), तो आपको इसके बजाय 'लॉगिन' फाइलों में से एक में स्टेटमेंट डालना चाहिए। । लॉगिन फ़ाइलों में से केवल एक को चुनें और इसका उपयोग करें।


8

1. अपने टर्मिनल खोलें

2. आप सबसे पहले केवल अपने वर्तमान $PATH, प्रकार की जांच कर सकते हैं

$ PATH प्रतिध्वनि

टर्मिनल के लिए

3. अगर $PATHउस टर्मिनल ने वापस वही रास्ता दिया है जो आप चाहते हैं, तो आप अच्छे हैं; यदि नहीं, टाइप करें

निर्यात पाथ = / usr / bin: / bin: / usr / sbin: / sbin

, फिर टाइप करें

स्पर्श ~ / .bash_profile

, और फिर टाइप करें

खुला ~ / .bash_profile

, तो आप एक EditText खोल पाएंगे, अब उस EditText में जिस रास्ते को चाहते हैं उसे टाइप करें; उदाहरण के लिए, टाइप करें

पथ = / usr / bin: / बिन: / usr / sbin: / sbin

(जो $PATHमैक के लिए डिफ़ॉल्ट है, यह देखते हुए कि आप इसे रीसेट करना चाहते हैं $PATHताकि आप इसे संभवतः टाइप करें), इसे सहेजें, और फिर EditText को बंद करें, फिर टर्मिनल को बंद करें।

4.अब आप पहले ही अपने को बदल चुके हैं $PATHया मैक के डिफ़ॉल्ट पर रीसेट कर चुके हैं $PATH!


2
मुझे लगता है कि ऊपर बहुत कुछ है जिसका कोई प्रभाव नहीं है। आपको क्यों लगता touchहै कि आवश्यकता है? इसके अलावा, जैसा कि आप वैसे भी टर्मिनल को बंद कर रहे हैं, exportकमांड लाइन पर क्यों चलाए जा रहे हैं , बल्कि तब इसे केवल ~/.bash_profile(जो exportभी चाहिए) को जोड़कर इसके साथ किया जाए? (वैकल्पिक रूप से, source ~/.bash_profileवर्तमान विंडो में परिवर्तनों को लागू करने के लिए चलाएं ।)
अर्जन

सच है, इसमें से कुछ बेमानी है। PATH मान को .bash_profile पर सहेजना चाहिए।
थिंककोड

1

rc/profileदिखाए गए क्रिस जॉनसन के संपादन भी ठीक काम करते हैं /etc/profile

मैंने अभी जोड़ा:

export PATH="/usr/local/mariadb/bin:$PATH"

/etc/profileमारियाडीबी स्थापित (जो MySQL के लिए एक महान ड्रॉप-इन प्रतिस्थापन के रूप में काम करता है) को पूरा करने के लिए मैक ओएस एक्स 10.9 Mavericks में मेरी फ़ाइल के लिए।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.