Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Bash प्रोग्रामिंग

शेल इनिशियलाइज़ेशन फ़ाइलें और यूजर प्रोफाइल मास्टर करना: लिनक्स एडमिनिस्ट्रेटर्स के लिए गाइड

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

लिनक्स उपयोगकर्ताओं के वातावरण को दो प्रमुख तरीकों से बनाने या बनाए रखने की अनुमति देता है: सिस्टम-वाइड (ग्लोबल) और यूजर-स्पेसिफिक (पर्सनल) कॉन्फ़िगरेशन का उपयोग करके। आमतौर पर, लिनक्स सिस्टम के साथ काम करने की बुनियादी विधि शेल है, और शेल एक वातावरण बनाता है जो एक सफल उपयोगकर्ता लॉगिन के बाद इसके इनिशियलाइज़ेशन के दौरान पढ़ी जाने वाली कुछ फ़ाइलों पर निर्भर करता है।

सुझाया गया पढ़ें: लिनक्स में एनवायरनमेंट वेरिएबल्स कैसे सेट करें

इस लेख में, हम लिनक्स में लोकल यूजर मैनेजमेंट के संबंध में यूजर प्रोफाइल के संबंध में शेल इनिशियलाइज़ेशन फ़ाइलों की व्याख्या करेंगे। हम आपको बताएंगे कि कस्टम शेल फंक्शन्स, एलियास, वेरिएबल्स के साथ-साथ स्टार्टअप प्रोग्राम्स कहां रखें।

महत्वपूर्ण: इस लेख के उद्देश्य के लिए, हम bash पर ध्यान केंद्रित करेंगे, एक sh संगत शेल जो वहां लिनक्स सिस्टम पर सबसे लोकप्रिय/उपयोग किया जाने वाला शेल है।

यदि आप एक अलग शेल (zsh, ash, fish आदि..) प्रोग्राम उपयोग कर रहे हैं, तो यहां हमारे द्वारा चर्चा की जाने वाली कुछ संबंधित फ़ाइलों के बारे में अधिक जानने के लिए इसके डॉक्यूमेंटेशन को पढ़ें।

लिनक्स में शेल इनिशियलाइज़ेशन

जब शेल को आमंत्रित किया जाता है, तो कुछ इनिशियलाइज़ेशन/स्टार्टअप फ़ाइलें होती हैं जिन्हें यह पढ़ता है जो शेल के लिए और सिस्टम उपयोगकर्ता के लिए एक वातावरण स्थापित करने में मदद करती हैं; जो पूर्वनिर्धारित (और अनुकूलित) फंक्शन्स, वेरिएबल्स, एलियास आदि हैं।

शेल द्वारा पढ़ी जाने वाली इनिशियलाइज़ेशन फ़ाइलों की दो श्रेणियां हैं:

  • सिस्टम-वाइड स्टार्टअप फ़ाइलें – इनमें ग्लोबल कॉन्फ़िगरेशन होते हैं जो सिस्टम पर सभी उपयोगकर्ताओं पर लागू होते हैं, और आमतौर पर /etc डायरेक्टरी में स्थित होते हैं। इनमें शामिल हैं: /etc/profiles और /etc/bashrc या /etc/bash.bashrc।
  • यूजर-स्पेसिफिक स्टार्टअप फ़ाइलें – ये सिस्टम पर एकल उपयोगकर्ता पर लागू होने वाले कॉन्फ़िगरेशन संग्रहीत करती हैं और आमतौर पर उपयोगकर्ताओं की होम डायरेक्टरी में डॉट फ़ाइलों के रूप में स्थित होती हैं। वे सिस्टम-वाइड कॉन्फ़िगरेशन को ओवरराइड कर सकते हैं। इनमें शामिल हैं: .profiles, .bash_profile, .bashrc और .bash_login।

फिर से, शेल को तीन संभावित मोड में आमंत्रित किया जा सकता है:

1. इंटरैक्टिव लॉगिन शेल

