निर्यात PATH लाइन में .bashrc क्या करता है?


9

मैं लिनक्स में नहीं हूँ और मुझे एक ट्यूटोरियल के बाद निम्नलिखित संदेह है।

मुझे bashrcफ़ाइल को संशोधित करना होगा । इस फ़ाइल में किस तरह की सेटिंग्स निहित हैं? मुझे लगता है कि बैश शेल पर्यावरण से संबंधित कुछ है लेकिन मैं इसके बारे में निश्चित नहीं हूं।

मुझे यह पंक्ति सम्मिलित करनी होगी:

export PATH=$HOME/.local/bin:$HOME/.local/usr/bin:$PATH

वास्तव में यह लाइन क्या है?

मुझे लगता है कि exportबयान का उपयोग एक नया चर बनाने के लिए किया जाता है, जो इसे अन्य कार्यक्रम के लिए उपलब्ध कराता है।

लेकिन वास्तव में यह लाइन क्या है? है PATHवैरिएबल का नाम है कि मैं परिभाषित करने कर रहा हूँ? क्या है $HOME?

पिछली अभिव्यक्ति में और और अनुभाग के :बीच का प्रतीक क्या है ?PATH=$HOME/.local/bin$HOME/.local/usr/bin$PATH

इस अभिव्यक्ति का वास्तव में क्या मतलब है?


आइटम के बीच: प्रत्येक खंड के लिए विभाजक है। इसके बिना, आपका पथ एक निरंतर चलने वाला होगा और काम नहीं करेगा।
टेरेंस

उबंटू में इस तरह के PATHसंशोधनों को पहले से ही ~/.profileफ़ाइल में किया गया है , इसलिए इसमें समान सामान करना थोड़ा असंगत है ~/.bashrc। बेहतर IMO ~/.profileयदि आवश्यक हो तो पहले से ही कोड को संशोधित करने के लिए । वर्तमान में डिफॉल्ट ~/.profileफाइल में यह लाइन शामिल है:PATH="$HOME/bin:$HOME/.local/bin:$PATH"
गुन्नार हेजलरमसन

@GunnarHjalmarsson: ऐसी कुछ स्थितियाँ हैं जो कि .profile और .bashrc को अलग बनाती हैं। फ़ाइल .profile लॉगिन शेल द्वारा पार्स की गई है और उपधारा द्वारा नहीं। लेकिन जब से आपको सबस्क्रिप्शन शुरू करने के लिए किसी भी तरह से लॉगिन करने की आवश्यकता होती है तो यह ठीक है क्योंकि सब-बिल $ PATH के वारिस होंगे। .Bashrc फ़ाइल को लॉगिन शेल द्वारा पार्स नहीं किया जाएगा, लेकिन उपधाराओं द्वारा पार्स किया जाएगा। अंतर तब आता है जब आपके पास कुछ सामान होता है जो लॉगिन शेल के बच्चे नहीं होते हैं (शायद कुछ फैंसी ऑटोमेशन स्क्रिप्ट जो अन्य स्क्रिप्ट्स को गिट कमिट हुक कहते हैं)
इनफ़िल्टाइल

@slebetman: ठीक है, और एक डेस्कटॉप के मामले में एक और अंतर है जिसका आप उल्लेख नहीं करते हैं: इसके विपरीत ~/.bashrc, ~/.profileडिस्प्ले मैनेजर द्वारा खट्टा है , इसलिए ~/.profileजब आप ग्राफिकल वातावरण से प्रोग्राम शुरू करते हैं तो केवल सेट चर उपलब्ध होते हैं। और यह जल्दी होता है इसलिए सत्र के लिए ऑटोस्टार्टेड प्रक्रियाओं के लिए ठीक होना चाहिए।
गुन्नार हेजलमरसन

जवाबों:


16

इस प्रश्न में बताई गई सभी बातों को याद करने के लिए,

exportभाग

exportलाइन का मतलब है कि चर है कि आप की घोषणा के बाद यह बच्चे प्रक्रियाओं के लिए सुलभ हो जाएगा। दूसरे शब्दों में, प्रक्रियाएं exportशेल के वातावरण के माध्यम से कीवर्ड के बाद घोषित चर तक पहुंचने में सक्षम होंगी । इसलिए, यदि आपने कुछ किया है export FOO="BAR"और फिर अपने शेल वातावरण में बदलावों को लिया है, तो आप टाइप कर सकते हैं $FOOऔर प्राप्त कर सकते हैं BAR

PATHभाग

पथ रेखा ठीक उसी प्रकार है जैसा आपने कहा था: यह एक चर घोषित कर रहा है जिसका नाम PATHशेल पर्यावरण है। बैश वातावरण में, PATHपरिभाषित करने का एक विशेष उद्देश्य होता है जहां कंप्यूटर कार्यक्रमों के लिए दिखता है। यह आपको पूर्ण निर्देशिका टाइप किए बिना स्क्रिप्ट के लिए कस्टम कमांड टाइप करने देता है। ध्यान दें कि PATH डिफ़ॉल्ट रूप से निर्यात के लिए चिह्नित है, इसलिए इस लाइन को फिर से लिखना नहीं पड़ता है। यह चोट नहीं करता है, यद्यपि।

$HOMEमें PATHचर

मार्ग की शुरुआत में जो PATHचर को सौंपा गया है, $HOMEघोषित किया गया है। इसका मतलब यह है कि कंप्यूटर बहुत अधिक मूल्य को संग्रहीत करेगा HOMEऔर इसे पढ़ते समय बाकी पंक्ति के सामने कॉपी-पेस्ट करेगा।

:दोनों रास्तों के बीच में

:वाक्यों में एक अल्पविराम के बराबर है। यह सिर्फ तीन निर्देशिकाओं को अलग करता है। उन तीन निर्देशिकाओं के बिना, कंसोल यह प्राप्त आदेशों को नहीं पहचानता। वे तीन स्थान वे तीन निर्देशिकाएं हैं जो आमतौर पर लिपियों / कमांड फ़ाइलों को संग्रहीत करने के लिए उपयोग की जाती हैं और इसलिए फ़ाइल द्वारा पूर्ण पथ लिखने के बिना टर्मिनल द्वारा पहुंच योग्य होनी चाहिए।


बहुत बढ़िया जवाब! "निर्यात लाइन का मतलब है कि आपके द्वारा घोषित की गई चर वह बाल प्रक्रियाओं के लिए सुलभ होगी" क्या माता-पिता इन बच्चों के लिए उस टर्मिनल को संसाधित करते हैं जहां से मैं एक कमांड चलाऊंगा?
वदसंबर

5

PATHवेरिएबल को यह पता चलता है कि निष्पादन योग्य कार्यक्रमों को कहाँ देखना है, इसलिए यदि आपके पास कोई स्क्रिप्ट या कोई अन्य निष्पादन योग्य फ़ाइल है $HOME/.local/bin, तो संशोधित करने PATHसे आप उस फ़ाइल को टाइप कर सकते हैं और चला सकते हैं जैसे आप lsया साथ करते हैं df

exportकेवल इसका मतलब है कि PATHवैरिएबल अन्य प्रोग्रामों के लिए भी उपलब्ध है जिसे आप बैश से चलाते हैं।

जैसा कि : , यह प्रत्येक निर्देशिका के लिए एक विभाजक है। यह शब्दों की सूची में अल्पविराम के समान है, इससे अधिक कुछ नहीं।

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