टर्मिनल को कैसे ठीक नहीं करना है लोडिंग नहीं है ~ / .bashrc OS X Lion पर [बंद]


176

जब भी मैं टर्मिनल का उपयोग करके एक नया टैब खोलता हूं Cmd+ T, तो यह उसी निर्देशिका में बैश खोलता है, जैसा कि पिछले टैब में है। जब मैं ~निर्देशिका में होता हूं तो यह ठीक काम करता है , लेकिन अगर मैं कहीं और हूं, तो मुझे लोड करने में त्रुटि होती है.bashrc

Last login: Sat Oct 15 21:10:00 on ttys002
-bash: .bashrc: No such file or directory
Jakub-Arnolds-MacBook-Pro:projects darth$ 

ऐसा लगता है कि .bashrcसापेक्ष के माध्यम से लोड किया गया है और पूर्ण पथ नहीं है, क्योंकि अगर मैं करता हूं source ~/.bashrc, तो सब कुछ सुचारू रूप से काम करता है।

भरी हुई बाश

मुझे लगता है कि यह एक ओएस एक्स शेर संबंधित समस्या है, क्योंकि स्नो लेपर्ड से अपग्रेड होने से पहले, मेरे पास एक ही मुद्दा नहीं था। लेकिन यह टर्मिनल हमेशा खुलने के कारण हो सकता है ~, मुझे याद नहीं है कि क्या यह उसी निर्देशिका को खोलने की कोशिश करता है।

हालाँकि यह सवाल एक ही है कि मैं ~/.bashrcपूर्ण पथ के माध्यम से टर्मिनल लोड कैसे बना सकता हूं , और सापेक्ष नहीं?


1
इस प्रश्न को Apple में स्थानांतरित किया जाना चाहिए। (यदि संभव हो तो?), बंद नहीं।
Sparr

@ शेपर मैं पूरी तरह से आपके साथ सहमत हूं लेकिन मध्यस्थ केवल नए सवाल को आगे बढ़ा रहे हैं न कि पुराने। चर्चा यहाँ
рüффп

जवाबों:


357

टर्मिनल एक लॉगिन शेल खोलता है। इसका मतलब है, ~/.bash_profileनिष्पादित हो जाएगा, ~/.bashrcनहीं।

अधिकांश सिस्टम पर समाधान "की आवश्यकता" ~/.bashrcमें है ~/.bash_profile: बस इस स्निपेट को अपने में डालें ~/.bash_profile:

[[ -s ~/.bashrc ]] && source ~/.bashrc

8
क्या कोई समझा सकता है कि क्या [[ -s /file/path ]]कर रहा है? स्पष्टीकरण के लिए Google पर कोशिश करना बहुत आसान नहीं है।
शेन

18
से man bash: -s फ़ाइल सही यदि फ़ाइल मौजूद है और उसका आकार शून्य से अधिक है।
crruse

1
"टर्मिनल एक लॉगिन शेल खोलता है" - अन्य प्रकार के ओएस शेल क्या हैं? मुझे इसके बारे में और अधिक दस्तावेज कहां मिल सकते हैं?
डेक्कन नाइट 30'13

4
तथाकथित-संवादात्मक गोले ”और s लॉगिन गोले हैं।” आपका बैश मैनुअल ( man bash) इसके बारे में बात करता है और इसे समझाता है, अध्याय आमंत्रण (बस टाइप करके INVOCATIONकॉल करने के बाद खोजें )man bash/INVOCATION
ccruse

3
मैं यह देखने में विफल रहता हूं कि कोड की एक लाइन द्वारा हल किए गए कोड निष्पादन की स्थिति से संबंधित एक प्रश्न, प्रोग्रामिंग प्रश्न साइट पर "टॉपिक" कैसे है।
19

26

नाम बदला जा रहा .bashrcकरने के लिए .profile(या पूर्व के बाद नरम लिंकिंग) भी चाल करना चाहिए। देखें यहाँ


या आप उन्हें सहानुभूति दे सकते हैं: cd && ln -s ./.bashrc ./.profileध्यान दें कि फ़ाइल पथ के बारे में सहानुभूति संवेदनशील है, मेरा मानना ​​है कि उपरोक्त सिंटैक्स कार्यों का उपयोग कर रहा है, लेकिन यह सुनिश्चित करने के लिए कि आप किसी भी मामले में पूर्ण पथ का उपयोग कर सकते हैं।
स्टीव बेनर

1
उह, नहीं? इन फाइलों के अलग-अलग उद्देश्य हैं। यदि आपके पास बैश सिंटैक्स है .profileतो आप नियमित रूप से टूट जाएंगे sh
ट्रिपलए

14

मेरे पास निम्नलिखित हैं ~/.bash_profile:

if [ -f ~/.bashrc ]; then . ~/.bashrc; fi

अगर मेरे .bashrcबजाय होता ~/.bashrc, तो मैं वही लक्षण देख रहा होता जो आप देख रहे हैं।

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