कमांड लाइन से .bash_profile को पुनः लोड कैसे करें?


993

मैं कमांड लाइन.bash_profile से पुनः लोड कैसे कर सकता हूं ?

मुझे .bash_profileबाहर निकलने और लॉग इन करने से परिवर्तनों को पहचानने के लिए शेल मिल सकता है , लेकिन मैं इसे मांग पर करने में सक्षम होना चाहूंगा।

जवाबों:


1879

बस टाइप करें source ~/.bash_profile

वैकल्पिक रूप से, यदि आप कीस्ट्रोक्स को सहेजना पसंद करते हैं तो आप टाइप कर सकते हैं . ~/.bash_profile


49
कैसे के बारे में alias BASHRELOAD=". ~/.bash_profile"। यदि आप अक्सर ऐसा करते हैं, तो आप इसे बस के रूप में उर्फ ​​कर सकते हैं br
बोबोबोबो

1
किसी भी कारण से मुझे यह हर एक बार / सत्र करने की आवश्यकता होगी? जब मैं किसी संपादक में इसे खोलता हूं तो मुझे फ़ाइल में होने के बावजूद भी .bash_profile पर किए गए परिवर्तन नहीं मिल सकते। भ्रामक।
इरविनहेइजर

3
@erwinheiser क्या आपका सिस्टम फ़ाइल लोड कर रहा है? कुछ सिस्टम अन्य फ़ाइलों का उपयोग करते हैं, जैसे ~ / .bashrc।
ग्राहम पी हीथ

1
यदि आप यह जानना चाहते हैं कि क्या आपके द्वारा उपयोग किए जाने वाले लोड पर कुछ गलत हुआ है:alias reload='source ~/.bash_profile && echo "File .bash_profile reloaded correctly" || echo "Syntax error, could not import the file"';
क्रिस्टियन बतिस्ता

1
उन लोगों के लिए जो भूल गए कि आपने ओह्मज़श पर स्विच किया है। खुला चलाएं ~ / .zshrc और अपने परिवर्तनों को अपने
.bash_profile के

105
. ~/.bash_profile

बस यह सुनिश्चित करें कि आपकी वर्तमान स्थिति पर कोई निर्भरता नहीं है।


15
यह काम क्यों करता है? यानी, .इस मामले में आदेश क्या है ?
योना

9
डॉट ऑपरेटर:.source कमांड के लिए केवल एक उपनाम है ।
ग्राहम पी हीथ

8
@GrahamPHeath - सख्ती से बोलने पर मुझे लगता है कि यह दूसरा रास्ता है; .से अधिक पुराना है sourceहै।
कार्ल नॉरम

4
sourceका बैश विशिष्ट कार्यान्वयन है.
थिरुपथी थंगावेल

7
@StasS - .और sourceसचमुच में एक ही बात है। लिंक से: " बैश में sourceडॉट / पीरियड 'का एक पर्यायवाची है ., लेकिन पॉसिंक श में नहीं, इसलिए अधिकतम अनुकूलता के लिए अवधि का उपयोग करें।"
कार्ल नॉरम

31

बस प्रकार:

. ~/.bash_profile

हालांकि, यह स्वचालित रूप से बजाय इसे आप टर्मिनल खोलने हर बार चलाने का टर्मिनल शुरू होता है, आप जोड़ सकते हैं चलाने के लिए यदि आप स्रोत के लिए चाहते . ~/.bash_profileकरने के लिए ~/.bashrcफ़ाइल।

ध्यान दें:

जब आप एक टर्मिनल खोलते हैं, तो टर्मिनल (गैर-लॉगिन) इंटरएक्टिव मोड में बाश करना शुरू कर देता है, जिसका अर्थ है कि यह स्रोत होगा ~/.bashrc

~/.bash_profileइंटरैक्टिव लॉगिन मोड में शुरू होने पर केवल बैश द्वारा खट्टा होता है । यह आमतौर पर केवल तब होता है जब आप कंसोल ( Ctrl+ Alt+ F1.. F6) पर लॉगिन करते हैं , या इसके माध्यम से कनेक्ट होते हैं ssh


15

आप इस आदेश का उपयोग उस उपयोगकर्ता के लिए ~ / .bash_profile को पुनः लोड करने के लिए भी कर सकते हैं। डैश का उपयोग करना सुनिश्चित करें।

su - username

6
यह आदर्श से बहुत दूर एक शेल के भीतर एक पूरे शेल का आह्वान करेगा। अन्य विकल्प केवल प्रासंगिक फ़ाइल को फिर से निष्पादित करते हैं, जिसका अर्थ है कि वे (ए) वास्तव में पूछे गए प्रश्न के लिए प्रासंगिक हैं और (बी) शेल को जमा नहीं कर रहे हैं और संभवतः अन्य चीजों को फिर से लोड कर रहे हैं जो (एनवी संस्करण) नहीं होना चाहिए। वहाँ रहे हैं उचित तरीके वर्तमान खोल एकमुश्त (घोंसले के बिना) को बदलने के लिए, लेकिन जब से कि विषय बंद है, मैं कहीं और खोज करने के लिए रुचि पाठकों छोड़ देंगे।
अंडरस्कोर_ड

3
आप एक और शेल खोल रहे हैं, यह एक पुनः लोड नहीं है जो आप एक नया टर्मिनल खोल सकते हैं या फिर लॉग कर सकते हैं
जुआन डिएगो

15

