2013-02-17 27 views
6

पर $ PATH का लाभ मैं लिनक्स और यूनिक्स के लिए अपेक्षाकृत नया हूं। इंटरनेट की मदद से मुझे अंत में पता चला कि कैसे $PATH और मेरे .bashrc कार्य में उपनाम।उपनाम

लेकिन मुझे वास्तव में कुछ भी नहीं मिला जो वर्णन करता है कि इसका उपयोग कब किया जाए।

मान लीजिए कि मैं लाइब्रेरी/फ़्रेमवर्क में Python3.3 स्थापित और निष्पादन योग्य /Library/Frameworks/Python.framework/Versions/3.3/bin/python3 है, लेकिन मैं सिर्फ अपनी टर्मिनल में python3 टाइप करके अजगर 3.3 पर अमल करना चाहते हैं।

1) मैं अपने .bashrc में $ पथ को संशोधित:

जब मैंने इसे सही ढंग से समझ, वहाँ (कम से कम) तीन तरीकों इस लक्ष्य को हासिल करने के लिए कर रहे हैं

export PATH=/Library/Frameworks/Python.framework/Versions/3.3/bin:${PATH} 

2) मैं एक उपनाम सेट

alias python3=/Library/Frameworks/Python.framework/Versions/3.3/bin 

3) एक प्रतीकात्मक कड़ी (सिमलिंक) बनाने:

ln -s /Library/Frameworks/Python.framework/Versions/3.3/bin /usr/local/bin 
मेरी .bashrc में

आप क्या कहेंगे (आपके अनुभव से) "अनुशंसित" तरीका है?

+1

मुझे नहीं लगता कि अपने 'alias' और' ln -s' आदेशों सही हैं। आप शायद उन्हें 'bin/python3'' का उपयोग केवल '/ bin' – FoolishSeth

+0

पर नहीं करना चाहते हैं और आप अपने' .bashrc' –

+0

धन्यवाद में 'फ़ंक्शन' भी जोड़ सकते हैं, आप सही हैं, यह निश्चित रूप से 'होना चाहिए ... बिन/पायथन 3' –

उत्तर

7

अपने पथ में python3 डालकर कहीं भी इसे अपने फाइल सिस्टम में ढूंढने का सही तरीका है। एक कमांडिक लिंक उस आदेश को python पर बदलने का सबसे अच्छा तरीका है और अपनी स्क्रिप्ट को गैर संस्करण निर्भर करता है (आप एक स्क्रिप्ट चला सकते हैं जो पाइथन पर निर्भर करता है प्रतीकात्मक लिंक का उपयोग करता है और एक स्क्रिप्ट जिसे Python 3.0 की आवश्यकता होती है विशेष रूप से python3 का उपयोग करती है, भले ही आपके कंप्यूटर पर वे एक जैसी ही चीज हैं)। प्रतीकात्मक लिंक अभी भी आपके फाइल सिस्टम में फाइलें हैं, इसलिए उन्हें अभी भी आपके रास्ते में होना चाहिए।

मैं केवल तभी उपयोग करता हूं जब आप किसी प्रकार का व्यवहार बनाने की कोशिश कर रहे हैं जो एक कमांड लाइन उपयोगिता के लिए डिफ़ॉल्ट व्यवहार से अलग है, ls के लिए उपनाम जैसे कि चुपचाप जोड़ता है।

भी प्रतीकात्मक लिंक फाइल सिस्टम में संग्रहीत हैं इसलिए एक बार बनाया गया है कि वे लॉग इन करने वाले अन्य सभी उपयोगकर्ताओं के लिए मौजूद हैं, जबकि उपनाम केवल लॉग इन उपयोगकर्ता पर लागू होते हैं जिन्होंने उन्हें परिभाषित किया है। उनके पास फ़ाइल अनुमतियां भी लागू हो सकती हैं।

यहां कुछ के माध्यम से आप अपने टर्मिनल में कुछ महान उपनामों के साथ a fun article कर सकते हैं।

+0

के साथ कभी समस्या नहीं थी मजेदार लेख का लिंक अब होना चाहिए: http://digitalformula.net/articles/pimp-my-prompt-like-paul-irish/4/ (लेकिन उत्तर को संपादित करना काम नहीं करता क्योंकि संपादन <6 अक्षर)। – user766353

+0

ओह, इसके बारे में क्षमा करें। यह एक अच्छा लेख है, फिर से काम करने वाले लिंक को देखकर खुशी हुई। –

0

