.bashrc iTerm + Mac OS X में शामिल नहीं है


62

मैं मैक ओएस एक्स 10.6 में iTerm का उपयोग कर रहा हूं। ऐसा लगता है जब मैंने iTerm खोला, न तो खट्टा है .bashrcऔर न ही .bash_profile। मैं बता सकता हूं क्योंकि परिभाषित किए गए उपनाम .bashrcसेट नहीं हैं। कैसे ठीक करना है?


2
जो हो रहा है ~/.bash_profile, उसे पहले बैश करके लागू किया जा रहा है , जो आपके द्वारा दिए गए निर्देशों को पूरा करने के लिए कम है ~/.bashrc। यह समस्या अप्रत्याशित रूप से हो सकती है यदि कोई दुष्ट प्रोग्राम आपके लिए कुछ निर्देश जोड़ता है ~/.bash_profileजब पहले फ़ाइल मौजूद नहीं थी, और आपने अपने सभी बॉर्डर आदेशों को रखा था ~/.bashrc। इसका समाधान या तो आपके ~ / .bash_profile को हटाना है, या ~ / .bash_profile को अपने ~ / .bashrc को हटाना है। यह कमांड जोड़कर किया जा सकता है: source ~/.bashrcआपके अंत तक ~/.bash_profileऔर टर्मिनल को फिर से शुरू करना।
बजे एरिक लेसिन्सकी

जवाबों:


53

बैश स्रोत EITHER .bash_profile या .bashrc पर निर्भर करता है कि इसे कैसे कहा जाता है। यदि यह एक लॉगिन शेल है, तो बैश उस क्रम में ~ / .bash_profile, ~ / .bash_login, या ~ / .profile की तलाश करता है, और सूत्रों का कहना है कि पहला (इसे और केवल एक) मिल रहा है। यदि यह एक लॉगिन शेल नहीं है, लेकिन इंटरेक्टिव है (अधिकांश टर्मिनल सत्रों की तरह), बैश स्रोत ~ / .bashrc होगा।

इसी तरह, iTerm ~ / .bashrc की तलाश में है। यदि इसे लॉगिन शेल के रूप में शुरू करने के लिए कॉन्फ़िगर किया गया है, तो यह ~ / .bash_profile के लिए दिखेगा। यह लगभग निश्चित रूप से विन्यास फाइल के भीतर एक त्रुटि है बजाय इसके कि शेल इसे सोर्स नहीं कर रहा है।

मैं प्रत्येक फ़ाइल की शुरुआत में एक लाइन लगाऊंगा। ~ / .Bash_profile के शीर्ष पर:

export BASH_CONF="bash_profile"

और ~ / .bashrc के शीर्ष पर:

export BASH_CONF="bashrc"

फिर, एक नया iTerm खोलें और टाइप करें

$ echo $BASH_CONF

यह पुष्टि करनी चाहिए कि फ़ाइल खट्टी हो रही है और आप फ़ाइल के सिंटैक्स में देख सकते हैं।


2
प्रत्येक स्रोत फ़ाइल के लिए एक अलग वातावरण चर सेट करना अधिक जानकारी के लिए अनुमति देता है, अर्थात, यदि एक से अधिक फ़ाइल
खट्टा है

यह अभी भी .bashrc फ़ाइल को लोड नहीं करता है। मुझे अपने iTerm और Terminal Preferences में स्रोत ~ / .bashrc जोड़ना था। btw मैं मैक ओएस एक्स 10.9.5 का उपयोग कर रहा हूं।
विशाल

मैंने सिर्फ एक .profile फ़ाइल जोड़ी है और वह स्वचालित रूप से OS X 10.9.5 पर आपकी टर्मिनल प्राथमिकताओं में गड़बड़ी के बिना काम करती है।
विशालकाय एल्क

1
मुझे पता चला कि यह वरीयताओं पर जाकर एक लॉगिन शेल है -> प्रोफाइल -> सामान्य और लॉगिन शेल कमांड के तहत चुना गया है। मैकओएस एल कैपिटन और iTerm2 3.0.14 पर मान्य
आदित्य

यहां समाधान मेरे काम नहीं आया, लेकिन मुझे एक समाधान मिला। शुरुआत में, कोई bashrc नहीं था और कोई bash_profile नहीं था। यहाँ जवाब एक bashrc बनाने का प्रस्ताव है। एक bashrc फ़ाइल बनाने के बजाय मैंने एक bash_profile बनाया, और यह काम किया। अब मुझे यह समझने की ज़रूरत है कि बैशकेश को क्यों नहीं निष्पादित किया गया और बैश_प्रोफाइल हाँ।
kalmanIsAGameChanger

68

ITerm2 में, इनमें से किसी भी समाधान ने मेरे लिए काम नहीं किया। मैं इसे ठीक से कमांड को जोड़कर मेरी .bashrc फ़ाइल को पढ़ने में सक्षम था

