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
कॉन्फ़िगरेशन वहां रखे गए हैं। मुझे स्वीकार करना होगा, मैं विभिन्न प्रकार के गोले से परिचित नहीं हूं। आपके द्वारा पोस्ट किए गए लिंक को पढ़ने से, मैं अनुमान लगा रहा हूं कि मैं एक इंटरैक्टिव शेल का उपयोग करता हूं, लेकिन मैं आगे पढ़ने के लिए सुनिश्चित हो जाएगा ... फिर से धन्यवाद!