मेरे घर की निर्देशिका में कोई भी bashrc फ़ाइल नहीं


14

यहाँ मैं अपने व्याख्यान से नीचे उल्लेख किया है:

  • .bashrcअपने घर निर्देशिका में फ़ाइल का पता लगाएं
  • करना vi .bashrc
  • जब आप कहीं एक एप्लिकेशन फ़ोल्डर डालते हैं, तो सुनिश्चित करें कि इसका पता पथ चर में है।

समस्या यह है कि मेरे पास .bashrcमेरे घर निर्देशिका में एक फ़ाइल नहीं है । .bash_historyमेरे घर में केवल एक फाइल है।

अगर मैं रूट पर जाता हूं, तो वहां एक etc/bash.bashrcफाइल होती है, लेकिन मुझे लगता है कि यह सभी उपयोगकर्ताओं के लिए बदलाव है और न केवल मेरे लिए। मैं इस रास्ते को सिर्फ अपने लिए जोड़ना चाहता हूं। यह दूसरों को प्रभावित नहीं करना चाहिए। इसके अलावा $PATHउस bashrc फ़ाइल में कोई चर नहीं है इसलिए मैं और भी भ्रमित हूं।

जवाबों:


20

यह मत भूलो कि यह आपके घर निर्देशिका के अंदर एक छिपी हुई फ़ाइल है (आप ऐसा करने वाले पहले नहीं होंगे ls -lऔर यह सोचकर ऐसा नहीं करेंगे)।

निम्नलिखित करें ...

ls -la ~/ | more

.bashrcपहले पृष्ठ पर होना चाहिए । अगर नहीं बस के साथ बनाएँ

vi ~/.bashrc

और बस इसमें निम्नलिखित लाइन लिखिए।

PATH=$PATH:~/bin

या अधिकांश वितरण एक मानक .bashrcफ़ाइल रखते हैं जो /etc/skel/आप इसे होम निर्देशिका में कॉपी कर सकते हैं।

$cp /etc/skel/.bashrc ~

ठीक है, मैं अभी मिलता हूं अन्य कंप्यूटरों पर, मैं लेगो टाइप कर सकता हूं और सॉफ्टवेयर शुरू होता है। मेरे सिस्टम पर, लेगो फ़ोल्डर मेरे ~/data/user1/binफ़ोल्डर में है। मैंने .bashrc फ़ाइल में यह पथ जोड़ दिया है। अब मुझे क्या करना है ताकि जब मैं लेगो टाइप करूं, तो उसे सॉफ्टवेयर शुरू करना चाहिए? क्या मुझे एक उपनाम स्थापित करना है? यदि हाँ, तो कैसे? alias lego='<What do i put here???>'

@detraveller क्या आपने फ़ाइल ~/data/user1/binमें अपने PATH पर्यावरण चर में जोड़ा है .bashrc? (इस पंक्ति को जोड़ें:) export PATH=$PATH:~/data/user1/bin- यदि हां, तो आपको legoटर्मिनल में सिर्फ टाइप करने में सक्षम होना चाहिए , और कार्यक्रम शुरू होना चाहिए।
एसीड

मैंने ही जोड़ा PATH=$PATH:~/data/user1/bin। आपने निर्यात का उल्लेख नहीं किया इसलिए मैंने इसे वहां नहीं रखा। मैं कल फिर कोशिश करूंगा जब मैं यूनी जाऊंगा।
डेट्रेलर

लेकिन मैं सोच रहा था कि मैं कैसे बता सकता हूँ legoकि सॉफ्टवेयर शुरू करने वाला शब्द है?
डेट्राइवलर

11

अधिकांश वितरण आपके पास एक मानक .bashrcफ़ाइल रखते हैं जो /etc/skel/आपके होम डायर को कॉपी कर सकते हैं। अन्यथा आप बस .bashrcअपने घर में एक नई खाली फ़ाइल बना सकते हैं।