source ~/.bashrc 

करने के लिए : संदेश शुरू में पाठ मेरी iTerm प्रोफ़ाइल के लिए सेटिंग्स में क्षेत्र / जनरल।

यहाँ छवि विवरण दर्ज करें


जब आपने किया तो क्या हुआ जो स्वीकृत उत्तर बताता है? उत्पादन नही?
डैनियल बेक

सही। मुझे कोई आउटपुट नहीं मिला, और iTerm 2 ने बस अपने किसी भी उपनाम के साथ डिफ़ॉल्ट बैश शेल को लोड नहीं किया।
मार्क स्ट्रूजिंस्की

वह जवाब अभी तक टूट गया था - दूसरा स्निपेट में जाना था ~/.bashrc। इसे संपादित किया।
डैनियल बेक

मैं ZSH का उपयोग करता हूं और एक ही मुद्दा रहा था। सिवाय इसके कि मेरी कोई भी कॉन्फ़िग फ़ाइल पहले स्थान पर मौजूद नहीं थी और उसे बनाया जाना था। मैंने इस उत्तर का उपयोग किया और "प्रारंभ पर पाठ भेजें" सेट किया, हालांकि जब मैंने ZSH को फिर से शुरू किया तो उसने .zsh और मेरी फ़ाइल को ओवरराइट कर दिया, मैं "प्रारंभ पर पाठ भेजें" को निकालने और नई उत्पन्न फ़ाइल में अपने कॉन्फ़िगरेशन को जोड़ने में सक्षम था। यकीन नहीं होता कि यह किसी की मदद करता है
अर्नोलियो

मुझे लगा कि यह मेरी समस्या है .. और फिर जिस तरह से महसूस किया कि मेरे होम कैटलॉग में वह फ़ोल्डर नहीं था जिसे मैंने शुरू किया था .. इसलिए मैंने अपना .bash_profile दूसरे स्थान पर स्थानांतरित कर दिया और मुझे लगा कि मैं ln -s (इसके लिए सहानुभूति रखता हूं) मेरी ~ (होम) कैटलॉग से, मैं वास्तव में गलत फ़ोल्डर में एक सिमलिंक जोड़ रहा था। यहां इसे जोड़ने से यह किसी और की मदद करता है, जो इस उत्तर के लिए जा रहा था।
एलिसो

23

मुझे आश्चर्य है कि क्या आप वास्तव में बैश का उपयोग करते हैं? हो सकता echo $SHELLहै कि आप उपयोग कर सकते हैं , यह काफी संभव है कि आप zsh का उपयोग कर रहे हैं , क्या आपने my-zh स्थापित किया है ?

Acutually मैं एक ही समस्या का सामना के रूप में आप, मैं इसे कॉन्फ़िगर करके ठीक ~ / .zshrc बजाय या तो ~ / .bash_profile लॉगिन खोल या के लिए ~ / .bashrc गैर लॉगिन खोल के लिए।

शायद आपके पास एक कोशिश हो सकती है


1
दिलचस्प सुझाव, हालांकि यह सवाल 3 साल पुराना है और इसमें एक स्वीकृत उत्तर है।
टायसन

12

मेरे 10.6 मशीन ~/.profileपर स्रोत है। तो एक source .bashrcप्रविष्टि में ~/.profileकाम करना चाहिए।


मैक ओएस एल कैपिटन पर मेरे लिए काम किया।
user674669

मेरा अनुभव कहता है कि आप एक .bashx फ़ाइल को दूसरे से स्रोत नहीं करना चाहते हैं, वे एक कारण से अलग हैं :) यदि आप ऐसा कर रहे हैं, तो कुछ गलत है
अलेक्जेंडर मिल्स

@AlexanderMills इन फ़ाइलों के मौजूद होने का कारण यह है कि मैक ने उन्हें सीधे यूनिक्स से बाहर निकाल दिया। कोई कारण नहीं है कि वे सभी एक उपयोगकर्ता के लिए लोड नहीं होना चाहिए।
RaisinBranCrunch

यदि आप एक-दूसरे को लोड करते हैं, तो आप सर्कुलर कॉल प्राप्त कर सकते हैं, समस्या है, इससे बचने का सबसे अच्छा तरीका है कि एक एनवी वर्जन के साथ एक बूलियन को फ्लिप करें और केवल अन्य फ़ाइलों को लोड करें यदि बूलियन सेट नहीं है।
अलेक्जेंडर मिल्स

8

आसान तय।

1. अपनी ~/.zshrcफ़ाइल खोलें

2. फ़ाइल के अंत में निम्न पंक्ति जोड़ें।

source ~/.bash_profile

1
प्रतिभाशाली! वो मेरे लिए किया गया। यह मेरे लिए कभी नहीं हुआ कि ओश-मेरी-ज़ी को स्थापित करने के बाद zsh रास्ते में मिल रहा था।
सिंडी कॉनवे

