'लॉगिन' और 'इंटरएक्टिव' बैश शेल में क्या अंतर है


50

'लॉगिन' और 'इंटरएक्टिव' बैश शेल में क्या अंतर है? मैंने नीचे विकिपीडिया उद्धृत किया है लेकिन क्या कोई बेहतर उत्तर दे सकता है?

संपादित करें: यह एक सामुदायिक विकी है, इसलिए शायद आप मतदान करने के बजाए आपको उदाहरण दे सकते हैं कि कौन सी स्थितियां किस प्रकार के $ $ के लिए कॉल करती हैं।

स्टार्टअप स्क्रिप्ट

जब बैश शुरू होता है, तो यह कई अलग-अलग स्क्रिप्ट में कमांड निष्पादित करता है।

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

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

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


मैंने इस सवाल को संपादित किया है कि वे आधे से अधिक मेहराब वाली साइट के नियमों में फिट हों। मुझे नहीं लगता कि मैं कभी उपयोगी जानकारी को हटाने की इच्छा को समझ
पाऊंगा

7
लोग इस प्रश्न को क्यों वोट कर रहे हैं? मुझे पूरी तरह से कानूनी लगता है?
duffbeer703

2
ऊ, अपने प्रश्न का उत्तर निकालो, और उत्तर के रूप में पोस्ट करो। अपने स्वयं के प्रश्न का उत्तर देने के लिए इसका ठीक है।
derobert

2
यह एक बहुत ही मान्य प्रश्न है क्योंकि भेद भ्रामक है। उदाहरण के लिए ध्यान दें कि जब आप xdm के माध्यम से ग्राफिकल वातावरण में लॉग इन करते हैं और xterm चलाते हैं, तो आपको एक इंटरैक्टिव शेल मिलता है और लॉगिन शेल स्टार्टअप फाइलें नहीं चलती हैं।
pjc50

जवाबों:


16

अपने लॉगिन शेल की प्रोफाइल फाइलों में आप कुछ चीजें सेट कर सकते हैं, जिनका उपयोग आप अपने सत्र के दौरान करेंगे, और जिन्हें केवल एक बार करना होगा। कुछ विचार:

  • आपके द्वारा कनेक्ट किए गए IP पते से युक्त एक अस्थायी फ़ाइल बनाएं, बाद में आप इसे फ़ायरवॉल नियमों को सेट करने वाली कुछ स्क्रिप्ट में शामिल कर सकते हैं।
  • ssh-agent चलाएं, अपने SSH कुंजियों के लिए पूछें, और SSH एजेंट वातावरण चर को एक फ़ाइल में संग्रहीत करें।
  • यदि वह एक सीमित मशीन है, और आपके सहकर्मी एक-दूसरे के लॉगिन से अवगत होना चाहते हैं, तो (1) संदेश लिखकर उन्हें अपने लॉगिन के बारे में बताएं।

गैर-लॉगिन शेल की फ़ाइलों में ( .bashrc) आपको अपना शेल कॉन्फ़िगर करना चाहिए:

  • फैंसी शीघ्र
  • उपनाम सेट करें
  • इतिहास विकल्प सेट करें
  • कस्टम शेल फ़ंक्शन को परिभाषित करें
  • निर्यात पर्यावरण चर, (शायद PAGER, EDITOR अगर सिस्टम-वाइड सेटिंग्स चूसना)
  • लोड ssh- एजेंट चर में सहेजा गया .bash_profile

आमतौर पर, आप निम्नलिखित में .bashrcसे शामिल होंगे .bash_profile। फिर लॉगिन शेल से आपके सभी कस्टमाइज़ेशन हो जाते हैं, और .bash_profileफ़ाइल में पहले से मौजूद चीज़ों की नकल नहीं होती है .bashrc

[[ -f ~/.bashrc ]] && . ~/.bashrc

3
क्या एक लॉगिन शेल वह पहला है जो मशीन पर ताज़ा होने पर शुरू होता है? अन्य सभी गोले जो आप उसके बाद खोलते हैं या इंटरैक्टिव नहीं हो सकते हैं। एक खोल जो क्रोन से चल रहा है? इंटरेक्टिव नहीं लगता, लेकिन क्या यह लॉगिन है? यदि आप मशीन पर नहीं हैं तो क्या होगा? उन सवालों को छोड़ दिया गया है जो अनुत्तरित हैं
फ्रांस्वा ब्यूसोलिल

4
अब, यह एक उत्तर है जिसे मैं समझ सकता हूं: linuxquestions.org/questions/linux-general-1/…
फ्रांकोइस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.