2012-12-20 11 views
13

पर .profile में निर्यात पथ। मुझे विश्वास नहीं है कि googling के बाद इसके बारे में कोई ट्यूटोरियल नहीं है। क्या कोई मुझे एक दिशा बता सकता है या समझा सकता है कि मैक पर प्रोफाइल में इन पंक्तियों और चर का क्या मतलब है? कोई उन्हें कैसे कॉन्फ़िगर कर सकता है?मैक

export PATH=/opt/local/bin:/opt/local/sbin:$PATH 
# Finished adapting your PATH environment variable for use with MacPorts. 
#export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH" 
export PATH=$PATH:/usr/local/mysql/bin 
#export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH" 
#export PATH=/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php5/bin:/Applications/MAMP/htdocs/cake/cake/console:/opt/local/bin:/opt/local/sbin:$PATH 
export PATH=/android-sdks/platform-tools:~/android-sdks/tools:$PATH 
export PATH=/Users/android-sdks/platform-tools:/Users/android-sdks/tools:$PATH 

उत्तर

36

किसी भीके साथ शुरू लाइन के लिए /foo संलग्न कर देता हैएक टिप्पणी है। PATH=PATH वैरिएबल का मान सेट करता है, $ PATH वर्तमान मूल्य तक फैलता है, और export शुरुआत में टर्मिनल से चलने वाले प्रोग्रामों के लिए मूल्य उपलब्ध कराता है।

मान लीजिए कि पीएटीएच का प्रारंभिक मूल्य /usr/bin:/bin है।

export PATH=/opt/local/bin:/opt/local/sbin:$PATH 

$ पथ के पिछले मूल्य के साथ $PATH बदलें। तो ऊपर सेट PATH

/opt/local/bin:/opt/local/sbin:/usr/bin:/bin 

फिर आगे चल कर,

export PATH=$PATH:/usr/local/mysql/bin 

करने के लिए, पिछले मान के साथ $ पथ बदल देते हैं:

/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/local/mysql/bin 

बाद

export PATH=/android-sdks/platform-tools:~/android-sdks/tools:$PATH 

हमारे पास

/android-sdks/platform-tools:~/android-sdks/tools:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/local/mysql/bin 

और अंत में (~ एक विशेष टोकन कि आपकी होम निर्देशिका के लिए पथ से बदल दिया जाएगा है, लेकिन आप चित्र प्राप्त होगा।), के बाद

export PATH=/Users/android-sdks/platform-tools:/Users/android-sdks/tools:$PATH 

हम हो

/Users/android-sdks/platform-tools:/Users/android-sdks/tools:/android-sdks/platform-tools:~/android-sdks/tools:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/local/mysql/bin 

PATH आदेश दिए गए हैं कॉम पर दर्ज लगाने के लिए प्रयोग किया जाता है और रेखा।तो अगर आप टाइप foo, खोल निर्दिष्ट क्रम में नीचे नाम के लिए दिखाई देगा,:

/Users/android-sdks/platform-tools/foo 
/Users/android-sdks/tools/foo 
/android-sdks/platform-tools/foo 
~/android-sdks/tools/foo 
/opt/local/bin/foo 
/opt/local/sbin/foo 
/usr/bin/foo 
/bin/foo 
/usr/local/mysql/bin/foo 

पथ के वर्तमान मूल्य देखने के लिए, चलाने

echo $PATH 

आप के लिए नई निर्देशिका जोड़ना चाहिए PATH की शुरुआत, या अंत में? यह हमेशा कोई फर्क नहीं पड़ता, लेकिन कभी-कभी यह करता है। यह इस बात पर निर्भर करता है कि आप कौन से स्थान सिस्टम को पहले जांचना चाहते हैं।

यदि आप डिफ़ॉल्ट में देखने से पहले अन्य निर्देशिकाओं को खोजना चाहते हैं तो आपको शुरुआत में जोड़ना चाहिए। उदाहरण के लिए, git एक उपयोगिता है जो स्रोत कोड का प्रबंधन करने के लिए उपयोग की जाती है। अगर मैं ~/Git में git के एक नए संस्करण को स्थापित करने और का उपयोग करें कि डिफ़ॉल्ट रूप से करना चाहता था, मुझे क्या करना चाहते हैं:

export PATH=~/git/bin:$PATH 

इसका मतलब है कि ~/Git/bin/Git ओवरराइड होगा/opt/स्थानीय/bin/Git।

दूसरी ओर मैं व्यवस्थापक को git सिस्टम-व्यापी स्थापित करना पसंद कर सकता हूं। मैं अपने स्थानीय प्रतिलिपि केवल उपयोग करना चाहते हैं जब तक व्यवस्थापक यह हर किसी के लिए उपलब्ध बनाता है, तो यह अधिक समझ में आता है:

export PATH=$PATH:~/git/bin 

इस मामले ~/git/bin/git केवल तभी /opt/local/bin/git पहले से ही /opt/local/bin के बाद से अस्तित्व में नहीं था इस्तेमाल किया जाएगा में पहले रास्ते में है।

बहुत से आदेश एक से अधिक स्थानों में मौजूद नहीं होंगे। उदाहरण के लिए आप my-backup-script लिख सकते हैं और इसे /Volumes/Capsule/scripts पर ऐप्पल टाइम कैप्सूल पर डाल सकते हैं। यह संभावना नहीं है कि संघर्ष के लिए किसी भी अन्य स्थान पर my-backup-script नामक एक आदेश होगा।

export PATH=/Volumes/Capsule/scripts:$PATH 

या

export PATH=$PATH:/Volumes/Capsule/scripts 

एक बेहतर है: तो निम्न कमांड का या तो आप my-backup-script टाइप करें और सही स्क्रिप्ट चलाने होगा? मेरी सलाह बाद वाले को करना होगा। याद रखें कि प्रत्येक आदेश के लिए सिस्टम को $PATH में निर्देशिकाओं को खोजने की आवश्यकता होगी। अधिकांश आदेश स्थानीय सिस्टम पर होंगे, इसलिए पथ के अंत में धीमे नेटवर्क संग्रहण को रखने का सबसे अधिक अर्थ होता है।

+0

तो कुछ लोगों को स्पष्ट रूप से प्रीपेन्ड होने पर $ PATH क्यों जोड़ना चाहिए? – Pacerier

+0

किसी को प्रीपेन्ड करना चाहिए यदि लक्ष्य 'पथ' में उल्लिखित शेष स्थानों को खोजने से पहले एक विशिष्ट निर्देशिका को खोजना है। अगर कोई जोड़ना चुनता है, तो उनके पास अलग-अलग लक्ष्य हो सकते हैं। कुछ विवरणों के साथ उत्तर अपडेट किया गया। – GargantuChet

7

man page से, export बस एक वातावरण चर सेट।

PATH पर्यावरण चर आपके मैक को बताता है कि आप कमांड लाइन पर टाइप करने वाले आदेशों को देखने के लिए कहां दिखाना चाहिए। यह एक कोलन द्वारा सीमित पथों की एक सूची है।

मूल्य $PATHPATH पर्यावरण चर का वर्तमान मान है।

इस प्रकार

,

export PATH=/foo:$PATH 

पहले जोड़ता तरह की एक पंक्ति /fooPATH

और

export PATH=$PATH:/foo 

को PATH

0

भागो man

और फिर के रूप में export

सवाल का जवाब आप वर्तमान PATH मूल्य देख सकते हैं और निरीक्षण एक से अधिक पथ वर्तमान देखते हैं कि कर सकते हैं।

(मेरा /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin था)

गौर करें कि : एक एकल पथ के अंत का प्रतिनिधित्व करता है।

आप $PATH

का उपयोग कर अब जब आप इस सूची में एक और रास्ता जोड़ना चाहते हैं तो आप /newPath:$PATH या $PATH:/newPath जैसे नए रास्ते पर वर्तमान पथ संलग्न करने के लिए की जरूरत है के द्वारा इस प्राप्त कर सकते हैं।

और अंत में इसे सहेजने के लिए आपको export PATH=$PATH:/newPath का उपयोग करने की आवश्यकता है।

नोट: यह उत्तर नौसिखिया डेवलपर्स के लिए है।