4

इंटरएक्टिव गोले के लिए अपनी खुद की स्टार्टअप फ़ाइल बनाएँ

बैश स्टार्टअप फाइल्स के बारे में

के चालान अनुभाग से man 1 bashकहते हैं:

जब एक इंटरेक्टिव शेल जो लॉगिन शेल नहीं है, तो bash पढ़ता है और /etc/bash.bashrc और ~ / .bashrc से कमांड निष्पादित करता है, अगर ये फाइलें मौजूद हैं।

ध्यान दें कि ये स्टार्टअप फाइलें वैकल्पिक हैं ; बैश की उन्हें आवश्यकता नहीं है। बैश भी लॉगिन गोले और इंटरैक्टिव गोले के बीच अंतर करता है। एक इंटरेक्टिव शेल इस प्रकार परिभाषित किया गया है:

एक इंटरेक्टिव शेल एक गैर-विकल्प तर्क के बिना शुरू किया गया है और -सी विकल्प के बिना जिसका मानक इनपुट और त्रुटि दोनों टर्मिनलों से जुड़ा हुआ है (जैसा कि आइसटी (3) द्वारा निर्धारित किया गया है), या एक -i विकल्प से शुरू हुआ।

कई वितरण दूसरे से एक प्रकार की स्टार्टअप फ़ाइल का स्रोत बनाते हैं, लेकिन कुछ ऐसा नहीं करते हैं, इसलिए इस मुद्दे को कैनोनिक रूप से संबोधित करना मुश्किल हो सकता है। आपको अपने सिस्टम ~/.bashrcपर कैसे और कब लागू किया जाएगा, यह देखने के लिए अपनी सभी स्टार्टअप फ़ाइलों की जांच करने की आवश्यकता है।

आपका प्रति उपयोगकर्ता इंटरएक्टिव शैल स्टार्टअप फ़ाइल बनाना

यदि आप किसी उपयोगकर्ता-विशिष्ट ~/.bashrcफ़ाइल को केवल याद कर रहे हैं , तो बस एक बनाएं। यह बैश द्वारा गैर-लॉगिन शेल (जैसे बिना --loginझंडे के शुरू किए गए गोले ) के लिए मंगाया जाएगा, या जब भी आप -iझंडे को खोलकर इसे संवादात्मक होने के लिए मजबूर करेंगे ।


0

यदि आपके पास नहीं है .bashrc, तो आप बस एक बना सकते हैं और अपनी इच्छा के अनुसार लाइनें जोड़ सकते हैं, जैसे:

PATH=$PATH:~/bin

पथ के अंत में अपनी उपयोगकर्ता बिन निर्देशिका जोड़ने के लिए।

लेकिन अन्य स्टार्टअप फाइलें होने पर आपको सावधान रहना चाहिए । फ़ाइलों का उपयोग करने के लिए नियम बल्कि जटिल हैं, लेकिन वे bashमैन पेज में विस्तृत हैं । man bashएक कमांड लाइन पर प्रवेश करें और देखें INVOCATION


0

छोटे जवाब:

  1. find ~ -maxdepth 1 -name '.bashrc'
  2. vi ~/.bashrc
  3. echo $PATH | grep ~/MyNewCoolProgramFolder

