MinGW बैश प्रोफाइल


35

मैं विंडोज 7 पर मिनग का उपयोग करता हूं । मेरे पास .bashrcइसमें कुछ उपनाम हैं। फाइल मेरे होम फोल्डर में है, जहां मिनगॉव मुझे शुरू करता है, इसलिए यह भी माना जाता है कि फोल्डर मेरा होम फोल्डर है। यह फ़ोल्डर की सामग्री को स्वचालित रूप से लोड नहीं करता है। मुझे bashउपनामों को काम करने के लिए कमांड चलाना होगा ।

मैंने इसका नाम बदलने की कोशिश की है .bash_profile। यह केवल चीजों को बदतर बना देता है क्योंकि यह स्वचालित रूप से लोड नहीं होता है और जब मैं bashमैन्युअल रूप से चलाता हूं तब भी लोड नहीं होता है ।

मैं इस समस्या को कैसे ठीक करुं?


क्षमा करें पथ होना चाहिए: C: \ MinGW \ msys \ 1.0 \ home \ Your_Username_Here \

जवाबों:


46

bashशायद एक लॉगिन शेल के रूप में शुरू हो रहा है, जिस स्थिति में यह .bashrcस्वचालित रूप से नहीं पढ़ता है । इसके बजाय, यह पढ़ता है .bash_profile। से बैश मैनुअल :