शेल को एक उपयोगकर्ता द्वारा सिस्टम में सफलतापूर्वक लॉग इन करने के बाद आमंत्रित किया जाता है, /bin/login का उपयोग करके, /etc/passwd फ़ाइल में संग्रहीत क्रेडेंशियल्स पढ़ने के बाद।

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

शेल इनिशियलाइज़ेशन फ़ाइलें और यूजर प्रोफाइल मास्टर करना: लिनक्स एडमिनिस्ट्रेटर्स के लिए गाइड

2. इंटरैक्टिव नॉन-लॉगिन शेल

शेल को कमांड-लाइन पर शेल प्रोग्राम का उपयोग करके शुरू किया जाता है, उदाहरण के लिए $/bin/bash या $/bin/zsh। इसे /bin/su कमांड चलाकर भी शुरू किया जा सकता है।

इसके अलावा, एक इंटरैक्टिव नॉन-लॉगिन शेल को ग्राफिकल एनवायरनमेंट के भीतर konsole, terminator या xterm जैसे टर्मिनल प्रोग्राम के साथ भी आमंत्रित किया जा सकता है।

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

$ su # ls -la 
शेल इनिशियलाइज़ेशन फ़ाइलें और यूजर प्रोफाइल मास्टर करना: लिनक्स एडमिनिस्ट्रेटर्स के लिए गाइड

3. नॉन-इंटरैक्टिव शेल

शेल को तब आमंत्रित किया जाता है जब एक शेल स्क्रिप्ट चल रही होती है। इस मोड में, यह एक स्क्रिप्ट (शेल या सामान्य सिस्टम कमांड्स/फंक्शन्स का सेट) प्रोसेस कर रहा होता है और जब तक अन्यथा न हो, कमांड्स के बीच उपयोगकर्ता इनपुट की आवश्यकता नहीं होती। यह मूल शेल से विरासत में मिले वातावरण का उपयोग करके काम करता है।

सिस्टम-वाइड शेल स्टार्टअप फ़ाइलों को समझना

इस खंड में, हम उन शेल स्टार्टअप फ़ाइलों पर अधिक प्रकाश डालेंगे जो सिस्टम पर सभी उपयोगकर्ताओं के लिए कॉन्फ़िगरेशन संग्रहीत करती हैं और इनमें शामिल हैं:

/etc/profile फ़ाइल – यह लॉगिन सेटअप के लिए सिस्टम-वाइड एनवायरनमेंट कॉन्फ़िगरेशन और स्टार्टअप प्रोग्राम्स संग्रहीत करती है। वे सभी कॉन्फ़िगरेशन जो आप सभी सिस्टम उपयोगकर्ताओं के वातावरण पर लागू करना चाहते हैं, इस फ़ाइल में जोड़े जाने चाहिए।

उदाहरण के लिए, आप यहां ग्लोबल PATH एनवायरनमेंट वेरिएबल सेट कर सकते हैं।

# cat /etc/profile 
शेल इनिशियलाइज़ेशन फ़ाइलें और यूजर प्रोफाइल मास्टर करना: लिनक्स एडमिनिस्ट्रेटर्स के लिए गाइड

नोट: RHEL/CentOS 7 जैसे कुछ सिस्टम्स में, आपको ऐसी चेतावनियां मिलेंगी जैसे "इस फ़ाइल को बदलने की अनुशंसा नहीं की जाती जब तक आप नहीं जानते कि आप क्या कर रहे हैं। अपने एनवायरनमेंट में कस्टम बदलाव करने के लिए /etc/profile.d/ में एक कस्टम .sh शेल स्क्रिप्ट बनाना बेहतर है, क्योंकि यह भविष्य के अपडेट में मर्जिंग की आवश्यकता को रोकेगा"।

/etc/profile.d/ डायरेक्टरी – आपके एनवायरनमेंट में कस्टम बदलाव करने के लिए उपयोग की जाने वाली शेल स्क्रिप्ट्स संग्रहीत करती है:

# cd /etc/profile.d/ # ls -l 
शेल इनिशियलाइज़ेशन फ़ाइलें और यूजर प्रोफाइल मास्टर करना: लिनक्स एडमिनिस्ट्रेटर्स के लिए गाइड