मैं इस तथ्य को पसंद करता हूं कि आपने फ़ाइल को संपादित करने के बाद, आपको बस इतना करना है:

. !$

यह वह स्रोत है जिसे आपने अभी-अभी इतिहास में संपादित किया है। देखें बैश में धमाके डॉलर क्या है


11
  1. .Bash_profile फ़ाइल सहेजें
  2. टाइप करके उपयोगकर्ता की होम डाइरेक्टरी cd
  3. के साथ प्रोफ़ाइल पुनः लोड करें . .bash_profile

8
जरा घर चलिए cd। की कोई जरूरत नहीं ~
roNn23

8
कोई ज़रूरत नहीं है cd- आप इसे केवल उस निर्देशिका से पुनः लोड कर सकते हैं जो आप वर्तमान में हैं:. ~/.bash_profile
एलेक्स विला

10

यदि आप अपने वर्तमान शेल टर्मिनल के इतिहास को खोने का बुरा नहीं मानते हैं तो आप भी कर सकते हैं

bash -l

यह आपके खोल को फोर्क करेगा और बैश की एक और बच्चे की प्रक्रिया को खोल देगा। -lपैरामीटर एक लॉगिन शेल के रूप में चलाने के लिए पार्टी बताती है, के बारे में इस वजह .bash_profile एक गैर लॉगिन खोल, अधिक जानकारी के लिए के रूप में नहीं चलेगा यह आवश्यक है यहाँ पढ़

यदि आप वर्तमान शेल को पूरी तरह से बदलना चाहते हैं, तो आप यह भी कर सकते हैं:

exec bash -l

उपरोक्त आपके वर्तमान शेल को कांटा नहीं जाएगा, बल्कि इसे पूरी तरह से बदल देगा, इसलिए जब आप टाइप exitकरेंगे तो यह आपको पिछले शेल में छोड़ने के बजाय पूरी तरह से समाप्त कर देगा।


यदि आप iterm2
Xitcod13


3

यदि .bash_profile मौजूद नहीं है, तो आप निम्न कमांड चलाने की कोशिश कर सकते हैं:

. ~/.bashrc 

या

 source ~/.bashrc

इसके बजाय .bash_profile। आप bashrc के बारे में और जानकारी पा सकते हैं


3

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

यदि आप iTerm काCMD⌘ShiftI उपयोग करते हैं , तो आप सभी वर्तमान टैब में कमांड दर्ज करने के लिए + + का उपयोग कर सकते हैं । टर्मिनल के लिए यह इस समस्या को संदर्भित करने के लिए उपयोगी हो सकता है ;



2

मैं डेबियन का उपयोग करता हूं और मैं इसे exec bashप्राप्त करने के लिए बस टाइप कर सकता हूं । मैं यह नहीं कह सकता कि क्या यह अन्य सभी वितरणों पर काम करेगा।


2
यह मैक में काम नहीं करेगा (कम से कम उस संस्करण में नहीं जिसका मैं उपयोग कर रहा हूं - सिएरा) क्योंकि बस ऐसा करने से एक नो लॉगिन शेल निष्पादित होता है जो
.bash_profile

@Ulukai जाहिरा तौर पर सिर्फ . .bash_profileमैक पर अपने घर निर्देशिका के अंदर टाइपिंग करते समय काम करेंगे। 7urkm3n द्वारा दिए गए उत्तर के रूप में भी।
कैसंड्रा

2
alias reload!=". ~/.bash_profile"

या अगर कार्यों के माध्यम से लॉग जोड़ना चाहते हैं

function reload! () {
    echo "Reloading bash profile...!"
    source ~/.bash_profile
    echo "Reloaded!!!"
}

नहीं, इसकी वरीयता पर। अगर स्टेटस दिखाने वाली कुछ अतिरिक्त प्रिंट लाइन्स जोड़ना चाहते हैं और न ही बस जाना है . ~/. bash_profile और न हीsource ~/.bash_profile
7urkm3n

1

मैं सिएरा चला रहा हूं, और कुछ समय के लिए इस पर काम कर रहा था (सभी अनुशंसित समाधानों की कोशिश कर रहा हूं)। मैं अंतत: अपने कंप्यूटर को पुनः आरंभ करने का प्रयास कर रहा था! इसने काम कर दिया

मेरा निष्कर्ष है कि कभी-कभी एक कठिन रीसेट आवश्यक होता है


1
माइक हाँ एक हार्ड रीसेट काम करेगा क्योंकि सब कुछ फिर से नए सिरे से लोड होता है। जब तक आपके द्वारा किए गए परिवर्तन कार्यात्मक हैं, तब तक यह अगले बूट अप पर प्रभावी होगा। हालाँकि, आपके लिए यह आसान होगा कि आप हर समय बस बैश को रिफ्रेश करने के लिए कमांड / तरीका खोजने के लिए थोड़ा सा खोदें। रिबूट के बिना इसे प्राप्त करने का एक तरीका होगा, जो निश्चित रूप से बहुत अधिक समय सोख लेगा, यह देखने के लिए कि क्या नवीनतम परिवर्तन काम करता है! शायद osxdaily.com/2016/06/06/…
कैसंड्रा

1
हाँ, मैंने संक्षिप्त और पूर्ण आदेश दोनों को बैश प्रोफ़ाइल / पथ को पुनः लोड करने का प्रयास किया। यह काम नहीं किया, केवल लॉग आउट किया और वापस काम किया। अजीब
Bjorks नंबर एक प्रशंसक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.