मैं सुझाव देता हूं कि उपनाम के लिए जाएं जो आपके द्वारा पाइथन के विभिन्न संस्करणों के संघर्ष के लिए आसान बना देगा। खोल पैथ चर को देखेगा और जहां भी यह पाइथन के निष्पादन योग्य से मेल खाता है, यह इसे निष्पादित करेगा। उपनाम को आपके शेल प्रोफाइल में .bash_profile जैसे रखना होगा।

+1

मुझे लगता है कि 'पथ' में एक प्रतीक लिंक उपनाम से बेहतर है, डिफ़ॉल्ट एप्लिकेशन बदलते समय आपको अपनी बैश प्रोफ़ाइल को स्रोत करने की आवश्यकता नहीं है। –

4

सबसे पहले, /Library/Frameworks/ निर्देशिका में पायथन स्थापित करने का कोई कारण नहीं है। मेरा सुझाव यह है कि (कम से कम एक शुरुआत के लिए) आपको अपनी /Library जैसी शीर्ष स्तरीय निर्देशिकाएं नहीं जोड़नी चाहिए।आप स्रोत कोड से यह संकलन हैं, तो आप एक मानक ./configure साथ built it होना चाहिए (और यह शायद /usr/local/ में चला जाता है) स्रोत कोड से अजगर संकलन के बारे में अच्छी तरह से

मैं नहीं जानता, लेकिन सबसे लिनक्स स्रोत कोड डिफ़ॉल्ट ./configure द्वारा हो जाता है इसलिए उनके द्विआधारी एक /usr/local/ उपसर्ग को -d /usr/local/bin/ में जाने जो अपने PATH

कुछ लिनक्स वितरण में डिफ़ॉल्ट रूप से पहले से ही अक्सर है एक /etc/profile जो परोक्ष रूप से, अगर निर्देशिका $HOME/bin/ मौजूद है, यह आपके PATH अंदर कहते हैं, उस स्थिति में बस द्विआधारी और स्क्रिप्ट (या प्रतीकात्मक लिंक) जोड़ना सबसे आसान तरीका है।

मेरी सामान्य सलाह बहुत लंबी या बहुत विशिष्ट PATH होने से बचने के लिए है। विशेष रूप से, प्रत्येक उत्पाद के लिए आपके PATH के अंदर एक निर्देशिका जोड़ना IMHO एक गलती है। उदाहरण देखें directory-variables section of GNU coding standards, और अपने PATH को बहुत कम रखें। व्यक्तिगत रूप से मैं केवल /usr/local/bin/ (सिस्टम-व्यापी) या $HOME/bin/ में प्रोग्राम जोड़ता हूं, शायद प्रतीकात्मक लिंक के रूप में (इसलिए मैं अपना PATH नहीं बदलता क्योंकि इसमें पहले से ही /usr/local/bin/ और $HOME/bin दोनों शामिल हैं)।

एक बहुत लंबे PATH होने अतीत के अनुभव से एक बुरा सपना है, और अपने इंटरैक्टिव गोले को धीमा कर देती

+0

धन्यवाद, यह बहुत उपयोगी था, मैं अपना रास्ता छोटा रखने की कोशिश करूंगा। पायथन स्थापना के लिए: मुझे इस बिंदु पर लिनक्स/यूनिक्स के बारे में बहुत कुछ नहीं पता था और आधिकारिक पायथन वेबसाइट से पाइथन 3.3 के लिए मैकोज़क्स इंस्टॉलर डाउनलोड किया गया था, और यह डिफ़ॉल्ट इंस्टॉल स्थान था। –

0

आप सभी अपने स्पष्टीकरण के लिए धन्यवाद।

जैसा कि मैंने पहले ही कहा है, मैं यूनिक्स और लिनक्स के लिए काफी नया हूं। मैंने अपने ब्लॉग के लिए अन्य "newbies" के लिए उन चीज़ों (उपनाम, symlinks $ PATH) के बारे में एक लेख लिखा है। मुझे उन चीजों के बारे में लिखना पसंद है, क्योंकि वे वास्तव में मुझे रूचि देते हैं, और मैं अपने अनुभव साझा करना चाहता हूं - मुझे उम्मीद है कि वे अन्य लोगों के लिए भी सहायक होंगे। इसके अलावा, अगर मुझे चीजों को समझाना है तो यह मेरी समझ को गहरा बनाने में मदद करता है - और यह भी एक अच्छा भविष्य संदर्भ है!

यह अच्छा होगा अगर आप लेख को बहुत जल्दी से स्किम कर सकें, और अगर मुझे कुछ चीजें गलत हो गईं, तो मैं सुझावों के बारे में बहुत खुश हूं!

http://scientific-ocean.com/2013/02/17/an-introduction-to-linuxunix-executables-path-aliases-and-symlinks/

संबंधित मुद्दे