/Etc/bash.bashrc और ~ / .bashrc में क्या अंतर है? मुझे किसका उपयोग करना चाहिए?


20

मुझे अपने एलियास, प्रॉम्प्ट आदि को सेट करने के लिए दो .bashrc फ़ाइलों में से प्रत्येक का उपयोग कब करना चाहिए?

जवाबों:


34

/etc/bash.bashrc सभी उपयोगकर्ताओं पर लागू होता है

~/.bashrc केवल उस उपयोगकर्ता पर लागू होता है जिसमें यह होम फोल्डर है।


3
और डीएक्स के उत्तर में निहित है ... सभी मामलों में अपने स्थानीय ~ / .bashrc का उपयोग करें जहां आप उस मशीन का उपयोग करने वाले सभी लोगों पर अपनी इच्छा को लागू करना चाहते हैं।
डेराक्रॉट

कड़ाई से बोलते हुए, आप /etc/bash.bashrc में कुछ भी लागू नहीं कर रहे हैं क्योंकि उपयोगकर्ता हमेशा इसे अपने ~ / -Bashrc में बदल सकते हैं
किम

... सिवाय इसके कि कोई कब तय करे कि सभी चरों readonlyमें /etc/bash.bashrc: \
ग्रेविटी

1
उबंटू के तहत, शुरुआत में टिप्पणी के रूप में, इस फाइल को / etc / प्रोफाइल फ़ाइल से "sourced" होना चाहिए। मैंने /etc/bash.bashrc के अंत में एक अन्य नाम जोड़ा, और / etc / प्रोफाइल फ़ाइल के अंत में कमांड "source /etc/bash.bashrc" जोड़ा। एक जादू की तरह काम करता है।
jfmessier

2

GNU बैश डॉक्यूमेंटेशन के अनुसार :

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

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

तो, आम तौर पर, आपके ~ / .bash_profile में लाइन होती है

अगर [-f ~ / .bashrc]; फिर । ~ / .Bashrc; फाई

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


1
ज़रुरी नहीं। इस फ़ाइल को देखें git.savannah.gnu.org/cgit/bash.git/tree/shell.c , run_startup_files () फ़ंक्शन में जहां SYS_BASHRC का उपयोग किया जाता है, git .savannah.gnu.org/cgit/bash.git/
एमएलओसकोट

1

अपनी व्यक्तिगत प्राथमिकताओं और व्यक्तिगत स्क्रिप्ट या बैश फ़ंक्शंस के लिए आपको उपयोग करना चाहिए।

वह पल जिसे आप सभी उपयोगकर्ताओं (या अधिकांश उपयोगकर्ताओं) के साथ या सामान्य उपयोग की चीजों के लिए साझा करना चाहते हैं (साझा निष्पादन के लिए पथ, प्रलेखन के लिए पथ ...) इसे /etc/bash.bashrc में डालें

मैंने अधिकांश उपयोगकर्ताओं को कहा है क्योंकि यहां तक ​​कि मान लीजिए कि आप एक स्क्रिप्ट अभिवादन निर्दिष्ट करते हैं। जो "Hello world!"कि सभी उपयोगकर्ताओं के लिए प्रिंट करता है , लेकिन उपयोगकर्ता पीपे स्क्रिप्ट अभिवादन के बजाय उपयोग करना चाहता है "Hola el mundo!"। जो प्रिंट करता है । वह अपने .bashrc में अपने पथ को संशोधित कर सकता है अपनी स्क्रिप्ट को इंगित करने के लिए। दूसरे शब्द में उपयोगकर्ता अपने सत्र को कभी भी .bashrc में अनुकूलित कर सकता है कि वह क्या चाहता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.