सवाल मैक ओएस एक्स हिम तेंदुए और शेर पर .bashrc फ़ाइल कहां खोजें?


मैं अपनी हिम तेंदुए मशीन पर आरवीएम स्थापित करना चाहता हूं।

यह कहता है कि मुझे अपनी एक लाइन जोड़ने की जरूरत है .bashrc फ़ाइल (मैं बैश का उपयोग कर रहा हूँ) लेकिन मेरा कहाँ है .bashrc फाइल?


84
2018-05-30 21:03


मूल


आपको अपना समाधान उत्तर में रखना चाहिए और इसे स्वीकार करना चाहिए (आपको एसयू से ऐसा करने की अनुमति देने से पहले आपको एक या दो दिन का इंतजार करना होगा) इस तरह से एक ही समस्या वाले लोग सवाल देख सकते हैं कि इसका जवाब है। - Nifle
उनका समाधान शीर्ष वोट वाले उत्तर से अलग नहीं है .. - David Cowden
बस यह सुनिश्चित करने के लिए, यह "लिनक्स = .bashrc बनाम मैक ओएस =। (Bash_) प्रोफ़ाइल का मुद्दा नहीं है" शेल स्टार्टअप फ़ाइलें लिनक्स और मैक पर समान होती हैं और .bashrc फ़ाइल सत्र के लिए अधिक aproperiate जगह है विशिष्ट सेटिंग्स। आप उदाहरण के लिए tmux या स्क्रीन का उपयोग करते हैं, जिसमें आपके पास लॉगिन सत्र नहीं हो सकते हैं लेकिन फिर भी आपके उपनाम चाहते हैं। मैक अलग-अलग कारणों का कारण यह है कि अधिकांश लिनक्स वितरण सिस्टम प्रोफ़ाइल स्क्रिप्ट या कंकाल प्रोफाइल भेजते हैं जो पहले से ही प्रतिनिधि (स्रोत) bashrc को प्रतिनिधि करते हैं। - eckes


जवाब:


समस्या के बारे में .bashrc ऊपर:

ज्यादातर प्रणालियों पर, ~/.bashrc केवल एक शुरू करते समय उपयोग किया जाता है इंटरैक्टिव गैर लॉगिन खोल। हालांकि, जब आप एक नया खोल शुरू करते हैं तो यह अक्सर होता है इंटरैक्टिव लॉग इन करें खोल। चूंकि यह एक है लॉग इन करें खोल, द .bashrc अनदेखा किया जाता है। गैर-लॉगिन और लॉगिन शैल के बीच पर्यावरण को सुसंगत रखने के लिए, आपको स्रोत करना होगा .bashrc तुम्हारे द्वारा .profile या तुम्हारे .bash_profile

बैश रेफरेंस मैनुअल, सेक्शन देखें 6.2 बैश स्टार्टअप फ़ाइलें

एक इंटरैक्टिव लॉगिन खोल के रूप में आमंत्रित किया,   या --login के साथ

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

एक इंटरैक्टिव गैर-लॉगिन खोल के रूप में आमंत्रित किया गया

जब एक इंटरैक्टिव खोल जो लॉगिन खोल नहीं है, बैश पढ़ता है और निष्पादित करता है   ~ / .bashrc से आदेश, अगर वह फ़ाइल मौजूद है।

तो, आमतौर पर, आपके ~ / .bash_profile   रेखा है

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

किसी भी लॉगिन-विशिष्ट प्रारंभिकरण के बाद (या पहले)।

मेरे मैक (रनिंग तेंदुए) पर, स्रोत के लिए कोई पंक्ति नहीं थी ~/.bashrc। मुझे यह कार्यक्षमता स्वयं ही जोड़नी पड़ी।

कुछ प्रणालियों और अन्य ओएस पर, .bashrc वैश्विक से सोर्स किया गया है /etc/profile या /etc/bash_profile , या टेम्पलेट फ़ाइलों का उपयोग कर किया जाता है /etc/skel

ईमानदार होने के बीच ईमानदार होना .bashrc तथा .bash_profile समुदाय द्वारा अच्छी तरह से समझ में नहीं आता है। जब कई डेवलपर्स कहते हैं, "इसे अपने .bashrc में जोड़ें", तो उनका वास्तव में क्या अर्थ है "इसे अपने .bash_profile में जोड़ें"। वे कार्यक्षमता को आपके साथ जोड़ना चाहते हैं लॉग इन करें खोल (जो है .bash_profile), आपके लिए नहीं गैर लॉगिन खोल। हकीकत में, यह आमतौर पर कॉन्फ़िगरेशन में कोई फर्क नहीं पड़ता और रखता है .bashrc स्वीकार्य है।


75
2018-06-01 17:26



यह लिंक शैल के प्रकारों का एक अच्छा अवलोकन देता है और जब स्टार्टअप फ़ाइलों को लोड किया जाता है - hacktux.com/bash/bashrc/bash_profile - studgeek
यहां "सोर्स" का क्या अर्थ है? - elgrego
@elgrego, यहां एक अच्छा विवरण है: जब कोई फ़ाइल सोर्स की जाती है (या तो स्रोत फ़ाइल नाम या कमांड लाइन पर फ़ाइल नाम टाइप करके), फ़ाइल में कोड की रेखाएं निष्पादित की जाती हैं जैसे कि वे कमांड लाइन पर मुद्रित होते हैं। देख tldp.org/HOWTO/Bash-Prompt-HOWTO/x237.html - Stefan Lasiewski


