2011-08-04 21 views
27

जब मैं जीएनयू स्क्रीन शुरू करता हूं, तो .bash_rc या .bash_profile में परिवर्तन करने के बाद, यह उन परिवर्तनों को पहचान नहीं पाता है। मैंमैं पढ़ने के लिए जीएनयू स्क्रीन कैसे प्राप्त करूं .bash_profile/.bash_rc बदलता है?

source ~/.bash_profile 

और यह वर्तमान स्क्रीन खिड़की मैं खुला है के लिए काम करता है, लेकिन मैं ऐसा करने के लिए है कि हर स्क्रीन विंडो मैं खुला है के लिए है।

मैं अपने बैश कॉन्फ़िगरेशन में अपने नवीनतम परिवर्तनों को पढ़ने के लिए स्क्रीन कैसे प्राप्त करूं?

+0

माइक द्वारा स्वीकृत उत्तर को दूसरे (सही) में बदलने के बारे में कैसे? – dotz

उत्तर

11

आपको इसे खोलने वाली प्रत्येक स्क्रीन में ऐसा करना है क्योंकि वे सभी अलग-अलग गोले हैं। यदि आपको हर बार एक नया खोल खोला जाता है तो परिवर्तन की आवश्यकता होती है, तो मेरा सुझाव है कि आप इसके बजाय ~/.bashrc में परिवर्तन डाल दें।

जाहिर है, आप एक बार this syntax का उपयोग करके सभी खिड़कियों के लिए एक आदेश भेज सकते हैं:

C-a : 
at "#" stuff "source ~/.bash_profile^M" 
+0

मैं सभी खुली स्क्रीन विंडो के लिए .bash_profile को स्रोत करने में सक्षम था, लेकिन यह मेरे द्वारा खुलने वाली किसी भी नई स्क्रीन विंडो के लिए काम नहीं कर रहा है। जब मैं एक नया स्क्रीन सत्र शुरू करता हूं तो यह सभी नए .bash_profile डेटा को भी लोड नहीं कर रहा है। –

+4

मुझे नहीं पता कि मैंने इसे क्यों रखा। .bash_profile केवल पहली बार लॉग इन किया जाता है जब आप लॉग इन करते हैं। प्रत्येक बार खोल खोलने पर bashrc किया जाता है। यदि आपको हर बार ऐसा होने की आवश्यकता है, तो मेरा सुझाव है कि आप अपने परिवर्तन .bashrc में रखें और नहीं .bash_profile। – gpojd

+0

यह पूरी तरह से काम किया! बहुत बहुत धन्यवाद! मैंने अभी भी सोचा होगा कि जब मैं लॉग इन करता हूं तो bash_profile लोड हो जाता था, लेकिन यह मामला भी नहीं था। –

41

आप स्क्रीन चाहते हैं हमेशा एक लॉगिन शेल के रूप में अपने खोल लेते हैं और स्रोत एक ही फ़ाइलों है कि अगर पढ़ किया जाएगा (के रूप में टिप्पणी में बताया, या हो सकता है ~/.byobu/.screenrc) सिर्फ सामान्य रूप से एक नया खोल शुरू कर दिया, जोड़ने ~/.screenrc के लिए निम्न:

shell -$SHELL 

इस तरह, आप मैन्युअल रूप से प्रत्येक समय स्रोत के लिए अपनी फ़ाइलें यह बताने के लिए की जरूरत नहीं है y कहां एक नई स्क्रीन शुरू करें। यद्यपि आपको यह करना होगा कि आपने अभी बदलाव किए हैं और चाहते हैं कि वे बदलाव आपकी वर्तमान स्क्रीन में दिखाई दें।

इस के लिए प्रलेखन (और अन्य स्क्रीन विवरणों के बहुत सारे) here पाया जा सकता है। असल में, shell स्क्रीन को एक नया शेल बनाने की आवश्यकता होने पर इसे चलाने के लिए कहने के लिए एक कमांड है। $SHELL सामान्य वरीयता है जो आपके पसंदीदा शैल के पथ को पकड़ता है। और डैश -$SHELL के सामने इंगित करता है कि इसे लॉगिन खोल के रूप में चलाया जाना चाहिए (जिसका आमतौर पर इसका अर्थ यह होगा कि यह आपके ~/.bash_profile इत्यादि का स्रोत है)।

यह इंगित करने योग्य है कि स्क्रीन स्क्रीन शुरू करने के लिए खोल से अधिकांश पर्यावरण चर को विरासत में ले जाने के लिए डिफ़ॉल्ट है; और एक लॉगिन उप-खोल अप्रत्याशित तरीकों से कुछ पर्यावरण चर बदल सकता है। मैं एक ऐसी स्थिति में भाग गया जहां मेरे $ पाथ के तत्व मूल रूप से अनुमति दिए गए थे। मैंने सुपरसियर पर this particularly excellent answer को समस्या का समाधान किया।

आप source कमांड उपलब्ध देख सकते हैं। यह ध्यान रखना महत्वपूर्ण है कि यह खोल आदेशों के बजाय screen आदेशों की एक फ़ाइल को स्रोत करता है। अन्य प्रासंगिक (स्क्रीन) कमांड में eval और exec शामिल हैं।

+1

मेरे मामले में .screenrc जिसे संपादन की आवश्यकता थी .byobu/.screenrc में था। RHEL6 –