पथ /etc/paths
और /etc/paths.d/*
आमतौर पर path_helperPATH
द्वारा जोड़े जाते हैं । path_helper
से चलाया जाता है /etc/profile
, इसलिए इसे तब चलाया जाता है जब बैश को एक इंटरेक्टिव लॉगिन शेल के रूप में आमंत्रित किया जाता है, लेकिन तब नहीं जब बैश को एक गैर-लॉगिन शेल या एक गैर-इंटरैक्टिव शेल के रूप में आमंत्रित किया जाता है।
/etc/paths
शामिल /usr/local/bin
डिफ़ॉल्ट रूप से अंत में, और /etc/paths.d/
डिफ़ॉल्ट रूप से खाली है।
टर्मिनल और iTerm 2 डिफ़ॉल्ट रूप से लॉगिन गोले के रूप में नए गोले खोलते हैं, और खोल दिया जब आप अपने कंप्यूटर के लिए ssh भी एक लॉगिन खोल है। अन्य प्लेटफार्मों पर कई टर्मिनल एमुलेटर tmux
, और Emacs में शेल मोड नए शेल खोलते हैं, हालांकि गैर-लॉगिन शेल।
मैंने इस पंक्ति को इसमें जोड़ा है /etc/launchd.conf
:
setenv PATH ~/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/libexec:/usr/texbin
यह PATH
रूट लॉन्च प्रक्रिया के मूल्य को बदलता है। मूल्य प्रति उपयोगकर्ता लॉन्च प्रक्रिया सहित अन्य सभी प्रक्रियाओं द्वारा विरासत में मिला है। आप /etc/launchd.conf
फिर से शुरू करके, या launchctl < /etc/launchd.conf; sudo launchctl < /etc/launchd.conf
प्रक्रियाओं को चलाकर और पुन: लॉन्च करके परिवर्तन लागू कर सकते हैं।
OS X पर, ~/.profile
जब आप ग्राफ़िकल रूप से लॉग इन करते हैं तो पढ़ा नहीं जाता है। यदि दोनों ~/.bash_profile
और ~/.profile
मौजूद हैं, तो बैश ~/.profile
या तो नहीं पढ़ता है ।
~/.MacOSX/environment.plist
10.8 में काम करना बंद कर दिया।
/etc/profile
मुख्य रूप से बैश द्वारा उपयोग की जाने वाली स्क्रिप्ट है? मेरे पास अन्य गोले के साथ अनुभव नहीं है, लेकिन मुझे लगता है कि वे एक अलग संरचना का पालन करते हैं?