कैसे बनाएं ~ / .bash_profile और ~ / .profile


25

तो, मेरे पास नहीं है .bash_profile.profileअपने घर फ़ोल्डर में। मैं उन्हें कैसे बनाऊँ? उसके बाद, हर बार जब मैं इन फाइलों को पढ़ने के लिए टर्मिनल खोलता हूं तो मुझे क्या करना चाहिए?

जवाबों:


28

आप touchकमांड का उपयोग कर सकते हैं ।

उदाहरण के लिए,

cd ~

घर निर्देशिका में जाने के लिए।

अब हम एक फाइल बनाएंगे, जिसका नाम होगा .bash_profile(डॉट का मतलब है कि यह छिपा हुआ होगा)।

तब का उपयोग nanoया viटर्मिनल में। जब तक आप नहीं जानते कि क्या viहै, बस उपयोग करें nano। इन फ़ाइलों को खोलने के लिए, आप उपयोग करेंगे:

sudo nano .bash_profile

sudoयह सुनिश्चित करता है कि आप इन फ़ाइलों को सहेजने में सक्षम होंगे। यहां, आप जोड़ सकते हैं aliasesnanoया viटर्मिनल में आपकी वर्तमान निर्देशिका में मौजूद नहीं होने पर स्वचालित रूप से एक नई फ़ाइल बनाएगा।

के बाद आप समाप्त कर लें, प्रेस Ctrl+ O, Enterऔर Ctrl+ Xबचाने के लिए और बाहर निकलने के लिए। अंत में, उपयोग करें

source ~/.bash_profile

टर्मिनल को फिर से लोड करने के लिए और यह पढ़ेगा कि आपने उन फाइलों में क्या डाला है।

बेशक, आप भी चाहते हैं कि उर्फ ​​कर सकते हैं। :)

आपके अंतिम प्रश्न का उत्तर देने के लिए, ये फाइलें हर बार जब आप टर्मिनल खोलती हैं तो स्वचालित रूप से पढ़ी जाएंगी। हालाँकि, यदि कोई त्रुटि है (उदाहरण के लिए, उपनामों के बीच रिक्त स्थान न रखें), तो यह आपको बताएगा।

अधिक जानकारी

जैसा कि जॉर्ज ने बताया, .bash_profileकेवल लॉगिन गोले पर चलेंगे। गैर-लॉगिन शेल के लिए, आपको एक .bashrcफ़ाइल बनानी होगी :

    sudo nano .bashrc

लिंक

.bash_profile बनाम .bashrc

.Bashrc का महत्व


5
आप touchपहले खाली फाइल बनाने के लिए उपयोग क्यों कर रहे हैं ? nanoयह वैसे भी स्वचालित रूप से करता है।
nohillside

5
इसके अलावा, आप शायद दोनों ~ / .profile और ~ / .bash_profile नहीं चाहते हैं - अगर bash देखता है .bash_profile, यह .profile के साथ परेशान नहीं करता है। अंत में, यह केवल "लॉगिन" गोले के लिए चलाया जाएगा; इसके बजाय nonlogin के गोले ~ / .bashrc चलाते हैं। पिछले SO प्रश्न यहाँ और यहाँ देखें
गॉर्डन डेविसन

@GordonDavisson की ~/.profileप्रति के रूप में होना अच्छा है ~/.bash_profile? और अगर आपके पास दोनों हैं, तो आपके पास क्या है जो अंदर ~/.profileनहीं किया जा सकता है ~/.bash_profile?
थीई।

2
@ThiG: मैं एक दूसरे की नकल नहीं होगा; आप एक से कुछ जोड़ने की संभावना रखते हैं, इसे दूसरे से जोड़ना भूल जाते हैं, और भ्रमित हो जाते हैं। सबसे अच्छा अभ्यास पर विचार करने के लिए इस SO प्रश्न पर मेरी सिफारिशें देखें ।
गॉर्डन डेविसन

sudoयह सुनिश्चित करता है कि आप उपयोगकर्ता अधिकारों को गड़बड़ कर रहे हैं। ऐसा मत करो।
मैक्स ने

2

आप उन फ़ाइलों को / etc / skel / से कॉपी कर सकते हैं जो नए उपयोगकर्ताओं के लिए कंकाल की फाइलें हैं जो डेबियन आधारित डिस्ट्रोस पर useradd जैसी कमांड द्वारा बनाई गई हैं:

cp -nr /etc/skel/. ~/

आपके द्वारा लॉग इन करने पर हर बार शेल द्वारा ये फाइलें अपने आप लोड हो जाएंगी। उन प्रोफाइल फाइलों को लोड करने का तरीका आपके शेल मैनुअल पेज का वर्णन करता है। यदि आप विशेष तरीके से बैश शेल का उपयोग करते हैं (जैसे, ssh, ansible, आदि के माध्यम से ...) तो आपको 'bash -ilc' कमांड का उपयोग करना चाहिए जिसे आप उन प्रोफाइल फाइलों द्वारा तैयार किए गए ENV में निष्पादित करना चाहते हैं। '' -आई का मतलब है इंटरेक्टिव शेल जो अक्सर .bashrc -l लॉगिन शेल के लिए आवश्यक होता है। जिसके कारण लोड होने की संभावना होती है (या .bash_profile मौजूद है - बैश का मैनुअल पेज देखें) जो तब लोड होता है।।


0

मैं GUBE टेक्स्ट संपादकों जैसे BBEdit या TextWrangler का उपयोग करना पसंद करता हूं। ये टेक्स्ट एडिटर्स इनफ़ॉर्मल फाइल्स जैसे .profile और .bash_profile को हैंडल कर सकते हैं और उन्हें नैनो इंटरफ़ेस के विपरीत GUI इंटरफ़ेस होने का फ़ायदा होता है, जो कि एक कंसोल इंटरफ़ेस है।

TextWrangler

BBEdit


0

तुम भी TextEdit की तरह एक जीयूआई पाठ संपादक का उपयोग कर सकते हैं:

touch ~/.bash_profile
open -e ~/.bash_profile

open -eके लिए एक शॉर्टकट है open -a TextEdit

जरूरी नहीं कि आप .profile या .bashrc बनाएं। टर्मिनल और iTerm 2 लॉगिन गोले के रूप में नए गोले खोलते हैं, इसलिए बैश पढ़ा नहीं जाता है। यदि दोनों .bash_profile और .profile मौजूद हैं, तो bash केवल .bash_profile पढ़ता है जब इसे एक इंटरेक्टिव लॉगिन शेल के रूप में लागू किया जाता है। .profile ksh द्वारा पढ़ा जाता है जब इसे एक इंटरैक्टिव लॉगिन शेल के रूप में लगाया जाता है और जब इसे एक इंटरैक्टिव लॉगिन शेल के रूप में sh के रूप में लागू किया जाता है तो bash द्वारा।

मैंने वास्तव में iTerm 2 को गैर-खोल गोले के रूप में नए गोले खोलने के लिए कहा है, और मेरे .bash_profile में बस एक पंक्ति शामिल है . ~/.bashrc। tmux और emacs में शेल मोड, डिफ़ॉल्ट रूप से गैर-लॉगिन शेल के रूप में नए शेल खोलते हैं। .bash_profile तब भी पढ़ा जाता है जब मैं अपने कंप्यूटर पर ssh करता हूं।


मुझे देखने दो कि क्या मुझे वह मिल गया है ... तुम दोनों ~/.bash_profileऔर ~/.profile? और आपके पास भी है ~/.bashrc?
थि जी।

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