मैं अपने स्नो लेपर्ड मशीन पर आरवीएम स्थापित करना चाहता हूं।
यह कहता है कि मुझे अपनी .bashrcफ़ाइल में एक पंक्ति जोड़ने की आवश्यकता है (मैं bash का उपयोग कर रहा हूँ) लेकिन मेरी .bashrcफ़ाइल कहाँ है ?
मैं अपने स्नो लेपर्ड मशीन पर आरवीएम स्थापित करना चाहता हूं।
यह कहता है कि मुझे अपनी .bashrcफ़ाइल में एक पंक्ति जोड़ने की आवश्यकता है (मैं bash का उपयोग कर रहा हूँ) लेकिन मेरी .bashrcफ़ाइल कहाँ है ?
जवाबों:
.bashrcउपरोक्त समस्या के बारे में :
अधिकांश प्रणालियों पर, ~/.bashrcकेवल तभी उपयोग किया जाता है जब एक इंटरैक्टिव गैर-लॉगिन शेल शुरू होता है । हालाँकि, जब आप एक नया शेल शुरू करते हैं तो यह अक्सर एक इंटरेक्टिव लॉगिन शेल होता है । चूंकि यह एक लॉगिन शेल है, पर .bashrcध्यान नहीं दिया जाता है। गैर-लॉगिन और लॉगिन गोले के बीच पर्यावरण को सुसंगत रखने के लिए, आपको .bashrcअपने .profileया अपने स्रोत से स्रोत बनाना होगा .bash_profile।
बैश संदर्भ मैनुअल देखें, खंड 6.2 बैश स्टार्टअप फाइलें
एक इंटरेक्टिव लॉगिन शेल के रूप में, या क्लोएजिन के साथ आमंत्रित किया गया
जब बैश को एक इंटरेक्टिव लॉगिन शेल के रूप में या एक गैर-इंटरेक्टिव शेल के रूप में - एल्गिन विकल्प के रूप में लागू किया जाता है, तो यह पहले फ़ाइल / आदि / प्रोफाइल से कमांड को पढ़ता है और निष्पादित करता है, यदि वह फ़ाइल मौजूद है। उस फ़ाइल को पढ़ने के बाद, यह उस क्रम में ~ / .bash_profile, ~ / .bash_login और ~ / .profile की तलाश करता है, और पहले मौजूद से कमांड पढ़ता और निष्पादित करता है और पढ़ने योग्य होता है।
एक इंटरैक्टिव गैर-लॉगिन शेल के रूप में आमंत्रित किया गया
जब एक इंटरेक्टिव शेल जो एक लॉगिन शेल नहीं होता है, तो बैश, इस फाइल के मौजूद होने पर ~ / .bashrc से कमांड पढ़ता और निष्पादित करता है।
तो, आमतौर पर, आपके ~ / .bash_profile में लाइन होती है
if [ -f ~/.bashrc ]; then . ~/.bashrc; fiकिसी भी लॉगिन-विशिष्ट इनिशियलाइज़ेशन के बाद (या पहले)।
मेरे मैक (रनिंग तेंदुए) पर, स्रोत के लिए कोई रेखा नहीं थी ~/.bashrc। मुझे इस कार्यक्षमता को स्वयं ही जोड़ना था।
कुछ सिस्टम और अन्य OSes पर, .bashrcवैश्विक से /etc/profileया /etc/bash_profile, या टेम्पलेट फ़ाइलों का उपयोग करके किया जाता है /etc/skel।
ईमानदारी से भेद करना .bashrcऔर .bash_profileसमुदाय द्वारा अच्छी तरह से समझा नहीं जाना है। जब कई डेवलपर्स कहते हैं कि "इसे अपने .bashrc में जोड़ें", उनका वास्तव में क्या मतलब है "इसे अपने .bash_profile में जोड़ें"। वे चाहते हैं कि कार्यक्षमता आपके लॉगिन शेल में जोड़ी जाए (जो है .bash_profile), आपके गैर-लॉगिन शेल में नहीं। वास्तव में, यह आमतौर पर मायने नहीं रखता है और इसमें विन्यास .bashrcको स्वीकार्य है।
तो यह पता चला है कि मैक ओएस एक्स स्नो लेपर्ड के साथ-साथ मैक ओएस एक्स लॉयन पर, जो फ़ाइल भरी हुई है उसे कहा जाता है .profile, नहीं .bashrc।
आप जो करना चाहते हैं, ~/.profileउसमें एक फ़ाइल बनाएं और उसे कॉल करें। (यदि यह पहले से मौजूद नहीं है)।
वहाँ जो कुछ भी जानकारी आपको चाहिए, उसे bash के प्रत्येक उदाहरण के साथ लोड करने के लिए रखें (धन्यवाद, thepurplepixel)।
साइड नोट्स की एक जोड़ी:
-aएक पैरामीटर के रूप में उपयोग करें :ls -a~प्रतीक के लिए खड़ा है /Users/YourUserNameजहां yourusername अपने उपयोगकर्ता नाम के छोटे नाम है।संपादित करें: क्रिस पेज नोट्स (सही ढंग से) कि आप जो भी एक .profile फ़ाइल में रखते हैं वह आपके द्वारा उपयोग किए जा रहे शेल (यानी zhs, bash, et cetera) पर लागू होगा। यदि आप चाहते हैं कि सामग्री केवल बैश शेल को प्रभावित करे, तो सामग्री को .bash_profileफ़ाइल के बजाय .profileफ़ाइल में रखें।
.bash_profileआपके घर की निर्देशिका में पहले से ही मौजूद है, तो .profileफ़ाइल को पढ़ा नहीं जाएगा!
आपको अपना बनाना है .bashrc। आप अपनी .bashrcइच्छित सामग्री ( जिसे अपनी होम डाइरेक्टरी में सहेज कर रख सकते हैं ) के साथ एक फाइल एडिटर (कोई एक्सटेंशन नहीं) बनाने के लिए बस टेक्स्ट एडिटर का उपयोग कर सकते हैं /Users/YourUserName/।
.bashrcकाम करेगा, लेकिन केवल अगर कोई नहीं है .profile। मुझे लगता ~/.profileहै कि डिफ़ॉल्ट रूप से मौजूद है, हालांकि। मैं खुशी से मदद कर सकता है! (और आपको अपना समाधान एक उत्तर में रखना चाहिए और इस प्रश्न के भविष्य के पाठकों के लिए इसे स्वीकार करना चाहिए)।
मुझे लगता है कि मेरे ओएस 10.6.5 में बैश सेटिंग्स "/ etc / bashrc" में हैं। मुझे लगता है कि यह शेल के लिए सबसे अच्छा विनिर्देशों है।
हालाँकि, आपको इसे संशोधित करने के लिए एक रूट खाते की आवश्यकता है। स्थानीय प्रति-उपयोगकर्ता विनिर्देशों "~ / .bashrc" को सिस्टम-स्तरीय बैश सेटिंग्स को पढ़ने और लोड करने के लिए, निम्नलिखित स्निपेट के साथ शुरू करना चाहिए:
if [ -r /etc/bashrc ]; then
. /etc/bashrc
fi
मैं सामान्य रूप से सिस्टम स्तर के बैश आर्क में उपनाम जोड़ता हूं ताकि सभी उपयोगकर्ता उन्हें भी एक्सेस कर सकें। जब तक वे आपके शॉर्टकट और उपनाम का उपयोग नहीं करना चाहते।
सौभाग्य!
~/.bashrc, नहीं /etc/bashrc। /etc/bashrcआपके सिस्टम पर सभी उपयोगकर्ताओं के लिए वैश्विक सेटिंग्स हैं, जो संभवत: वह नहीं है जो आप चाहते हैं। इसके अलावा, Apple साथ-साथ आ सकता है और /etc/bashrcसमय-समय पर बदल सकता है, जो आपके अनुकूलन को दूर कर सकता है।
एक .bashrc फ़ाइल में कुछ भी जोड़ने के लिए .profile फ़ाइल का उपयोग करें।
उदाहरण के लिए
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"