tl; डॉस वर्जन: उपयोग ~/.zshrc
और बीच के अंतर को समझने के लिए मैन पेज पढ़ें :
~/.zshrc, ~/.zshenvऔर ~/.zprofile।
मेरी टिप्पणी के बारे में
उत्तर केव से जुड़ी मेरी टिप्पणी में , मैंने कहा:
यह गलत प्रतीत होता है - / / / प्रोफाइल किसी भी zsh प्रलेखन में सूचीबद्ध नहीं है जो मैं पा सकता हूं।
यह आंशिक रूप से गलत हो जाता है: द्वारा खट्टा किया /etc/profile जा सकता है zsh। हालाँकि , यह केवल तब होता है जब zsh"के रूप में लागू किया जाता है shया ksh"; इन संगतता मोड में:
सामान्य zsh स्टार्टअप / शटडाउन स्क्रिप्ट निष्पादित नहीं की जाती हैं। लॉगिन गोले स्रोत / आदि / प्रोफाइल $ HOME / .profile द्वारा पीछा किया। यदि ENV पर्यावरण चर को मंगलाचरण पर सेट किया जाता है, तो प्रोफ़ाइल स्क्रिप्ट के बाद $ ENV को स्रोत बनाया जाता है। ENV का मान एक पैमाना के रूप में व्याख्या किए जाने से पहले पैरामीटर विस्तार, कमांड प्रतिस्थापन और अंकगणितीय विस्तार के अधीन है। [ मैन जश, "कम्पेटिबिलिटी" ]।
ArchWiki ZSH लिंक का कहना है:
लॉगिन पर, Zsh इस क्रम में निम्नलिखित फाइलों का स्रोत:
/ etc / प्रोफाइल
यह फ़ाइल लॉगिन पर सभी बॉर्न-संगत गोले द्वारा sourced है।
यह implys कि /etc/profileहै हमेशा पढ़ने के द्वारा zshप्रवेश पर - मैं आर्क लिनक्स परियोजना के साथ किसी भी अनुभव नहीं मिला है; विकी उस वितरण के लिए सही हो सकता है, लेकिन यह आम तौर पर सही नहीं है। जानकारी zsh मैनुअल पृष्ठों की तुलना में गलत है, और OS X पर zsh पर लागू नहीं होती है ( $PATHसेट में पथ /etc/profileमेरे zsh सत्रों के लिए इसे नहीं बनाते हैं)।
प्रश्न का समाधान करने के लिए:
मुझे वास्तव में अपने $ PATH के लिए अपना आरवीएम, अजगर, नोड आदि कहां रखना चाहिए?
आम तौर पर, मैं अपने निर्यात होगा $PATHसे ~/.zshrcहै, लेकिन यह की कीमत का एक पढ़ा होने zshall आदमी पेज, विशेष रूप से "स्टार्टअप / बंद फ़ाइलें" खंड - ~/.zshrcके लिए पढ़ने के लिए है इंटरैक्टिव गोले, जो या आपकी आवश्यकताओं के अनुरूप नहीं हो सकता है - अगर आप चाहते हैं $PATHके लिए zshआपके द्वारा आहूत किया गया प्रत्येक शेल (दोनों interactiveऔर नहीं, दोनों loginऔर नहीं, आदि), तो ~/.zshenvएक बेहतर विकल्प है।
क्या कोई विशिष्ट फ़ाइल है जिसका मैं उपयोग कर रहा हूं (यानी .zshenv जो वर्तमान में मेरे इंस्टॉलेशन में मौजूद नहीं है), उनमें से एक जिसे मैं वर्तमान में उपयोग कर रहा हूं, या क्या यह भी मायने रखता है?
स्टार्टअप पर पढ़ी गई फ़ाइलों का एक गुच्छा है (लिंक किए गए manपृष्ठों की जांच करें ), और उसके लिए एक कारण है - प्रत्येक फ़ाइल में यह विशेष स्थान है (प्रत्येक उपयोगकर्ता के लिए सेटिंग्स, उपयोगकर्ता-विशिष्ट के लिए सेटिंग्स, लॉगिन गोले के लिए सेटिंग्स, हर शेल के लिए सेटिंग्स,) आदि)। मौजूदा के
बारे में चिंता न करें ~/.zshenv- यदि आपको इसकी आवश्यकता है, तो इसे बनाएं, और इसे पढ़ा जाएगा।
.bashrcऔर .bash_profileकर रहे हैं नहीं द्वारा पढ़ा zsh, जब तक आप स्पष्ट रूप से उन्हें स्रोत ~/.zshrcया इसी तरह की; के बीच वाक्य रचना bashऔर zshहै नहीं हमेशा संगत। दोनों .bashrcऔर .bash_profileके लिए तैयार कर रहे हैं bashसेटिंग्स, नहीं zshसेटिंग्स।
.bashrcऔर.bash_profileके द्वारा पढ़ा नहीं कर रहे हैंzshके रूप में मैं वर्तमान में मेरे हैrvmके अलावा$PATHमें.bashrc, और मेरेpythonमें इसके अलावा.bash_profile, और दोनों ठीक जोड़े जा रहे हैं। किसी भी मामले में, मैं अपने सभी$PATHनिर्यातों को स्थानांतरित करने जा रहा हूं~/.zshrcक्योंकि मेरे सभी अन्यzshकॉन्फ़िगरेशन वहां रखे गए हैं। मुझे स्वीकार करना होगा, मैं विभिन्न प्रकार के गोले से परिचित नहीं हूं। आपके द्वारा पोस्ट किए गए लिंक को पढ़ने से, मैं अनुमान लगा रहा हूं कि मैं एक इंटरैक्टिव शेल का उपयोग करता हूं, लेकिन मैं आगे पढ़ने के लिए सुनिश्चित हो जाएगा ... फिर से धन्यवाद!