2013-08-23 7 views
22

मैं ताज़ा स्थापित आर्क लिनक्स चला रहा हूं। जब मैं किसी उपयोगकर्ता (लॉगिंग बैश) में लॉग इन करता हूं और .bashrc से उपनाम का उपयोग करने का प्रयास करता हूं, तो यह मुझे 'कमांड नहीं मिला' त्रुटि देता है। लेकिन, अगर मैं 'bash' कमांड के माध्यम से बैश को पुन: प्रस्तुत करता हूं, तो आदेश ठीक काम करता है।bashrc रन बैश कमांड तक लोड नहीं हो रहा है

हां, मैं पहले ही बैश में हूं।

शुरू में env:

बैश चलाने के बाद
SHELL=/usr/bin/bash 

env, यह बनी हुई है:

SHELL=/usr/bin/bash 

तो मैं काफी यकीन है कि जहां समस्या है नहीं कर रहा हूँ।

+0

आप किस उपनाम का उपयोग करते हैं? – lulyon

+0

वैसे यह वास्तव में एक समारोह है: फ़ंक्शन सीएल() {सीडी $ @; ls} –

+0

संभावित डुप्लिकेट: http://stackoverflow.com/a/415444/208997 – Simon

उत्तर

41

पूर्ण विवरण के लिए "bash (1)" से INVOCATION अनुभाग पढ़ें (यह बैश के लिए मैन पेज है; man bash का उपयोग करें)। लॉग इन करने पर आपका पहला खोल एक "लॉगिन खोल" है, जिसका अर्थ है कि .bashrc फ़ाइल को सोर्स नहीं किया गया है। आपका दूसरा आविष्कार एक इंटरैक्टिव खोल बनाता है, जहां .bashrc सोर्स किया जाता है।

आप हमेशा संसाधित अपने .bashrc फ़ाइल की सामग्री चाहते हैं, आप निम्नलिखित लाइनों अपने .bash_profile फाइल करने के लिए, उस फ़ाइल बनाने यदि वह पहले से नहीं है जोड़ सकते हैं मौजूद हैं:

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

प्रति अपने आदमी पेज, बैश "[...] उस क्रम में ~/.bash_profile, ~/.bash_login, और ~/.profile की तलाश में है, और जो पहले मौजूद है और पढ़ने योग्य है, से कमांड को पढ़ता है और निष्पादित करता है।" आपके स्थानीय सिस्टम के सम्मेलन और नीतियां निर्धारित करती हैं कि इनमें से कौन सी फाइलें पहले से मौजूद हैं।

सावधानी का एक शब्द है: के बारे में पता है एक नया .bash_profile अपने घर निर्देशिका में बनाने पढ़ने को रोकने और पहले से ही मौजूद एक .bash_login या .profile फ़ाइल में आदेशों की क्रियान्वित करने, आगे बाद के व्यवहार को बदलने के अनपेक्षित पक्ष प्रभाव हो सकता है हो सकता है प्रवेश नहीं हैं।

+4

और '~/.bash_login' फ़ाइल बनाएं यदि अभी तक –

+2

नहीं है या किसी भी बोर्न-संगत लॉगिन शैल के लिए '~/.profile' का उपयोग करें। (bash) – Qwerty

+1

@Qwerty: यदि आप अपने पर्यावरण को बनाए रखते हैं तो ~/.bash_profile और ~/.bash_login मौजूद नहीं हैं, ~/.profile कार्यों का उपयोग करते हुए। एक संस्करण 4.2 बैश मैन पेज से: "जब एक इंटरैक्टिव लॉगिन खोल के रूप में बैश को बुलाया जाता है, या --login विकल्प के साथ एक गैर-इंटरैक्टिव खोल के रूप में, यह फ़ाइल/etc/profile से कमांड को पढ़ता है और निष्पादित करता है, अगर वह फ़ाइल मौजूद है। उस फ़ाइल को पढ़ने के बाद, यह उस क्रम में ~/.bash_profile, ~/.bash_login, और ~ /profile की तलाश करता है, और मौजूद पहले से कमांड को पढ़ता है और निष्पादित करता है और पठनीय है। " – sjnarv

5

क्या आपने अपने ~/.profile, ~/.bash_login और ~/.bash_profile फ़ाइलों को देखा है?

+2

वे इस बिंदु पर कोई भी नहीं हैं –

+2

धन्यवाद, पूरी तरह से इसके बारे में भूल गए। उबंटू को धन्यवाद सामान स्थापित करने के लिए उपयोग नहीं किया जाता है। –

संबंधित मुद्दे