Mac OS X .bashrc काम नहीं कर रहा है


77

.bashrcमेरे घर निर्देशिका में एक-लाइन फ़ाइल है:

alias countlines='find . -type f -print0 | xargs -0 cat | wc -l'

लेकिन यह उर्फ ​​पैदा नहीं कर रहा है। ऐसा क्यों हो सकता है?

जवाबों:


101

OSX में, के .bash_profileबजाय प्रयोग किया जाता है .bashrc

और हाँ, .bash_profileफ़ाइल /Users/YourName/
(दूसरे शब्दों में, ~/.bash_profile) में स्थित होनी चाहिए

उदाहरण के लिए, /Users/Aaron/.bash_profile


11
यह सही उत्तर नहीं है। उपनाम विरासत में नहीं मिले हैं, इसलिए, यदि आप केवल उन्हें .bash_profile में परिभाषित करते हैं, तो वे गैर-लॉगिन शेल में परिभाषित नहीं किए जाएंगे (जैसे जब आप बैश के अंदर बैश चलाते हैं)।
लाक

1
या फिर कोई भी bash_aliases का उपयोग कर सकता है, जो उपनामों को bashrc में डालने के समान है, लेकिन अधिक प्रबंधनीय है: ss64.com/osx/syntax-bashrc.html
अतुल

4
मेरे .bash_profile में मैंने सिर्फ एक पंक्ति को उपनाम (छंटाई) bashrc ->source ~/.bashrc
एरिक होडोंस्की

86

.[bash_]profileऔर .bashrcओएस एक्स और लिनक्स दोनों पर इस्तेमाल किया जा सकता है। पूर्व लोड किया जाता है जब शेल एक लॉगिन शेल होता है; बाद में जब यह नहीं है। वास्तविक अंतर यह है कि जब उपयोगकर्ता एक ग्राफिकल सेशन में लॉग इन करता है तो लिनक्स एक लॉगिन शेल चलाता है, और फिर, जब आप टर्मिनल एप्लिकेशन खोलते हैं, तो वे शेल नॉन-लॉगिन शेल होते हैं; जबकि OS X ग्राफ़िकल लॉगिन पर एक शेल नहीं चलाता है, और जब आप Terminal.app से शेल चलाते हैं, तो यह एक लॉगिन शेल होता है।

यदि आप चाहते हैं कि आपका उपनाम लॉगिन और गैर-लॉगिन दोनों प्रकारों में काम करे (और आप आमतौर पर करते हैं), तो आपको उन्हें .bashrc और source .bashrc में अपने .bash_profile में इस तरह की रेखा के साथ रखना चाहिए :

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

यह बैश का उपयोग करके किसी भी सिस्टम पर लागू होता है।


15
+1 कैबेट के साथ जो सब कुछ .bashrc में सब-शेल (और सब-,, सबबसब-, आदि) के लिए फिर से चलाया जाएगा, इसलिए उदाहरण के लिए पेट PATH=$PATH:/my/private/binariesब्लोट को बढ़ावा मिलेगा। इसे वर्कअराउंड के लिए देखें ।
गॉर्डन डेविसन

2
सच। चूंकि निर्यात किए गए इंस्टेंस वैरिएबल विरासत में मिले हैं, इसलिए मैंने उन्हें .profileइसके बजाय बस सेट किया है .bashrc
लाक

1
@LaC आप बता सकते हैं _Since एक्सपोर्ट किए गए इंस्टेंस वैरिएबल विरासत में मिले हैं, मैंने उन्हें अभी सेट किया है .profile_...?
सैम

1
@sam, मुझे नहीं पता कि "उदाहरण" कहां से आया है। मेरा मतलब सिर्फ "एक्सपोर्टेड वैरिएबल" था। दुर्भाग्य से मैं उस टिप्पणी को संपादित नहीं कर सकता।
लाक

2
@dinosaur: "-r" चेक करता है कि फाइल पठनीय है या नहीं।
मवेलपंड

7

या .bash_profile नाम का एक सिम्पल लिंक बनाएं। अपने .bashrc पर

ln -s .bashrc .bash_profile

2

मैक ओएस एक्स के .bash_profileबजाय इसका उपयोग करने के कारण इसे अलियास नहीं किया जा रहा है।.bashrc

तो आपके पास दो विकल्प हैं:

  • अपने आप में उपनाम रखो ~/.bash_profile

  • या इस लाइन को जोड़कर अपने .bashrcसे अपने स्रोत :.bash_profile.bash_profile

    . ~/.bashrc


1

पर मैक ओएस एक्स Yosemite , निम्नलिखित कमांड चलाएँ:

vi ~/.profile

फिर निम्नलिखित पंक्ति जोड़ें:

source ~/.bashrc

अब सहेजें और बंद करें .profile, फिर एक नई टर्मिनल विंडो खोलें या बस चलाएँ:

source ~/.profile

इस उत्तर को भी देखें । इसने v10.10.3 पर काम किया।


यह चार साल पहले के जवाबों की तुलना में थोड़ा अधिक है।
जी-मैन

ज़रूर, बस इसे पढ़ने और लागू करने के लिए एक आसान ईगल। प्लस एक छोटा सा योगदान - चूंकि अन्य उल्लिखित फाइलें मेरे ओएस योसेमाइट पर उपलब्ध नहीं थीं।
रिकार्डो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.