तो यह पता चला है कि मैक ओएस एक्स हिम तेंदुए के साथ-साथ मैक ओएस एक्स शेर पर, लोड की गई फ़ाइल को बुलाया जाता है .profile, नहीं .bashrc

आप जो करना चाहते हैं वह एक फाइल बना रहा है ~/.profile और इसे कॉल करें। प्रोफाइल (यदि यह पहले से मौजूद नहीं है)।

वहां बैश के प्रत्येक उदाहरण के साथ लोड करने के लिए आपको जो भी जानकारी चाहिए, उसे रखें (धन्यवाद, thepurplepixel)।

कुछ पक्ष नोट्स:

  1. फ़ाइल के सामने की अवधि इसे खोजक के लिए अदृश्य के रूप में चिह्नित करती है और डिफ़ॉल्ट रूप से ls कमांड। एलएस का उपयोग कर अदृश्य फाइलों को सूचीबद्ध करने के लिए टर्मिनल से कमांड, का उपयोग करें -a इस तरह के पैरामीटर के रूप में: ls -a
  2. ~ प्रतीक के लिए खड़ा है /Users/YourUserName जहां आपका यूज़र नाम आपका उपयोगकर्ता नाम का संक्षिप्त नाम है।

संपादित करें: क्रिस पेज नोट्स (सही ढंग से) कि जो भी आप एक .profile फ़ाइल में रखते हैं, वह जो भी खोल आप उपयोग कर रहे हैं (यानी zhs, bash, et cetera) पर लागू होगा। यदि आप सामग्री को केवल बैश खोल को प्रभावित करना चाहते हैं, तो सामग्री को एक में रखें .bash_profileएक के बजाय फ़ाइल .profile फ़ाइल।


57
2017-12-20 23:51



1 जून 2010 को आपके प्रश्न का उत्तर [सही ढंग से] दिया गया - एक दिन बाद आपने यह पूछा। एक साल बाद, आप वापस आते हैं और सटीक उत्तर देते हैं और अपना जवाब स्वीकार करते हैं ... - David Cowden
असल में उनका जवाब 1 जून 2010 को दिए गए उत्तर से अधिक विस्तार जोड़ता है। वह विशेष रूप से मैक ओएस एक्स पर इस मुद्दे को संबोधित करता है जिसे मैंने मददगार पाया। - webworm
ध्यान दें कि अगर ए .bash_profile तब पहले से ही आपके घर निर्देशिका में मौजूद है .profile फ़ाइल नहीं पढ़ी जाएगी! - Phani
मेरे पास मैक ओएस एल कैपिटन का एक नया इंस्टॉल है। कोई नहीं है प्रोफ़ाइल फ़ाइल। बस एक .profile फ़ाइल बनाएं और यह काम करता है। मैंने व्यक्तिगत रूप से मेरा .bashrc को .profile का नाम दिया। - Nicolas Thery


आपको अपना खुद का बनाना है .bashrc। आप फ़ाइल बनाने के लिए बस एक टेक्स्ट एडिटर का उपयोग कर सकते हैं .bashrc (कोई एक्सटेंशन नहीं) जो सामग्री आप चाहते हैं और इसे अपनी होम निर्देशिका में सहेजें (/Users/YourUserName/)।


4
2018-05-30 21:05



वास्तव में, यह काम नहीं किया, लेकिन आपने मुझे अपनी खुद की फाइल बनाने के लिए मुझे सही दिशा में भेज दिया। एक हिम तेंदुए कॉन्फ़िगरेशन पर काम करने वाली फ़ाइल .profile थी, नहीं .bashrc (जो किसी कारण के लिए इस ओएस में लोड नहीं है)। मैं प्रश्न में विस्तृत निर्देश पोस्ट करूंगा। धन्यवाद! - Yuval
@ युवाल: डिफ़ॉल्ट रूप से, ए .bashrc काम करेगा, लेकिन केवल अगर कोई नहीं है .profile। मेरा अनुमान ~/.profile डिफ़ॉल्ट रूप से मौजूद है, यद्यपि। मैं खुशी से मदद कर सकता है! (और आपको अपना समाधान उत्तर में रखना चाहिए और इस प्रश्न के भविष्य के पाठकों के लिए इसे स्वीकार करना चाहिए)। - squircle
मुझे आपकी टिप्पणी के बारे में लगता है केवल अगर कोई नहीं है। प्रोफाइल गलत है। .bashrc एक इंटरैक्टिव गैर-लॉगिन खोल के भीतर काम करेगा, या अगर इसे .profile से भेजा जाता है (.bash_profile शायद एक बेहतर जगह है, क्योंकि प्रोफाइल बोर्न शैल के लिए है)। .profile एक इंटरैक्टिव गैर-लॉगिन खोल के दौरान प्रयोग किया जाता है। - Stefan Lasiewski
@Stefan यह सही लगता है, तो। मैं एक विशेषज्ञ नहीं हूँ :) - squircle
कोई नहीं है ;)। यह सामान (.bashrc बनाम प्रोफाइल बनाम .bash_profile बनाम .bash_login बनाम इंटरैक्टिव लॉगिन खोल बनाम इंटरैक्टिव गैर-लॉगिन खोल बनाम गैर-इंटरैक्टिव खोल) उलझन में है, और यह कई यूनिक्स और शैल स्क्रिप्ट द्वारा टूटा हुआ है और ओवरराइड है। - Stefan Lasiewski


