हर बार जब मैं एलियास के लिए काम करने के लिए टर्मिनल खोलता हूं, तो मुझे स्रोत .bashrc क्यों करना चाहिए? [डुप्लिकेट]


25

मैंने इस लाइन को अपनी ~/.bashrcफ़ाइल में जोड़ा ।

alias myserver='ssh davidfaux@davidfaux.com'

हालांकि, जब मैं टर्मिनल खोलता हूं और चलाता हूं myserver, तो टर्मिनल शिकायत करता है

-bash: myserver: command not found

जब मैं अपने .bashrc फ़ाइल को स्रोत करता हूं, हालांकि, ( . .bashrc), उपनाम काम करता है।

फिर भी, मैं हर बार काम करने के लिए उपनाम खोलने के लिए फ़ाइल को स्रोत नहीं बनाना चाहता। मैं ऐसा कैसे कर सकता हूं?


3
यह टिप्पणी इसका कारण बताती है। यह प्रश्न आपको बताता है कि इसे कैसे ठीक किया जाए।
उघौवगफह

आपका बहुत बहुत धन्यवाद! मुझे नहीं पता था कि शेल शुरू करने से क्रम में उन फ़ाइलों को निष्पादित किया जाता है। दरअसल, कार्यों . .bashrcमें जोड़ना .bash_profile
डेविड फॉक्स

@ughoavgfhw क्या आपको अपनी टिप्पणी को उत्तर में बदलना चाहिए? इस तरह इसे एक उत्तर के रूप में चिह्नित किया जा सकता है।
soxman

जवाबों:


25

संक्षेप में, आप अपने उपनामों को गलत फ़ाइल में डाल रहे हैं .bashrc, यही कारण है कि आपको उपनामों को किसी भी नए लॉगिन टर्मिनल इंस्टेंसेस में काम करने के लिए चालू रखने की आवश्यकता है।

क्रिस जॉन्सन की टिप्पणी पर .bashrc स्वचालित रूप से क्यों नहीं चलता है?

डिफ़ॉल्ट रूप से, टर्मिनल शेल को usr / बिन / लॉगिन के माध्यम से शुरू करता है, जो शेल को एक लॉगिन शेल बनाता है। हर प्लेटफ़ॉर्म पर (न केवल मैक ओएस एक्स) बैश का उपयोग नहीं किया जाता है। लॉगिन गोले (केवल / आदि / प्रोफ़ाइल और पहले .bash_profile, .bash_login, .profile जो मौजूद है और पढ़ने योग्य है) के लिए। यही कारण है कि "अपने .bash_profile में" स्रोत ~ /।

अधिक जानकारी के लिए, इसके लिए मैनुअल पेज देखें bash:

man bash

इसके बाद INVOCATION सेक्शन को देखें।


क्या मुझे काम करने के लिए रीबूट करने की आवश्यकता है? क्योंकि मैंने source ~/.bashrcअपने .bash_profile में जोड़ा , लेकिन मैं अभी भी उसी मुद्दे का सामना कर रहा हूँ ...
मिचेल

1
अधिकांश मामलों में कोई परिवर्तन करने के लिए आपको नई टर्मिनल विंडो खोलने की आवश्यकता नहीं है, परिवर्तन केवल नई खुली विंडो में प्रभावी होंगे।
मृणाल

11

आप हमेशा लगा सकते हैं

if [ -n "$BASH_VERSION" ] && [ -f $HOME/.bashrc ];then
    source $HOME/.bashrc
fi

फ़ाइल में ~/.profileया ~/.bash_profileमैक पर मुझे लगता है।

Oooor, तुम बस में अपना सामान डाल सकता है .profileया .bash_profile


यह दूसरे जवाब में नोट किया गया है - आप इन चीजों के बारे में अनिश्चित क्यों हैं?
user151019

कृपया इसे इसी तरह का प्रश्न पढ़ें: apple.stackexchange.com/q/12993/22003 और इसमें कोई सुधार जोड़ें।
डेन

@danielAzuelos रुको; क्या आप चाहते हैं कि मैं दूसरे पृष्ठ पर टिप्पणी करूं या अन्य प्रश्न के आधार पर अपना उत्तर अपडेट करूं?
डायलन

@ मर्क मैं बहुत ही काल्पनिक अर्थों में सोच रहा था - जैसे कि क्या किसी की टर्मिनल प्रक्रिया स्रोत को नहीं जानती है। उनका टर्मिनल शायद पहली जगह में शुरू नहीं होगा, लेकिन यह अभी भी संभव है .... जैसे कि कोई उनके / usr / बिन / लॉगिन या कुछ पर चारों ओर से हैक कर रहा था।
दिलेर

→ डायलन: कृपया इसे इसी तरह का प्रश्न पढ़ें: apple.stackexchange.com/q/12993/22003 और आपको अपने "शायद?" का उत्तर मिल जाएगा।
डेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.