6

मेरे 10.9 मशीन पर ~ / .bash_profile को सॉर्ट किया गया है। तो एक स्रोत .bashrc प्रविष्टि ~ / .bash_profile में काम करना चाहिए।


1

अपनी अलियास परिभाषाओं को बैश प्रोफाइल फाइल में रखें, आपको फाइल बनानी होगी लेकिन यह अपने आप खट्टी हो जाएगी। मैं एक अलग फ़ाइल बनाता हूं जिसे alias.configuration नाम दिया गया है और इसे स्रोत में .bash_profile सिर्फ इसलिए क्योंकि मेरे पास एक और उपयोगकर्ता परिभाषित है और एक ही उपनाम सेट करना चाहता है।


1
वास्तव में न तो खट्टा है .bashrcऔर न ही .bash_profile
कम्प्यूटेशनल

1

जोड़ना

set -x

की शुरुआत में /etc/profile। जब यह आपको मार डाला जाता है कि सब कुछ की एक पंक्ति-दर-पंक्ति ब्यौरा देती है bashशुरू होता है, भीतर से प्राप्त फ़ाइलों सहित /etc/profile, ~/.bash_profile, आदि यह थोड़ा कठिन है कि अगर आप समझ में नहीं आता bashपटकथा बहुत अच्छी तरह से है, लेकिन आप यह देखने के लिए सक्षम हो सकता है स्टार्ट-अप फ़ाइल में कोई त्रुटि है, और आउटपुट bashआपकी समस्या का पता लगाने में मदद करने के लिए किसी के लिए उपयोगी होगा ।

set -xसमस्या निवारण पूर्ण होने पर आप लाइन हटा सकते हैं।


1

10.10 और iTerm2 2.0 पर, अनुकूलित प्रोफ़ाइल

  • .bash_rc को काम करना चाहिए।
  • .bash_profile, "/ bin / bash --login" के बजाय "/ bin / bash" आज़माएं

मैंने इस जवाब को वोट दिया क्योंकि ऐसा लगता है कि ओएस एक्स में केवल एक ही स्वीकार करता है, किसी बिंदु पर, bash स्रोत ".bash_rc" के बजाय ".bashrc" होगा। मैं केवल यहां आया क्योंकि मैं यह जानने की कोशिश कर रहा था कि (और मुझे अभी भी पता नहीं है)।
मार्निक्स ए। वैन एम्मर्स

0

ITerm2 में, सुनिश्चित करें कि आप "लॉगिन" सहित एक कस्टम कमांड के बजाय "लॉगिन शेल" का उपयोग कर रहे हैं, जो वह नहीं करता है जो आप अपेक्षा करते हैं।


ITerm2 कमांड वास्तव में क्या करता है?
स्टूजेक

0

निम्नलिखित परिवर्तन करें और iTerm bashrc स्रोत करेगा

iTerm> वरीयताएँ> जनरल> [x] कमांड: / बिन / बैश


0

समस्या को नीचे लाइन में जोड़कर तय किया जा सकता है / etc / bashrc

[-r "$ HOME / .bashrc"] &&। "$ HOME / .bashrc"


-1

मैंने उम्मीद की तरह काम करने के लिए कुछ समाधानों को एक साथ जोड़ा।

.bash_profile स्रोत और zsh पर चलाएँ।

Preferences -> Profiles -> General

कमांड के तहत कमांड का चयन करें।
और टेक्स्ट बॉक्स में जोड़ें /bin/bash --login

फिर .bash_profile ऐड लाइन /bin/zsh --login

बस।


(१) क्या? (२) यदि आप bashहमेशा भाग रहे हैं zsh, तो वह नहीं है जो कोई उम्मीद करता है।
स्कॉट

अगर मैं सेट / बिन / बैश - क्लोइन, यह zsh की कोई भी सुविधा प्रदान नहीं करता है। तब यदि मैं इसे वरीयता में लॉगिन में बदल देता हूं, तो यह .bash_profile नहीं पढ़ता है। हर बार मुझे source ~/.bash_profileमैन्युअल रूप से चलना होगा । @ स्थिति उपरोक्त बातों को करने के बाद, मेरे पास आवश्यक तरीके से zsh है।
मुहम्मद तुलसी

(1) मेरी बात यह है कि है zshहो सकता है क्या आप की इच्छा , लेकिन यह नहीं है आवश्यक या के लिए कहा इस सवाल है, जो टैग है [बैश] और के बारे में कुछ नहीं कहा से zsh। (2) यदि आप अपने .bashrcऔर / या में उपनाम और शेल फ़ंक्शंस निर्धारित करते हैं (बिना उन्हें निर्यात किए) और .bash_profileक्या वे आपके zshशेल में आपके लिए उपलब्ध हैं ?
स्कॉट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.