इसे बंद करने और एक नई शुरुआत करने के बजाय एक टर्मिनल विंडो को कैसे पुन: स्थापित करना है?


49

जब मैं शेल / बैश व्यवहार में कुछ बदलाव करता हूं, जैसे कि एक उपनाम स्थापित करना, क्या नई विंडो को बंद करने और खोलने के बजाय टर्मिनल विंडो को फिर से संगठित करने के लिए एक त्वरित आदेश है?

जवाबों:


51

यदि आप अपने .bashrc विन्यास को पुनः लोड करने का मतलब रखते हैं:

source ~/.bashrc

कम टाइपिंग के लिए, आप sourceएक डॉट के साथ बदल सकते हैं :. ~/.bashrc


2
यहाँ एक सवाल है, यह किस तरह से अलग व्यवहार करता है source ~/.bashrc?
कासनिक

यह नहीं है बैश मैन पेज को देखते हुए आप देखेंगे कि कमांड्स समतुल्य सूचीबद्ध हैं।
कार्सन थिएल

2
sourceबैश करने के लिए एक विशिष्ट है। .अधिक मानक है। दोनों बश में एक ही काम करते हैं।
माइकल टेरी

1
यह आपके PATH और कुछ पर्यावरण चर को पुनः लोड करता है। यह कुछ भी "रीसेट" नहीं करता है। @ एनईएस का उत्तर सही है।
सेरिन

2
यह कुछ भी रीसेट नहीं करता है, अगर आपके पास अपने PATH के अपडेट थे तो अब आपके पास अपने पुराने अपडेट और नए अपडेट होंगे।
कॉन्स्टैंटिन

39

कुछ जोड़ मैं रीसेट / परेशान कमांड से मैनपेज में मिला

tset टर्मिनल इंटिग्रेशन को रीसेट करता है

आदेश: reset

Tset टर्मिनलों को इनिशियलाइज़ करता है। Tset पहले टर्मिनल के प्रकार को निर्धारित करता है जिसका आप उपयोग कर रहे हैं। यह निर्धारण निम्न प्रकार से किया जाता है, पहले टर्मिनल प्रकार का उपयोग करके।

एक फायदा यह प्रतीत होता है, कि यह प्रयुक्त शेल से स्वतंत्र है। यहां मछली के साथ भी काम करता है।

इसलिए किसी भी टर्मिनल को फिर से संगठित करने के लिए-

$ tset

या

$ reset

दुर्भाग्य से यह भी गलत है। यह मौजूदा पर्यावरण चर को रीसेट नहीं करता है।
इसरांडी

9

इसका एक अतिरिक्त विकल्प यह exec bashहै कि यदि आपने अपना .profile(या .bash_profile) बदल दिया है , तो आप कर सकते हैं

$ exec bash --login

जो आपकी प्रोफाइल को फिर से पढ़ेगा। यह -iविकल्प को जोड़ने के लिए चोट नहीं पहुंचाएगा, साथ ही स्पष्ट रूप से यह बताने के लिए कि यह एक इंटरैक्टिव शेल है, लेकिन यह सामान्य रूप से खुद के लिए समझ सकता है।


मेरे लिए यह बिना किसी कार्य के भी काम करता है
अर्मेन सनोयान

दुर्भाग्य से गलत भी है। पहले से ही सेट किए गए पर्यावरण चर अभी भी हैं और रीसेट नहीं हैं।
इसरांडी

6

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

> $ exec bash

रनिंग एप्लिकेशन / शेल को bashस्क्रैच से शुरू होने के नए उदाहरण द्वारा प्रतिस्थापित किया जाता है । आपके पिछले सभी संशोधन चले गए हैं।

टिप्पणी: यह मत भूलो कि आपके टर्मिनल आवेदन को फिर से शुरू किया जा सकता है। आपको अपना टर्मिनल एप्लिकेशन मैन्युअल रूप से रीसेट करना होगा।


2
"रिप्रोग्राम्ड" से आपका क्या तात्पर्य है?
एलिया कागन

0

आपका शेल एक निष्पादन योग्य है जिसे आप कॉल कर सकते हैं। इसलिए यदि आप बैश का उपयोग कर रहे हैं, तो आप कॉल कर सकते हैं bashऔर यदि आप किसी अन्य चीज़ का उपयोग कर रहे हैं जैसे zsh आप बस दर्ज कर सकते हैंzsh


0

का उपयोग करें exec sudo --login --user $USER

आप भी disapper को पहले दर्ज किए गए आदेश (टर्मिनल से भरा रीसेट) चाहते हैं, इसके साथ गठबंधन resetके रूप मेंreset; exec sudo --login --user $USER

वेब के चारों ओर कई उत्तर हैं लेकिन अधिकांश वास्तव में काम नहीं करते हैं। परीक्षण करने का आसान तरीका यह है कि निर्धारित export SOMEVAR=42रीसेट कमांड निष्पादित करें और करें echo $SOMEVAR। यदि यह 42 वर्ष का है, तो वातावरण रीसेट नहीं किया गया था।

वहाँ भी है exec -c bash -lया exec env -i bash -l, लेकिन ये टूट गए हैं, किसी भी तरह $ HOME चर इसके बाद सेट नहीं है।

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