/etc/bashrc या /etc/bash.bashrc फ़ाइल – इसमें सिस्टम-वाइड फंक्शन्स और एलियास सहित अन्य कॉन्फ़िगरेशन होते हैं जो सभी सिस्टम उपयोगकर्ताओं पर लागू होते हैं।

यदि आपके सिस्टम में कई प्रकार के शेल हैं, तो बैश-विशिष्ट कॉन्फ़िगरेशन को इस फ़ाइल में रखना एक अच्छा विचार है।

# cat /etc/bashrc 
शेल इनिशियलाइज़ेशन फ़ाइलें और यूजर प्रोफाइल मास्टर करना: लिनक्स एडमिनिस्ट्रेटर्स के लिए गाइड

यूजर-स्पेसिफिक शेल स्टार्टअप फ़ाइलों को समझना

अब, हम यूजर-स्पेसिफिक शेल (बैश) स्टार्टअप डॉट फ़ाइलों के बारे में अधिक बताएंगे, जो सिस्टम पर एक विशेष उपयोगकर्ता के लिए कॉन्फ़िगरेशन संग्रहीत करती हैं, वे उपयोगकर्ता की होम डायरेक्टरी में स्थित होती हैं और इनमें शामिल हैं:

# ls -la 
शेल इनिशियलाइज़ेशन फ़ाइलें और यूजर प्रोफाइल मास्टर करना: लिनक्स एडमिनिस्ट्रेटर्स के लिए गाइड

~/.bash_profile फ़ाइल – यह यूजर स्पेसिफिक एनवायरनमेंट और स्टार्टअप प्रोग्राम्स कॉन्फ़िगरेशन संग्रहीत करती है। आप यहां अपना कस्टम PATH एनवायरनमेंट वेरिएबल सेट कर सकते हैं, जैसा स्क्रीनशॉट में दिखाया गया है:

# cat ~/.bash_profile 
शेल इनिशियलाइज़ेशन फ़ाइलें और यूजर प्रोफाइल मास्टर करना: लिनक्स एडमिनिस्ट्रेटर्स के लिए गाइड

~/.bashrc फ़ाइल – यह फ़ाइल यूजर स्पेसिफिक एलियास और फंक्शन्स संग्रहीत करती है।

# cat ~/.bashrc 
शेल इनिशियलाइज़ेशन फ़ाइलें और यूजर प्रोफाइल मास्टर करना: लिनक्स एडमिनिस्ट्रेटर्स के लिए गाइड

~/.bash_login फ़ाइल – इसमें विशिष्ट कॉन्फ़िगरेशन होते हैं जो आमतौर पर केवल तभी निष्पादित होते हैं जब आप सिस्टम में लॉग इन करते हैं। जब ~/.bash_profile अनुपस्थित होता है, तो इस फ़ाइल को बैश द्वारा पढ़ा जाएगा।

~/.profile फ़ाइल – यह फ़ाइल ~/.bash_profile और ~/.bash_login की अनुपस्थिति में पढ़ी जाती है; यह समान कॉन्फ़िगरेशन संग्रहीत कर सकती है, जो सिस्टम पर अन्य शेल्स द्वारा भी पहुंच योग्य हो सकते हैं। क्योंकि हमने मुख्य रूप से यहां बैश के बारे में बात की है, ध्यान दें कि अन्य शेल्स बैश सिंटैक्स को नहीं समझ सकते हैं।

अगला, हम दो अन्य महत्वपूर्ण यूजर स्पेसिफिक फ़ाइलों की भी व्याख्या करेंगे जो आवश्यक रूप से बैश इनिशियलाइज़ेशन फ़ाइलें नहीं हैं:

~/.bash_history फ़ाइल – बैश उपयोगकर्ता द्वारा सिस्टम पर दर्ज कमांड्स का इतिहास रखता है। कमांड्स की यह सूची उपयोगकर्ता की होम डायरेक्टरी में ~/.bash_history फ़ाइल में रखी जाती है।

