क्या करता है । .Bashrc वास्तव में क्या करते हैं?


13

जब मैं एक उदाहरण में प्रवेश करता हूं अपनी .bashrcफ़ाइल में एक नया उपनाम मैं उस टर्मिनल विंडो में तुरंत उपयोग नहीं कर सकता और हाल ही में जब तक मुझे लगा कि मुझे .bashrcफ़ाइल को फिर से लोड करने के लिए टर्मिनल को पुनरारंभ करना होगा । तब मुझे कहीं पता चला कि अगर मैं लिखता हूं

. .bashrc

यह .bashrcवर्तमान विंडो में फ़ाइल को पुनः लोड करेगा और मुझे पुनरारंभ करने की आवश्यकता नहीं है। यह पंख काम करता है लेकिन वास्तव में क्या हो रहा है? यह .bashrcफ़ाइल को पुनः लोड क्यों करता है ?


1
के साथ ., आप फ़ाइल "स्रोत"। इसका अर्थ मूल रूप से निष्पादित किया जा रहा है
डेर होकस्टापलर

के संभावित डुप्लिकेट क्या स्रोत क्या करता है?
दान डी।

1
@DanD। जबकि जवाब एक ही है, सवाल मुझे काफी अलग लगता है।
कैलिमो

1
@ डी। यह सवाल मेनिंग के बारे में अधिक है । अब तक मैंने हमेशा इस बारे में सोचा वर्तमान निर्देशिका के लिए एक आशुलिपि के रूप में और .. मूल निर्देशिका के लिए एक आशुलिपि के रूप में। मुझे कभी एहसास नहीं हुआ स्रोत के लिए एक उपनाम था (जो बदले में मेरे लिए एक पूरी तरह से नई अवधारणा थी)। यदि कोई व्यक्ति यहां आता है और मैं अंतर को जानना चाहता हूं तो मैंने पाया कि बैश स्क्रिप्ट को निष्पादित करने और बैश स्क्रिप्ट सोर्स करने में क्या अंतर है? बहुत सहायक होना।
कुदाल

जवाबों:


17

क्योंकि .एक आज्ञा है।

यह एक शेल निर्मित कमांड है, जो नामित फ़ाइल को पढ़ता है और वर्तमान शेल प्रक्रिया में आदेशों को निष्पादित करता है।

बॉर्न अगेन शेल में भी sourceइस कमांड का एक पर्यायवाची है। लेकिन यह बैशिज़्म है (कि बॉर्न अगेन शेल सी शेल से लिया गया है)। यद्यपि यह एक बशीवाद है कि बॉर्न अगेन शेल, टेनेक्स सी शेल, जेड शेल और अन्य (लेकिन कोर्न शेल नहीं, नोट) के साथ साझा करता है। एकल यूनिक्स विशिष्टता केवल मानकीकृत करती है .

यह भी ध्यान दें कि बॉर्न अगेन शेल अपने पॉसिक्स-संगत मोड में चलाया जा रहा है या नहीं, इस पर निर्भर ./ sourceउप-परिवर्तन का व्यवहार । (फिर से यह अन्य गोले की तरह है, हालांकि उनके गैर-मानक व्यवहार एक-दूसरे के समान नहीं हैं। जेड शेल के साथ, उदाहरण के लिए, एक पूर्वनिर्धारित शेल स्क्रिप्ट तंत्र है, और इसके खोज पथ हैंडलिंग sourceसे सूक्ष्म रूप से भिन्न है .। शेल का .शेल फ़ंक्शन चलाएगा, एक और उदाहरण के लिए।)

~/.bashrcकेवल कई फाइलों में से एक है जिसकी सामग्री (शेल प्रक्रिया को कैसे लागू किया जाता है पर निर्भर करता है) स्वचालित रूप से शेल स्टार्टअप पर खट्टा हो जाता है। वहाँ कुछ भी नहीं है इसे मैन्युअल रूप से sourced होने से रोक रहा है । यद्यपि यदि इसके कार्य निष्प्रभावी नहीं हैं, तो आपको बाद में करने के लिए कुछ फ़िक्सअप कार्य करने पड़ सकते हैं।

आगे की पढाई


1

help . आपको बताएगा:

.: . filename [arguments]

Execute commands from a file in the current shell.

Read and execute commands from FILENAME in the current shell.  The
entries in $PATH are used to find the directory containing FILENAME.
If any ARGUMENTS are supplied, they become the positional parameters
when FILENAME is executed.

Exit Status:
Returns the status of the last command executed in FILENAME; fails if
FILENAME cannot be read.

कहने . .bashrcको (स्रोत) फ़ाइल को निष्पादित करता है .bashrcजो मौजूदा सत्र में फ़ाइल में किए गए परिवर्तनों को उपलब्ध कराता है।

डिफ़ॉल्ट रूप से, ~/.bashrcलॉगिन पर पढ़ा जाएगा।

.के लिए एक पर्याय है source


1

.आदेश के रूप में एक ही बात है sourceआदेश है, जो आपके कार्यान्वित .bashrcफ़ाइल। यह आपके द्वारा परिभाषित सभी उपनामों और वर्तमान वातावरण में किसी भी अन्य शेल सेटिंग्स / चर को जोड़ता है। से sourceकी मदद पृष्ठ:

source: source filename [arguments]
    Execute commands from a file in the current shell.
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.