सरल तरीका यह है कि एक टाइम मशीन का आविष्कार किया जाए, विभिन्न लोगों का दौरा किया जाए जो शेल स्टार्टअप फाइलों को तैयार करते हैं और उन्हें तीन साल के बीच साफ-साफ अंतर बताने के लिए कहते हैं:
- सत्र सेटअप, जैसे पर्यावरण चर;
- सत्र की शुरूआत, जैसे, कमांड-लाइन शेल या विंडो मैनेजर शुरू करना या चलाना
startx;
- शेल आरंभीकरण, जैसे उपनाम, शीघ्र, कुंजी बाइंडिंग।
यह एक पोर्टेबल तरह से सत्र बनाम खोल सही पाने के लिए भी मुश्किल नहीं है: लॉगिन समय प्रारंभ में चला जाता है .profile(या .zprofile, या .login), खोल प्रारंभ में चला जाता है .bashrcया .zshrc। मैंने पहले लिखा है .bash_profile, zsh बनाम अन्य गोले , पोर्टेबिलिटी के बारे में अधिक (ज्यादातर बैश के बारे में) , जो पढ़ता है उसके बारे में अधिक.profile ।
शेष समस्या सत्र सेटअप और सत्र लॉन्चिंग के बीच भिन्न है। ज्यादातर मामलों में, ~/.profileजब आप लॉग इन करते हैं और दोनों के रूप में दोगुना हो सकता है , तब निष्पादित किया जाता है, लेकिन कुछ अपवाद हैं:
- यदि आपका लॉगिन शेल (t) csh या zsh है,
~/.loginऔर ~/.zprofileइसके स्थान पर खट्टा है ~/.profile। बैश और के लिए Ditto ~/.bash_profile, लेकिन यह आसानी से सोर्सिंग द्वारा हल किया जाता ~/.profileहै ~/.bash_profile।
- यदि आप एक डिस्प्ले मैनेजर (xdm, gdm, kdm,…) के तहत लॉग इन करते हैं, तो आपका
~/.profileपढ़ा हुआ, प्रोग्राम के संस्करण पर निर्भर करता है, आपके वितरण (लिनक्स या अन्य) पर, और आप किस सत्र का चयन करते हैं।
- यदि आप अपने लिए एक सत्र शुरू करने के लिए प्रदर्शन प्रबंधक पर भरोसा करते हैं, तो आपको
.profileपर्यावरण चर सेट करना होगा , लेकिन सत्र शुरू नहीं करना चाहिए (उदाहरण के लिए विंडो प्रबंधक)।
- X सत्र के लिए पारंपरिक कॉन्फ़िगरेशन फ़ाइल
~/.xsession, सत्र सेटअप और सत्र लॉन्च करना दोनों है। तो फ़ाइल अनिवार्य रूप से हो सकती है . ~/.xsession; . ~/.xinitrc। कुछ वितरण स्रोत ~/.profileपहले ~/.xsession। आधुनिक वितरण केवल स्रोत ~/.xsessionजब आप डिस्प्ले मैनेजर से "कस्टम" सत्र का चयन करते हैं, और ऐसा सत्र हमेशा उपलब्ध नहीं होता है।
- आपके सत्र प्रबंधक के पास वातावरण चर सेट करने का अपना तरीका हो सकता है। (यह आपके डेस्कटॉप वातावरण का एक वैकल्पिक हिस्सा है, आपके द्वारा कॉन्फ़िगरेशन फ़ाइल के माध्यम से या लॉग इन करते समय सत्र प्रकार का चयन करके; प्रदर्शन प्रबंधक द्वारा प्रदान किए गए सत्र स्टार्टअप स्क्रिप्ट के साथ इसे भ्रमित न करें, जो आपके उपयोगकर्ता के तहत निष्पादित होते हैं लेकिन सिस्टम-वाइड आधार पर चुना गया। हां, यह गड़बड़ है।)
संक्षेप में, ~/.profileपर्यावरण चर के लिए सही जगह है। यदि यह पढ़ा नहीं गया है, तो इसे सोर्स करने का प्रयास करें ~/.xsession(और वहां से अपने एक्स प्रोग्राम शुरू करें), या सिस्टम-विशिष्ट विधि की तलाश करें (जो आपके वितरण पर निर्भर हो सकता है, यदि कोई हो, तो प्रबंधक प्रदर्शन प्रबंधक और डेस्कटॉप पर्यावरण सत्र प्रबंधक)।
.profileलोड बिल्कुल नहीं है, या लोकल वेरिएबल को ओवरराइट करने के लिए कुछ और है? (जैसे कुछ अन्य चर सेट करने का प्रयासexport MACIEJ_PROFILE=yesसुनिश्चित करने के लिए।set -xमें.profileक्या में मार डाला जा रहा है और बाद की जाँच करने के लिए एक अच्छा तरीका हो सकता है.profile, अगर यह सब पर पढ़ रहा है।) सोर्सिंग का कोई मतलब नहीं है.profileसे.zshrc।