यहाँ प्रश्न के लिए प्रेरणा है:
मैं एकता डेस्कटॉप के साथ Ubuntu 12.04 LTS 2 का उपयोग कर रहा हूं। मेरी .bashrc फ़ाइल में, मैं अपने PATH चर में कई निर्देशिकाओं को जोड़ता हूं और कुछ पर्यावरण चर, जैसे JAVA_HOME को परिभाषित करता हूं। जब मैं एक टर्मिनल से एप्लिकेशन लॉन्च करता हूं (रनिंग बैश, मेरा डिफॉल्ट शेल), यह बहुत अच्छा काम करता है, लेकिन एकता लांचर का उपयोग करने वाले कई शॉर्टकट्स के लिए, वे ऐसे ऐप चलाते हैं जो # /! बिन / श का उपयोग करने के लिए परिभाषित होने लगते हैं। को / बिन / डैश के लिए उपनाम दिया गया है, और वे ~ / .bashrc या ~ / .profile की सामग्री नहीं उठाते हैं।
मुझे लगता है कि मैं इन सभी शॉर्टकट को / बिन / शश के बजाय / बिन / शश का उपयोग करने के लिए बदल सकता हूं। इसे .bashrc परिवर्तन लेने के लिए मजबूर कर सकता हूं, लेकिन यह वास्तव में हैकी लगता है।
यह देखते हुए कि उबंटू 12.04 (डिफ़ॉल्ट रूप से) उपनाम / बिन / श / से / बिन / डैश और यह कि मेरा डिफ़ॉल्ट शेल / बिन / बैश है, क्या कोई एकल स्थान है जहां मैं पाथ को संशोधित करने और पर्यावरण चर को परिभाषित करने का विकल्प चुन सकता हूं यदि मैं उन्हें चाहता हूं इन सभी परिस्थितियों में उपस्थित होना :
- जब भी मैं एक गैर-लॉगिन बैश शेल बनाता हूं (एकता में टर्मिनल का उपयोग करके)
- जब भी मैं एक लॉगिन बैश शेल बनाता हूं (उदाहरण के लिए, ssh पर दूरस्थ रूप से लॉगिंग)
- जब भी मैं एक एकता अनुप्रयोग लॉन्चर का उपयोग करता हूं (यह देखते हुए कि लॉन्चर उपयोग करता है / बिन / श)।
- जब भी एक क्रॉन जॉब निष्पादित होता है (दिया जाता है कि SHELL = / bin / sh / in / etc / crontab)।
अगर मैं सही तरीके से समझूं, तो मैं अनुमान लगा रहा हूं कि:
- (1) / (2) और (3) / (4) अलग हैं क्योंकि (1) / (2) बैश हैं और (3) / (4) डैश हैं।
- (1) और (2) अलग-अलग हैं क्योंकि बैश करने वाली फाइलें लोड करने का विकल्प चुनती हैं, यह इस बात पर निर्भर करता है कि यह लॉगिन शेल है या नहीं।
- (3) और (4) अलग-अलग हैं क्योंकि (3) मेरे लॉग इन करने के बाद कुछ बिंदु पर आएगा (और इसलिए ~ /। लाभार्थी को इसकी मूल प्रक्रियाओं में से एक द्वारा सॉर्ट किया गया होगा, जबकि (4) कुछ पर आएगा बिंदु जब मैं लॉग इन नहीं हूं , और इसलिए ~ / .profile नहीं पढ़ा जाएगा।
(मुझे आश्चर्य नहीं होगा यदि अन्य कारक भी, जैसे कि शेल इंटरएक्टिव हो या न हो, इसलिए संभवतः अधिक संयोजन हैं जिनका मैंने अनुमान भी नहीं लगाया है ... मुझे अपने प्रश्न को सुधारने में खुशी है "" " उस स्तिथि में।)
मैं उम्मीद करूंगा कि किसी बिंदु पर, किसी ने किसी प्रकार का मार्गदर्शक बनाया होगा जो बताता है कि शेल-स्वतंत्र तरीके से पर्यावरण चर को कैसे / कहाँ संशोधित किया जाए (या कम से कम एक डैश / बैश संगत तरीके से) ... मैं बस कर सकता हूं ' ऐसा गाइड खोजने के लिए सही खोज शब्द खोजने के लिए लगता है।
समाधान या समाधान के लिए संकेत बहुत सराहना की!
अपडेट किया गया:
- स्पष्टता: यह 12.04 इंस्टॉलेशन प्रक्रिया द्वारा बनाया गया डिफ़ॉल्ट उबंटू उपयोगकर्ता है, इसलिए फैंसी कुछ भी नहीं। यह है एक ~ / .profile (जो कि स्पष्ट रूप सूत्रों ~ / .bashrc), और केवल ~ / .bash * फ़ाइलों को पेश .bashrc, .bash_history, और .bash_logout ... इसलिए नहीं कोई .bash_profile है कर रहे हैं।
- गुंजाइश पर जोर: मैं वास्तव में किसी भी डिफ़ॉल्ट इंटरैक्टिव खोल (बैश) और किसी भी स्क्रिप्ट को उपयोग / bin / श (पानी का छींटा के लिए उपनामित) होता है के अलावा अन्य के गोले के बारे में परवाह नहीं है, इसलिए वहाँ कुछ भी साथ इस मुश्किल की आवश्यकता नहीं है अतिरिक्त के लिए tcsh / ksh / zsh / आदि। सहयोग।