मुझे लगता है कि मेरे ओएस 10.6.5 में बैश सेटिंग्स "/ etc / bashrc" में हैं। मुझे लगता है कि यह खोल के लिए अपूर्ण विनिर्देश है।

हालांकि, आपको इसे संशोधित करने के लिए रूट खाते की आवश्यकता है। सिस्टम-स्तरीय बैश सेटिंग्स को पढ़ने और लोड करने के लिए स्थानीय प्रति-उपयोगकर्ता विनिर्देश "~ / .bashrc" निम्न स्निपेट से प्रारंभ होना चाहिए:

if [ -r /etc/bashrc ]; then
    . /etc/bashrc 
fi

मैं आमतौर पर सिस्टम स्तर bashrc में उपनाम जोड़ता हूं ताकि सभी उपयोगकर्ता भी उन्हें एक्सेस कर सकें। जब तक वे आपके शॉर्टकट्स और उपनामों का उपयोग नहीं करना चाहते हैं।

सौभाग्य!


3
2017-11-26 08:02



/ etc / profile (लॉगिन शैल द्वारा चलाया जाता है) एक वैश्विक बैश स्टार्टअप स्क्रिप्ट है जो सभी उपयोगकर्ताओं पर लागू होती है और लॉगिन शैल के लिए डिफ़ॉल्ट व्यवहार प्रदान करती है। यह बदले में / etc / bashrc चलाता है, जिसमें अनुकूलन शामिल होते हैं जो लॉगिन और गैर-लॉगिन दोनों गोले पर लागू होते हैं। इसी तरह, व्यक्तिगत उपयोगकर्ताओं को ~ / .bash_profile फ़ाइल बनाना चाहिए जो ~ / .bashrc चलाता है, जहां अधिकांश अनुकूलन होना चाहिए, और ~ / .bashrc को गैर-लॉगिन शैल के लिए डिफ़ॉल्ट व्यवहारों का उत्तराधिकारी / etc / bashrc चलाना चाहिए। - Chris Page
व्यक्तिगत उपयोगकर्ताओं के लिए, इन अनुकूलन को अपनी होम निर्देशिका में जोड़ना सबसे अच्छा है ~/.bashrc , नहीं /etc/bashrc। /etc/bashrc आपके सिस्टम पर सभी उपयोगकर्ताओं के लिए वैश्विक सेटिंग्स हैं, जो शायद आप जो चाहते हैं वह नहीं है। इसके अलावा, ऐप्पल साथ आ सकता है और बदल सकता है /etc/bashrc समय-समय पर, जो आपके अनुकूलन को उड़ा सकता है। - Stefan Lasiewski


किसी भी चीज को जोड़ने के लिए .profile फ़ाइल का उपयोग करें जिसे आप linux .bashrc फ़ाइल में जोड़ देंगे।

उदाहरण के लिए

PATH=/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/:/opt/local/bin:/opt/depot_tools/:~/bin:$PATH
alias t='/Users/<username>/.todo/todo.sh'
alias punch='python /Users/<username>/.todo/Punch.py'
alias clock='cat </dev/tcp/time.nist.gov/13'
alias sudotext="sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit" 

1
2018-06-01 18:18



मैं आपको ~ / .bash_profile (~ / .profile के बजाए) का उपयोग करने की सलाह देता हूं जबतक कि आप निश्चित नहीं हैं कि आप अपने कस्टमाइज़ेशन को अन्य गोले में प्रभावी करना चाहते हैं और वे संगत हैं। - Chris Page
बस यह सुनिश्चित करने के लिए, यह "लिनक्स = .bashrc बनाम मैक ओएस =। (Bash_) प्रोफ़ाइल का मुद्दा नहीं है" शेल स्टार्टअप फ़ाइलें लिनक्स और मैक पर समान होती हैं और .bashrc फ़ाइल सत्र के लिए अधिक aproperiate जगह है विशिष्ट सेटिंग्स। आप उदाहरण के लिए tmux या स्क्रीन का उपयोग करते हैं, जिसमें आपके पास लॉगिन सत्र नहीं हो सकते हैं लेकिन फिर भी आपके उपनाम चाहते हैं। मैक अलग-अलग कारणों का कारण यह है कि अधिकांश लिनक्स वितरण सिस्टम प्रोफ़ाइल स्क्रिप्ट या कंकाल प्रोफाइल भेजते हैं जो पहले से ही प्रतिनिधि (स्रोत) bashrc को प्रतिनिधि करते हैं। - eckes