साधारण सामान
PATH=$PATH:~/opt/bin
या
PATH=~/opt/bin:$PATH
इस आधार पर कि क्या आप ~/opt/binअंत में जोड़ना चाहते हैं (अन्य सभी निर्देशिकाओं के बाद खोजा जा सकता है, मामले में एक ही नाम से कई निर्देशिकाओं में) या शुरुआत में (सभी अन्य निर्देशिकाओं से पहले खोजा जा सकता है)।
आप एक ही समय में कई प्रविष्टियाँ जोड़ सकते हैं। PATH=$PATH:~/opt/bin:~/opt/node/binया आदेश देने के काम पर बदलाव ठीक है। exportलाइन की शुरुआत में मत डालो क्योंकि इसमें अतिरिक्त जटिलताएं हैं (नीचे देखें "बैश के अलावा गोले पर नोट्स")।
यदि आपका PATHनिर्माण कई अलग-अलग घटकों द्वारा किया जाता है, तो आप डुप्लिकेट प्रविष्टियों के साथ समाप्त हो सकते हैं। देखें कि यूनिक्स किस कमांड से खोजा जा रहा है? और डुप्लिकेट को जोड़ने या उन्हें हटाने से बचने के लिए awk कमांड के साथ डुप्लिकेट $ PATH प्रविष्टियों को निकालें।
कुछ वितरण अपने ~/binआप अपने पेट में डाल दिया अगर यह मौजूद है, वैसे।
इसे कहां लगाना है
PATHमें संशोधित करने के लिए लाइन रखो ~/.profile, या ~/.bash_profileयदि आपके पास क्या है।
ध्यान दें कि ~/.bash_rcकिसी भी प्रोग्राम द्वारा पढ़ा नहीं जाता है, और ~/.bashrcबैश के इंटरैक्टिव उदाहरणों की कॉन्फ़िगरेशन फ़ाइल है। आपको पर्यावरण चर को परिभाषित नहीं करना चाहिए ~/.bashrc। पर्यावरण चर को परिभाषित करने के लिए सही जगह PATHहै ~/.profile(या ~/.bash_profileयदि आप बैश के अलावा गोले की परवाह नहीं करते हैं)। देखें कि उनके बीच क्या अंतर है और मुझे किसका उपयोग करना चाहिए?
इसे अंदर /etc/environmentन रखें ~/.pam_environment: ये शेल फाइलें नहीं हैं, आप $PATHवहां की तरह प्रतिस्थापन का उपयोग नहीं कर सकते । इन फ़ाइलों में, आप केवल एक चर को ओवरराइड कर सकते हैं, इसे जोड़ नहीं सकते।
कुछ सिस्टम स्क्रिप्ट में संभावित जटिलताएं
exportयदि चर पहले से ही पर्यावरण में है, तो आपको इसकी आवश्यकता नहीं है: चर के मूल्य का कोई भी परिवर्तन पर्यावरण में परिलक्षित होता है। पर्यावरण PATHमें बहुत अधिक होता है; सभी यूनिक्स सिस्टम इसे बहुत जल्दी सेट करते हैं (आमतौर पर बहुत पहली प्रक्रिया में, वास्तव में)।
लॉगिन समय पर, आप PATHपहले से ही पर्यावरण में, और पहले से ही कुछ सिस्टम निर्देशिकाओं पर भरोसा कर सकते हैं । आप एक स्क्रिप्ट है कि जल्दी निष्पादित किया जा सकता आभासी वातावरण किसी तरह का सेट करते समय लिख रहे हैं, तो आप यह सुनिश्चित करें कि आवश्यकता हो सकती है PATHयदि: गैर खाली और निर्यात है PATHअभी भी सेट नहीं हो, तो कुछ इस तरह PATH=$PATH:/some/directoryतय करेगा PATHकरने के लिए :/some/directory, और खाली घटक शुरुआत में इसका मतलब है कि वर्तमान निर्देशिका (जैसे .:/some/directory)।
if [ -z "${PATH-}" ]; then export PATH=/usr/local/bin:/usr/bin:/bin; fi
बैश के अलावा अन्य गोले पर नोट
बाश में, ksh और zsh, exportविशेष वाक्यविन्यास है, और दोनों PATH=~/opt/bin:$PATHऔर export PATH=~/opt/bin:$PATHसही काम भी करते हैं। अन्य बॉर्न / पोसिक्स-शैली के गोले में जैसे कि डैश (जो /bin/shकई प्रणालियों पर है), exportएक साधारण कमांड के रूप में पार्स किया जाता है, जो दो अंतरों को बताता है:
तो पानी के छींटे जैसे गोले में, पहली जगह तक के मूल्य के बाद शाब्दिक स्ट्रिंग पर export PATH=~/opt/bin:$PATHसेट PATHहोता है।
(एक नंगे असाइनमेंट) को उद्धरण की आवश्यकता नहीं है और सही काम करता है। यदि आप एक पोर्टेबल स्क्रिप्ट में उपयोग करना चाहते हैं , तो आपको लिखने की ज़रूरत है , या ( बॉर्न शेल को पोर्टेबिलिटी के लिए भी स्वीकार नहीं करना चाहिए और टिल्ड विस्तार नहीं करना चाहिए)।~/opt/bin/:PATHPATH=~/opt/bin:$PATHexportexport PATH="$HOME/opt/bin:$PATH"PATH=~/opt/bin:$PATH; export PATHPATH=$HOME/opt/bin:$PATH; export PATHexport var=value
¹ यह बॉर्न गोले में वास्तविक नहीं था (जैसा कि वास्तविक बॉर्न शेल में, आधुनिक पॉसिक्स-शैली के गोले में नहीं), लेकिन आप इन दिनों ऐसे पुराने गोले का सामना करने की अत्यधिक संभावना नहीं है।