विस्तृत एक:
मैं एक अधिक करीबी शाब्दिक व्याख्या लेता हूं।

  1. "अपने घर निर्देशिका में फ़ाइल .bashrc खोजें"
    चूंकि यह कमांड मौजूद हैfind, शायद विश्वासघाती संपादक आपको उपयोग करने का सुझाव देगा:

    find ~ -maxdepth 1 -name '.bashrc'

    होम निर्देशिका में खोजें ~, केवल एक स्तर (कोई उप-वर्ग -maxdepth 1) के नीचे न उतरें । सभी विकल्पों के लिए लिखें man find
    नीचे दी गई लाइन न्यूनतम कार्य करेगी

    ls ~/.bashrc   

    नोट: यदि आप~/.bashrc मौजूद नहीं हैं, तो आप इसे एक साधारण से बना सकते हैंecho >> ~/.bashrc

    >>मौजूद नहीं करता है, तो फ़ाइल का निर्माण करेगा। यदि ~/.bashrcइसके बजाय यह मौजूद है, तो यह केवल खाली के हानिरहित उत्पादन को जोड़ देगा echo, एक अनजाने में विलोपन से बचने के लिए ऐसी महत्वपूर्ण फ़ाइल, जो बिना बैकअप के पुनर्स्थापित करना मुश्किल है।

    (निम्नलिखित इसलिए है क्योंकि शायद ही कभी मुझे अपने उपनाम के अर्थ का सम्मान करना पड़े, यदि आप संदेह में हैं तो निष्पादित न करें)।

    if [ ! -f ~/.bashrc ] ; 
      then
         cp -i /etc/skel/.bashrc ~/.bashrc ;
      else ls -la ~/.bashrc; 
    fi || echo " # Auto Generated " >> ~/.bashrc
  2. "करो vi .bashrc"
    अब आप कर सकते हैंvi ~/.bashrc, यहां जाल यह है कि आपको प्रेस करने:औरqबाहर निकलने की आवश्यकता है!

  3. एप्लिकेशन फ़ोल्डर और$PATH
    जब आप एक एप्लिकेशन फ़ोल्डर बनाते हैं, उदाहरण के लिए~/MyNewCoolProgramFolder, नीचे की रेखा केवल तभी जांच करेगी कि यह इसमें है$PATH:

    echo $PATH | grep ~/MyNewCoolProgramFolder

    यदि पहले से ही है तो आपको जोड़ने की आवश्यकता नहीं है। यदि आवश्यक हो तो आप के $PATHसाथ जोड़ सकते हैं

    PATH=$PATH:~/MyNewCoolProgramFolder

    और ~/.bashrcयदि आप इसे स्थायी बनाना चाहते हैं तो उस पंक्ति को जोड़ दें।

  4. "4?!? कैसे 4 अगर केवल 3 अंक थे?" - वर्कअराउंड।
    उत्तरार्द्ध के लिए कुछ वर्कअराउंड हैं; मान लीजिए कि एक निष्पादन योग्य फ़ाइल नामCoolDetravellerहै जो केवल आपके नए एप्लिकेशन फ़ोल्डर में मौजूद है:

    (a) आप इसे निष्पादित करने का प्रयास कर सकते हैं। बस यह शुरू नहीं होगा अगर यह अंदर नहीं है $PATH

    CoolDetraveller: कमांड नहीं मिला

    (b) आप इसके पूर्ण होने की कोशिश कर सकते हैं । लिखना शुरू करें CoolDetravelleऔर दबाएं Tab। यदि यह इसमें है $PATHतो ऑटो पूर्ण हो जाएगा (हमेशा यदि ऑटो पूर्ण सक्षम है)।

    (c) whichयदि आप कमांड लिखते हैं तो आप bash शेल कमांड का उपयोग कर सकते हैं CoolDetraveller

        which CoolDetraveller

    नोट: वहाँ है आपके आवेदन रास्ते में तो एक या अधिक रिक्त स्थान, whichखोजने में असमर्थ हो सकता है CoolDetraveller, हालांकि (यहाँ मैं अपने उपनाम फिर से सम्मान) स्वत: पूर्ण के CoolDetravellerरूप में की एक मान्य पैरामीटर whichकमांड काम करेंगे!

    Ad nauseam : आपwhereis CoolDetravellerइसलिएनहीं पूछ सकतेwhereis

    एक कठिन कोडित मार्ग है, इसलिए हमेशा वह नहीं खोज सकते जो आप खोज रहे हैं

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