शेल वातावरण कैसे रीसेट करें?


25

यह मुद्दा मुझे थोड़ी देर के लिए परेशान कर रहा है, और हालांकि मुझे लगा कि मैंने अपना जवाब एनवॉचर के माध्यम से पाया है , दुर्भाग्य से यह केवल बैश पर काम करता है। और मैं zsh का उपयोग करता हूं।

मैं कुछ हद तक एनवी-वॉकर की चीजों को दोहराना चाहूंगा, लेकिन मुझे यह जानने की जरूरत है कि क्या कोई ऐसा कमांड है जिसके द्वारा मैं एक शेल को क्लीन स्टार्टअप स्टेज पर रीसेट कर सकता हूं।

उदाहरण के लिए, मैं निम्नलिखित वर्कफ़्लो रखना चाहूंगा।

source some-functions
alias another-thing
export SVN_EDITOR=vim
RESET-ZSH # none of the above are valid any more

क्या ऐसी कोई संभावना है, या मैं तितलियों का पीछा कर रहा हूं?

जवाबों:


32

आप बस कर सकते हैं exec zsh, जो आपको एक नया ज़ेश देगा और इनिट फ़ंक्शंस फिर से चलाएगा। ध्यान दें कि आपको exec zsh -lअपनी "लॉगिन शेल" स्थिति को बनाए रखने के लिए एक लॉगिन zsh की आवश्यकता होगी । मुझे नहीं पता कि यह कमांड इतिहास को कितनी अच्छी तरह से संरक्षित करता है (यह मेरे लिए काम करता है, लेकिन यदि आप विभिन्न टर्मिनलों में कई गोले का उपयोग करते हैं तो आपको दो गोले के इतिहास के बीच 'क्रॉसस्टॉक' मिल सकता है)


4
यह पर्यावरण चर निर्यात नहीं करेगा, यह होगा? (हालाँकि जो भी आपके init फ़ाइल द्वारा सेट किया गया है वह रीसेट हो जाएगा।)
cjm

शायद यह नहीं होगा। मैंने उस पहलू पर विचार नहीं किया था क्योंकि मैं पर्यावरण चर के बारे में नहीं सोच रहा था क्योंकि आप अस्थायी रूप से शेल में कुछ सेट करते हैं।
रैंडम --३२

15

निर्यात किए गए पर्यावरण चर को पूर्ववत करने के लिए, आप envकमांड का उपयोग कर सकते हैं env -i zsh। envकमांड को एक तर्क के रूप में चलाता है, और -iइसे एक स्वच्छ वातावरण देता है।

आपके कॉन्फ़िगरेशन के आधार पर, आपको अपना लोड करने के -lलिए zsh / के  लिए अपील करनी होगी , और आपको अपने वातावरण को बूटस्ट्रैप करने की भी आवश्यकता हो सकती है, ताकि शेल को पता चल जाए कि आपकी स्टार्टअप फाइलें कहां हैं। कुल मिलाकर, यह ऐसा दिखता है:bash.profile$HOME

env -i HOME="$HOME" zsh -l

1
आपको कुछ अन्य लोगों की आवश्यकता हो सकती है, जैसे TERMऔर DISPLAY
जी-मैन का कहना है कि 'मोनिका' की बहाली
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.