सवाल .Bashrc फ़ाइल क्या है?


पढ़ना शुरू करते समय यूनिक्स शैल .bashrc फाइलें और इसमें लिखे गए आदेश निष्पादित करें। यह फ़ाइल क्या है और यह निष्पादित करता है?


92
2017-09-30 15:54


मूल


फ़ाइल को एक टेक्स्ट एडिटर में खोलने का प्रयास करें - यह सादे पाठ में है। - Will Bickford


जवाब:


दरअसल, यह है bash विशेष रूप से पढ़ता है .bashrc (तथा /etc/bash.bashrc)। बहुत सारे गोले हैं।

बैश मैन पेज (ब्रायन फॉक्स और चेत रैमी द्वारा भी जानकारी पृष्ठ "बैश स्टार्टअप फ़ाइलें") आधिकारिक संदर्भ है:

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

जब बैश शुरू होता है   एक खोल चलाने के लिए, गैर-interactively   लिपि, उदाहरण के लिए, यह देखता है   परिवर्तनशील BASH_ENV पर्यावरण में,   यदि यह वहां दिखाई देता है तो इसका मूल्य बढ़ाता है,   और विस्तारित मान का उपयोग करता है   पढ़ने और निष्पादित करने के लिए फ़ाइल का नाम।   बैश निम्न के रूप में व्यवहार करता है   आदेश निष्पादित किया गया था:

if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi  

लेकिन का मूल्य PATH परिवर्तनीय खोज के लिए प्रयोग नहीं किया जाता है   फ़ाइल नाम के लिए।

फ़ाइल सिर्फ खोल कमांड है। यह आमतौर पर संकेतों को बदलने, पर्यावरण चर सेट करने और खोल प्रक्रियाओं को परिभाषित करने के लिए प्रयोग किया जाता है। पारंपरिक रूप से, फ़ाइल .profile इस उद्देश्य के लिए प्रयोग किया जाता है, लेकिन bash इतने सारे एक्सटेंशन हैं कि इसे उन उपयोगकर्ताओं के लिए अपनी स्टार्टअप फ़ाइल की आवश्यकता है जो रखना चाहते हैं bashisms स्टार्टअप फाइलों में।

"एक लॉगिन खोल नहीं है"का अर्थ है स्क्रिप्ट लॉन्च जैसी चीजें और आमतौर पर टर्मिनल विंडोज़ विंडो प्रबंधक द्वारा शुरू की जाती हैं। कभी-कभी मैंने * निक्स सिस्टम स्थापित किए हैं .bashrc तथा BASH_ENV बस स्रोत .profile। जब तक आप POSIX खोल कमांड के बाहर भटक नहीं जाते हैं तब तक आपको किसी भी खोल में समान प्रारंभिकता मिल जाएगी।

यह विशेष रूप से मूल्यवान है जब sh सच है bash, जो कभी-कभी होता है। ऐसा करने के लिए:

. .profile

एक कारण यह सब इतना जटिल है क्योंकि कभी-कभी लोग ऐसी चीजें डालते हैं जो शेल स्टार्टअप फाइलों में आउटपुट उत्पन्न करते हैं, या वे बिना शर्त सेट को सेट करते हैं। यह शेल प्रोग्राम और बैकटिक कमांड को चलाने के दौरान कई समस्याओं का कारण बनता है, उल्लेख नहीं है system(3) सी कार्यक्रमों से। रास्ता bash शुरू होता है, मुझे लगता है कि एक फ़ाइल है जहां आउटपुट और प्रॉम्प्ट सेटिंग ठीक है और एक फ़ाइल जहां यह नहीं है। परंपरागत रूप से, अंतःक्रियाशीलता को अलग करने के लिए एक रन-टाइम परीक्षण किया जाएगा, उदाहरण के लिए, यह देखने के लिए जांच करें कि प्रॉम्प्ट सेट है या नहीं।


61
2017-09-30 15:57



अच्छा उत्तर। बस कुछ उद्धरण: फ़ाइल सिर्फ शेल कमांड है। यह आमतौर पर संकेतों को बदलने, पर्यावरण चर सेट करने और खोल प्रक्रियाओं को परिभाषित करने के लिए प्रयोग किया जाता है। - smwikipedia
क्या किसी को पता है कि .bashrc / .zshrc का आरसी भाग क्या है? - WORMSS
@WORMSS: अच्छा सवाल! आप इसके बारे में सोचने वाले अकेले नहीं हैं। - Caleb Xu


जब बैश शुरू होता है, तो यह विभिन्न स्क्रिप्ट्स में कमांड को निष्पादित करता है।

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

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

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

http://en.wikipedia.org/wiki/Bash_(Unix_shell)

यहां कुछ चाल और सुझाव दिए गए हैं:

http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html

आइए प्रॉम्प्ट सेट करने का प्रयास करें ताकि यह आज की तारीख और होस्टनाम प्रदर्शित कर सके:

PS1="\d \h $ "

12
2017-09-30 15:56



यही वजह है कि .profile बाद .bash_profile? कोई तर्क? - Pacerier


इसमें आपके खोल के लिए विभिन्न "प्रारंभिक" आदेश होना चाहिए, उदाहरण:

  • उपयोगी उपनाम बनाना (उदाहरण के लिए alias ll='ls -l')।
  • पाथ में और निर्देशिका जोड़ना।
  • नए पर्यावरण चर सेट करना।

9
2017-09-30 15:56



उपनाम का उपयोग क्या है? - pineapple
@ अनानास: एक उपनाम एक कमांड चलाने का एक तरीका है, जो एक छोटे से के साथ लंबा हो सकता है। उदाहरण के लिए, उपनाम ll='ls -l' आपको टाइप करने देता है ll निष्पादित करने के लिए ls -l आदेश। - Wuffers