मैंने अपना "HOME" वेरिएबल बदल दिया है और अब इसे वापस बदलने के लिए "~ / .bash_profile" नहीं खोज सकता


15

मैं अपने मैक पर पर्यावरण चर के साथ गड़बड़ कर रहा था, यह जानने की कोशिश कर रहा था कि उनका उपयोग कैसे किया जाए और मैंने उस कमांड का उपयोग किया nano ~/.bash_profileजहां मैंने HOME=/Users/MyCompName/Desktopअपने होम चर को अपडेट करने के लिए लाइन जोड़ी ।

इस परिवर्तन ने काम किया और देखा जा सकता है जब मैं printenvसभी पर्यावरण चर देखने के लिए उपयोग करता हूं, लेकिन जब मैं HOMEवापस बदलने के लिए गया तो मुझे ~/.bash_profileअब और नहीं मिल सकता है। यह कहाँ गया?


9
मूल रूप से ~इसका मतलब है$HOME
el.pescado

6
... इसलिए यदि आप पुनर्परिभाषित करते हैं $HOME, तो पुनर्परिभाषित ~हो जाता है
el.pescado

जवाबों:


32

यह उसी जगह पर है।

इससे पहले कि परिवर्तन ~किसी चीज़ की तरह हो /Users/YourUserName, शेल आपके को ढूंढता है .bash_profile। फ़ाइल के बाद खटास ~दूसरे रास्ते में फैल जाती है, इसलिए ~/.bash_profileअब संबंधित फ़ाइल को इंगित नहीं किया जाता है। ऐसा इसलिए है क्योंकि इस संदर्भ में ~इसका मतलब है $HOME

यदि आप अपनी वास्तविक होम डायरेक्टरी का पूरा रास्ता जानते हैं, तो आप इसके बजाय इसका उपयोग कर सकते हैं ~। मैक में यह संभवतः इस तरह दिखेगा:

nano /Users/YourUserName/.bash_profile

या अपने बैश को केवल देखने के बजाय उपयोगकर्ता डेटाबेस में अपने होम डायरेक्टरी को देखने दें $HOME। इसके लिए आपको कुछ भी याद रखने की आवश्यकता नहीं है:

nano ~YourUserName/.bash_profile

HOMEअपने वास्तविक घर निर्देशिका को बदलने के बिना अपने चर को संशोधित करना सबसे अच्छा विचार नहीं है। किसी भी उपयोगकर्ता के होम डायरेक्टरी को बदलना एक प्रशासनिक कार्य है, आमतौर पर नियमित उपयोगकर्ता ऐसा नहीं कर सकते हैं।


बहुत बढ़िया मैं इसे फिर से धन्यवाद पाने में सक्षम था! क्या आप इस बात पर विस्तार से विचार करेंगे कि "फ़ाइल के स्रोत के बाद" का क्या मतलब है? मैं इस बात से अपरिचित हूं कि किसी फाइल के लिए इसका क्या मतलब है
मैट

6
@ माट .bash_profileमें बैश स्क्रिप्ट का एक रूप है। आप एक स्क्रिप्ट चला सकते हैं या उसे स्रोत बना सकते हैं। रनिंग का अर्थ है एक उप-पंक्ति बनाना और वहां लाइन द्वारा स्क्रिप्ट लाइन को निष्पादित करना। सोर्सिंग का अर्थ है, वर्तमान शेल में स्क्रिप्ट निष्पादित करना । वर्तमान शेल को प्रभावित करने के लिए किए जाने वाले कुछ कार्यों को एक उपधारा में निष्पादित नहीं किया जा सकता है; वर्तमान शेल के लिए एक चर बदलना उनमें से एक है। यही कारण है कि कुछ फ़ाइलों को एक उपधारा में निष्पादित नहीं किया जाता है। फ़ाइल उपयोग को मैन्युअल रूप से स्रोत के लिए . file( .POSIX द्वारा निर्दिष्ट किया गया है) या source file( sourceकुछ गोले द्वारा समझा गया गैर-POSIX एक्सटेंशन है)।
कामिल मैकियोरोवस्की


2
यदि आपको (मैट) पता नहीं है कि आपकी होम डायरेक्टरी कहां इस्तेमाल होती है, तो आप nano ~YourUserName/.bash_profileइसके बजाय उपयोग कर सकते हैं यह आपके घर निर्देशिका को केवल $ HOME देखने के बजाय उपयोगकर्ता डेटाबेस में देखेगा।
स्टिग हेमर

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