मैं अपने स्नो लेपर्ड मशीन पर आरवीएम स्थापित करना चाहता हूं।
यह कहता है कि मुझे अपनी .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"