इस सूची को देखने के लिए, टाइप करें:

$ history or $ history | less 
शेल इनिशियलाइज़ेशन फ़ाइलें और यूजर प्रोफाइल मास्टर करना: लिनक्स एडमिनिस्ट्रेटर्स के लिए गाइड

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

एक व्यावहारिक उदाहरण लॉगआउट पर टर्मिनल विंडो को साफ़ करना होगा। यह रिमोट कनेक्शन के लिए महत्वपूर्ण है, जो उन्हें बंद करने के बाद एक साफ विंडो छोड़ देगा:

# cat bash_logout 
शेल इनिशियलाइज़ेशन फ़ाइलें और यूजर प्रोफाइल मास्टर करना: लिनक्स एडमिनिस्ट्रेटर्स के लिए गाइड

अतिरिक्त अंतर्दृष्टि के लिए, विभिन्न लिनक्स डिस्ट्रोज पर इन शेल इनिशियलाइज़ेशन फ़ाइलों की सामग्री देखें और बैश मैन पेज पढ़ें:

अभी के लिए बस इतना ही! इस लेख में, हमने लिनक्स में शेल स्टार्टअप/इनिशियलाइज़ेशन फ़ाइलों की व्याख्या की। हमें लिखने के लिए नीचे दिए गए कमेंट फॉर्म का उपयोग करें।


  1. लिनक्स बिगिनर्स और सिस्टम एडमिनिस्ट्रेटर्स के लिए 4 आवश्यक मुफ्त शेल स्क्रिप्टिंग ईबुक लिनक्स बिगिनर्स और सिस्टम एडमिनिस्ट्रेटर्स के लिए 4 आवश्यक मुफ्त शेल स्क्रिप्टिंग ईबुक

    सिस्टम एडमिनिस्ट्रेशन सूचना प्रौद्योगिकी की एक शाखा है जो मल्टी-यूज़र कंप्यूटर सिस्टम और सर्वर के विश्वसनीय संचालन से संबंधित है। वह व्यक्ति जो मल्टी-यूज़र कंप्यूटर सिस्टम और सर्वर के विश्वसनीय संचालन के लिए जिम्मेदार है, सिस्टम एडमिनिस्ट्रेटर कहलाता है। एक सिस्टम एडमिनिस्ट्रेटर जिसका विशेषज्ञता क्

  1. शेल स्क्रिप्टिंग में लिनक्स वेरिएबल्स में महारत - भाग 10: विशेषज्ञ अंतर्दृष्टि शेल स्क्रिप्टिंग में लिनक्स वेरिएबल्स में महारत - भाग 10: विशेषज्ञ अंतर्दृष्टि

    लिनक्स शेल स्क्रिप्टिंग भाषा हमेशा एक गर्म विषय रही है और भविष्य में भी रहेगी। शेल स्क्रिप्टिंग भाषा जादुई है और किसी अन्य भाषा की तरह इसमें प्रोग्राम करना बहुत आसान है। हालांकि, इसके लिए इस गहन ज्ञान की आवश्यकता होती है कि हम क्या कर रहे हैं और परिणाम क्या अपेक्षित है। हमारे पाठकों के लिए लिखे गए

  1. आवश्यक Linux ls कमांड: फ़ाइलों और निर्देशिकाओं को त्वरित और प्रभावी ढंग से सूचीबद्ध करें आवश्यक Linux ls कमांड: फ़ाइलों और निर्देशिकाओं को त्वरित और प्रभावी ढंग से सूचीबद्ध करें

    Linux में ls कमांड शायद उन पहले कमांड में से एक है जिनकी आपको कभी आवश्यकता होगी। इस लेख में, हम कमांड और आमतौर पर उपयोग किए जाने वाले पैरामीटर्स पर जाएंगे। मेरा पसंदीदा विकल्प सेट इस प्रकार है: ls -Zaltrh आइए प्रत्येक विकल्प को व्यक्तिगत रूप से देखें, और बताएं कि विकल्पों का पूरा समूह क्यों उपयोगी ह