.Profile और .bash_profile के बीच अंतर क्या है और मेरे पास अपने सिस्टम पर .profile फ़ाइल क्यों नहीं है?


12

इसलिए मैं लिनक्स के लिए बहुत नया हूं और हाल ही में अपनी नेटबुक पर फेडोरा 19 स्थापित किया है। मैं लिनक्स और सीएलआई की गहरी समझ रखना चाहता हूं इसलिए अब मैं लिनक्स सीख रहा हूं : द हार्ड वे

अभ्यास 3 में लेखक निम्नलिखित आदेश देता है:

  • ls -al
  • बिल्ली

मैं इन निर्देशों का पालन करने की कोशिश करता हूं, लेकिन कोई फायदा नहीं हुआ। मेरे उपयोगकर्ता नाम निर्देशिका में कोई .profile फ़ाइल नहीं है जैसा कि मैं ls -al से देख सकता हूं। जो मैंने सीखा है ।bash_profile और .profile फ़ाइल व्यावहारिक रूप से समान हैं। एकमात्र अंतर जो मैंने अपने शोध से निष्कर्ष निकाला है वह है .bash_profile पहले जांचा जाता है।

मुझे समझ में नहीं आ रहा है कि लिनक्स में एक ही फ़ंक्शन के लिए कई फाइलें क्यों हैं, लेखक .profile का उपयोग क्यों कर रहा है और .bash_profile (यदि मैं सही ढंग से समझता हूं। सिस्टम को खोजने पर .profile पहले नहीं पढ़ा जाएगा) और कैसे आता है कि मेरे पास अपने सिस्टम पर .profile फ़ाइल नहीं है?


यह भी देखें unix.stackexchange.com/questions/45684/… जो आपके प्रश्न का हिस्सा है। इसके अलावा, unix.stackexchange.com/questions/67940/… कारणों में से एक है कि इन विभिन्न फ़ाइलों के कारण आप शायद अभी तक के साथ काम कर रहे हैं की तुलना में अधिक उन्नत सामान के लिए भ्रम पैदा कर सकते हैं।
msw

जवाबों:


13

.profileदिनांक के रूप में जाना मूल बॉर्न शैल को वापस sh। चूंकि जीएनयू शेल bash(इसके विकल्पों के आधार पर) बॉर्न शेल का एक सुपरसेट है, दोनों शेल एक ही स्टार्टअप फाइल का उपयोग कर सकते हैं। यही है, बशर्ते कि केवल shआदेशों को रखा जाए.profile

उदाहरण के लिए, aliasएक मान्य अंतर्निहित कमांड है, bashलेकिन इसके लिए अज्ञात है sh। इसलिए, यदि .profileआपके घर निर्देशिका में केवल एक था और उसमें एक aliasबयान दिया था, shतो शिकायत करेंगे। तो एक bash विशिष्ट फ़ाइल है जिसमें शेल आरंभीकरण कमांड है जो bash पढ़ेगा यदि और केवल अगर कोई .profileफ़ाइल मौजूद नहीं है ।

वास्तव में यह कुछ प्रतिष्ठानों में एक ओवरसिम्प्लीफिकेशन है, और मैं फेडोरा से परिचित नहीं हूं। बैश के तहत, /etc/profileआपके घर निर्देशिका में किसी भी फाइल से पहले शेल द्वारा पढ़ा जाता है। अगर कोई सिस्टम वाइड इनिशियलाइज़ेशन स्क्रिप्ट है तो यह अक्सर कुछ कहता है

if there is a $HOME/.profile:
   source it
elseif bash is my shell and there is a $HOME/.bash_profile:
   source that

ऐसा क्यों है? दशकों की शैल बोलियों में अनुकूलता का प्रयास। इस तरह से ट्यूटोरियल क्यों लिखा जाता है? बॉर्न शेल का अक्सर उपयोग नहीं किया जाता है और कुछ लोग यह भी नहीं जानते हैं कि बैश की तुलना में कोई अन्य बॉर्न जैसा शेल है। यहां तक ​​कि जब (सीमित) बॉर्न सिंटैक्स का उपयोग क्रॉस-प्लेटफॉर्म संगतता के लिए किया जाता है, तो इसे अक्सर dashपॉसिक्स मोड में चलाया जाता है। वास्तव में, वास्तविक बॉर्न शेल स्रोत शायद यूनिक्स सिस्टम V का कॉपीराइट घटक है जो अब नोवेल की संपत्ति प्रतीत होता है, लेकिन मुझे नहीं पता कि क्या, अगर कुछ भी, वे इसके साथ कर रहे हैं।

शुरुआत उपयोगकर्ता, उपयोग के लिए या तो $HOME/.profileया $HOME/.bash_profileनहीं बल्कि दोनों और तुम ठीक हो जाओगे। चूंकि आपके पास पहले से ही एक .bash_profileकाम है, क्योंकि इसमें सिस्टम विशिष्ट सामान हो सकता है जो आपके इंस्टॉलेशन की आवश्यकता है।


धन्यवाद! मुझे लगता है कि मैं इसे अब थोड़ा बेहतर समझता हूं, फिर भी मुझे लगता है कि बहुत कुछ सीखना है।
एमिरो

बहुत कुछ ऐतिहासिक कबाड़ है जिसे आपको वास्तव में जानने की आवश्यकता नहीं है; मेरे उत्तर के अंतिम पैराग्राफ पर ध्यान केंद्रित करें। इसके अलावा, जब से आप यहां नए हैं, आप उत्तोलन कर सकते हैं और एक उत्तर को स्वीकार कर सकते हैं जो यहां धन्यवाद के दौर का सर्वोच्च रूप है।
msw

हां, मैंने पहले ही आपका जवाब स्वीकार कर लिया। मुझे उम्मीद नहीं थी कि कोई इसमें इतना प्रयास कर सकता है इसलिए मैं बहुत आभारी हूं। मैंने आपके उत्तर को स्वीकार कर लिया, लेकिन मैं इसे बढ़ा नहीं सकता क्योंकि इसके लिए १५ प्रतिष्ठा की आवश्यकता है और मेरे पास केवल I हैं। इसके लिए खेद है!
एमेरोए

मैं 15 प्रतिनिधि सीमा के बारे में भूल गया; आप सही हैं।
msw

4
इतिहास बोनस # 1 : असली बॉर्न शेल अंततः कैद से बच गया। minnie.tuhs.org के पास V7 (बॉर्न शेल के साथ पहला यूनिक्स रिलीज़) का पूर्ण स्रोत कोड है, और heirloom.sourceforge.net में बॉर्न शेल का थोड़ा और हालिया संस्करण है जो अभी भी वास्तव में उपयोग करने योग्य है। इतिहास बोनस # 2 : aliasपोसिक्स द्वारा आवश्यक है, इसलिए इसके shआस-पास बहुत से ऐसे नहीं हैं जो इसके बारे में नहीं जानते हैं।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.