तो, आम तौर पर, आपके `~ / .bash_profile 'में लाइन होती है

if [ -f ~/.bashrc ]; then . ~/.bashrc; fi

किसी भी लॉगिन-विशिष्ट इनिशियलाइज़ेशन के बाद (या पहले)।

इसलिए सारांश में, .bash_profileअपने होमडायर में एक फ़ाइल बनाएं, और ऊपर उद्धृत लाइन जोड़ें।

यदि आपका bashवास्तव में जैसा हो रहा है sh, तो आपको .profileइसके बजाय .bash_profileबश मैनुअल लिंक के "इनवॉल्ड विथ श" अनुभाग देखें।


1
विचार के लिए धन्यवाद, हालांकि काम नहीं किया। जैसा कि मैंने सवाल में कहा, .bash_profile में अन्य आदेशों को डालने से काम नहीं होता है, इसलिए ऐसा लगता है कि यह पढ़ने को नहीं मिलता है।
KurToMe

5
इसने मुझे वही करने का विचार दिया, जो आपने इसके बजाय इसे .profile फ़ाइल में रखने के लिए कहा था। किसी कारण से काम किया (हो सकता है कि MinGW डिफ़ॉल्ट रूप से बैश का उपयोग न करे या कुछ पागल हो)। यदि आप इस विकल्प को अपने उत्तर में जोड़ते हैं तो मैं इसे स्वीकार करूँगा।
KurToMe

1
आह, मेरे प्रश्न में एक टाइपो था जिसे मैंने तय किया, मैं इसे .bash_rcप्रश्न में बुला रहा था , लेकिन मेरा मतलब था .bash_profile
KurToMe

कुछ हद तक अधिक कविता:[ -f ~/.bashrc ] && . ~/.bashrc
रिच होमोलका

1
@KurToMe मैंने आपकी स्थिति को कवर करने के लिए संपादन किया।
19-28 को jjlin

8

मैं विंडोज एक्सपी चला रहा हूं और वही समस्या थी। मैंने पाया कि HOWTO क्रिएट एक MSYS बिल्ड एनवायरनमेंट

यह महत्वपूर्ण पंक्ति है:

रनटाइम बिल्ड और वर्तमान वर्किंग डायरेक्टरी की पहचान करने में मदद करने के लिए, ~/.profileफ़ाइल में निम्नलिखित को जोड़ा जा सकता है ।

MinGW शेल में, मैंने बनाया .profile:

cd ~
touch .profile

मैंने नोटपैड ++ का उपयोग इसे यूनिक्स प्रारूप टेक्स्ट फ़ाइल के रूप में संपादित करने के लिए किया था, जिसे .profileमैंने अपने घर निर्देशिका में सहेजा था,C:\MinGW\msys\1.0\home\Your_Username_Here\.profile

फिर मैंने अपना उपनाम जोड़ा और बचाया:

alias n='nano -w'

तब मैंने अपने स्टार्ट मेनू से मिनगेल शेल शॉर्टकट को निकाल दिया और हुर्रे, यह काम किया! कोई पाठ रैपिंग के साथ नैनो

मैं आशान्वित हूं कि इससे आपको सहायता मिलेगी।


आप जो कह रहे हैं वह जिव नहीं करता है ... ~ का अर्थ है कि उपयोगकर्ता होम डायरेक्टरी ... तो आपका स्टैटिंग c: \ MinGW \ msys \ 1.0 \ home ... कि किसी भी मायने में टिल्ड का कोई मतलब नहीं है। USERS घर ... उन विंडो पर% userprofile% ...
एडी बी

2

मुझे मेरे लिए काम करने के लिए .bash_profile नहीं मिला (यह पढ़ा नहीं जा रहा था), इसलिए मैंने .profile दृष्टिकोण लिया और इसके भीतर डाल दिया:

exec bash

यह मेरे वर्तमान शेल को नए सिरे से बैश की जगह देता है, जो कि मेरी .bashrc को पढ़ता है

मुझे लगता है कि एक .profile का उपयोग करने से पता चलता है कि sh का उपयोग लॉगिन पर किया जाता है, न कि bash के लिए।


1

मेरे लिए GIT के साथ स्थापित MINGW के लिए, काम किया: .bash_profile में डाल दिया C:\Users\[user_name]

यह वह निर्देशिका भी है जहाँ ~ शेल (pwd) को इंगित करता है।

बस ऐसी :)


0

@ कोषमार की तर्ज पर, लेकिन थोड़ा अलग। मेरा mingw64, git-scm.com से डाउनलोड किया गया , /c/Users/[user-name]स्टार्टअप पर लोड होगा । फिर भी मेरा घर ड्राइव (द्वारा पाया गया cd ~) में था /h/। मैं एक डाल .bashrcऔर .bash_profileमेरे में ~ड्राइव और सब कुछ काम किया।

इन .bash_profile:

    source ~/.bashrc;

बस यह पता लगाओ कि MINGW घर पर विचार करता है और .bash_profileवहां डालता है ।


0

MSYS बैश आरंभीकरण फ़ाइलों को कैसे सेट करें

विंडोज ओएस में, जिस तरह से आप बैश (यानी, प्रोफाइल, bash_profile, bashrc) द्वारा उपयोग किए जाने वाले इनिशियलाइज़ेशन फ़ाइलों की ओर इशारा करते हैं, लिनक्स ओएस की तुलना में अलग है।

विंडोज और लिनक्स ओएस के बीच का अंतर उनकी फ़ाइल सिस्टम संरचना है, जो बैश फ़ाइल स्थानों और फ़ाइल नामकरण सम्मेलनों में अंतर की ओर जाता है।

MSYS बैश आरंभीकरण फ़ाइलों को कैसे सेट करें (यानी, प्रोफ़ाइल, bash_profile, और bashrc)

1) WINOS में, 'C: \ msys \ 1.0 \ etc \' यहाँ स्थित 'आदि' फोल्डर खोलें। ध्यान दें। आपको 'आदि' फ़ोल्डर के अंदर एक फाइल 'प्रोफाइल' दिखनी चाहिए।

2) कोई फ़ाइल-एक्सटेंशन फ़ाइल सहेजें (यानी, जब आप सहेजते हैं तो सहेजें को '.all फ़ाइलों के रूप में टाइप करें) फ़ाइल नाम' .bash_profile 'के साथ' C: \ msys \ 1.0 \ home \ USERNAME '। ध्यान दें। फ़ाइल नाम (जैसे '.bash_profile') के लिए उपसर्ग के रूप में डॉट है जैसा कि आप लिनक्स ओएस बैश सेटअप में उम्मीद करेंगे

2) कोई फ़ाइल-एक्सटेंशन फ़ाइल नहीं सहेजें (यानी, जब आप सहेजते हैं तो सहेजें को '.all फ़ाइलों के रूप में टाइप करें) फ़ाइल नाम' .bashrc 'के साथ' C: \ msys \ 1.0 \ home \ USERNAME '। ध्यान दें। फ़ाइल नाम (जैसे '.bash_profile') के लिए उपसर्ग के रूप में डॉट है जैसा कि आप लिनक्स ओएस बैश सेटअप में उम्मीद करेंगे

4) टेक्स्ट एडिटर में 'प्रोफाइल' फाइल खोलें (उदात्त टेक्स्ट x अच्छा है) नोट: 'प्रोफाइल' की फाइल लोकेशन 'C: \ msys \ 1.0 \ etc \' है।

'प्रोफ़ाइल' फ़ाइल के अंदर, फ़ाइल के अंत में पाठ की लाइन पर स्क्रॉल करें (यानी, नीचे तक स्क्रॉल करें) आपको एक रेखा दिखनी चाहिए, जो बैश को इंगित करती है कि इसकी वर्तमान निर्देशिका को घर में बदलने के लिए (MSYS में, घर के रूप में परिभाषित किया गया है) 'प्रोफाइल' फ़ाइल)

CD $HOME

5) पाठ 'सीडी $ होण्ड' के साथ लाइन से पहले निम्न कोड को कॉपी करें - 'प्रोफाइल' के भीतर इस स्क्रिप्ट को जोड़ने से MSYS को bash_profile # ---------------- चलाने के लिए बैश कर देगा। -------------------------------------------------- --------- #modified BEGIN

# Note. -f is a flag in the file-test operator set of bash commands
#       that test whether file exists
echo '[i] INFO loading personal environment variables and startup   programs.... '
BASHRC="$HOME/.bash_profile"
if [ -f "$BASHRC" ]; then
  source "$BASHRC"
fi

#modified END
#---------------------------------------------------------------------------

6) पाठ संपादक में 'bash_profile' फ़ाइल खोलें ( उदात्त पाठ x अच्छा है) और फ़ाइल का अंत (फ़ाइल के नीचे)

7) फ़ाइल के अंत में निम्नलिखित कोड को कॉपी करें - '। Bash_profile' के भीतर इस स्क्रिप्ट को जोड़ने से Bash को '.bashrc' चलाने के लिए कहा जाएगा।

#---------------------------------------------------------------------------
#modified BEGIN

# Note. -f is a flag in the file-test operator set of bash commands
#       that test whether file exists
BASHRC="$HOME/.bashrc"
if [ -f "$BASHRC" ]; then
  source "$BASHRC"
fi

#modified END

# ------------------------------------------------- --------------------------

8) ठीक है, अब '.bashrc' के अंदर एक छोटी सी स्क्रिप्ट लिखें, यह देखने के लिए कि क्या 'प्रोफ़ाइल' 'bash_profile' कह रही है और यदि 'bash_profile' कॉल '.bashrc'।

8.1) एक कमांड नाम के बारे में सोचें जिसे आप बनाना चाहते हैं। चलो परीक्षण करने के लिए 't' का उपयोग करते हैं

8.2) बैश टर्मिनल खोलें और 't' टाइप करें। बैश को ash t: कमांड नहीं मिला ’का जवाब देना चाहिए - अगर यह नहीं कहता है कि command t: कमांड नहीं मिला’ तो and.१ और t.२ तब तक दोहराएं जब तक कि आपका कमांड का नाम not कमांड नहीं मिला ’। आप BAD को Bash करने के लिए असाइन की गई एक कमांड का नाम देना नहीं चाहते!, इसलिए इसे 'कमांड नहीं मिला' होना चाहिए

8.3) ठीक है, 't' ने मुझे 't: कमांड नहीं मिला' दिया। अब स्क्रिप्ट को '.bashrc' में लिखते हैं।

8.4) '.bashrc' में लिखें

# Use double quotes or bash will not write it
alias t="echo passed test"

8.5) 'C: \ msys \ 1.0 \ home \ USERNAME' में फ़ाइल '.bashrc' सहेजें

9) लगभग वहाँ। अब बैश टर्मिनल को पुनरारंभ करें, और पहले से खोले गए बैश टर्मिनलों को बंद करना सुनिश्चित करें

10) टर्मिनल 't' में टाइप करें। इसे test उत्तीर्ण परीक्षा ’का उत्तर देना चाहिए। यदि नहीं, तो ध्यान से देखें कि कोड सही ढंग से लिखा गया था (उद्धरणों की जाँच करके शुरू करें)

कुछ नोट्स 1) 'सोर्स फाइलनेम' जैसा ही है। फ़ाइल का नाम'

2) "" दोहरे उद्धरण चर को इसकी सामग्री द्वारा प्रतिस्थापित करने की अनुमति देते हैं एकल उद्धरण नहीं

3) $ घर / घर / USERNAME समान है ~ ~ / home / USERNAME

4) एक फ़ंक्शन हमेशा उपनाम 2 से अधिक पसंद किया जाता है

अधिक विवरण के लिए BASH संदर्भ देखें

मैं बैश में नया हूं। तो कोई गारंटी नहीं है कि मैंने यह सबसे अच्छा तरीका किया।

सौभाग्य!

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