यूनिक्स पथ चर क्या है और मैं इसे कैसे जोड़ूं?


11

कई प्रोग्रामिंग ट्यूटोरियल उपयोगकर्ताओं को अपने साथ कुछ जोड़ने के लिए कहते हैं, PATHलेकिन यह नहीं समझाते कि यह क्या है। मौजूदा संसाधन जो PATHउपयोगकर्ताओं को कमांड लाइन के लिए नया बताते हैं, वे बहुत अच्छे नहीं हैं।

  • यूनिक्स PATHचर क्या है ?

  • मैंने अभी एक प्रोग्राम डाउनलोड किया, फिर टर्मिनल में कमांड चलाने की कोशिश की और मिल गया command not found। इससे क्या लेना-देना है PATH?

  • मैंने PATHइस कमांड के साथ कुछ जोड़ा और फिर काम किया:

    export PATH=/path/to/some/bin:$PATH
    

    ... लेकिन फिर मैंने command not foundअगली बार अपना कंप्यूटर शुरू किया। मैं PATHहर बार टर्मिनल खोलते समय इसे कैसे बना सकता हूं ?

  • यह निर्धारित करने का सबसे अच्छा तरीका है कि क्या कोई प्रोग्राम जैसे Git या gccपहले से ही मेरे कंप्यूटर पर लोड है?


3
मैंने SO पर कई उत्तरों के माध्यम से पढ़ा है और मुझे ऐसा उत्तर नहीं मिला है जो इन प्रश्नों में से हर एक का उत्तर एक नौसिखिया समझ सके। मुझे कुछ चाहिए जो मैं नए कमांड लाइन उपयोगकर्ताओं को लिंक कर सकूं। यह मेरी उम्मीद थी कि इसे सामुदायिक विकि के रूप में जोड़ा जाए और इसके लिए महत्वपूर्ण इनाम दिया जाए।
केविन बर्क

4
मुझे यकीन है कि अगर मैं इस सवाल के लिए Google खोज करूं तो मुझे 50 हिट मिल सकते हैं। तुम क्यों नहीं कर सकते?
ट्रोजनफोए

2
और यदि उन लिंक में से कोई भी एसओ एक प्रश्न के लिए इंगित नहीं करता है जो यहां होने के लिए योग्य है, तो इसे यहां जोड़ा जाना चाहिए। हम चाहते हैं कि SO वही हो जहाँ Google प्रोग्रामिंग प्रश्नों के लिए जाता है।

कृपया यह सवाल पूछने के लिए केविन की प्रेरणा के लिए MSO पोस्ट देखें । वह स्पष्ट रूप से यह स्पष्ट करने के लिए एक संपादन करेंगे कि यह जानकारी कैसे सहायक है।
jmort253

1
@ jmort253: ठीक है, उसे जल्दी करना शुरू कर देना चाहिए। 4/5 के करीब वोट। मैं बंद नहीं करूंगा क्योंकि मुझे पता है कि प्रश्न को संपादित करना चाहता है, लेकिन वह इसे जल्दी से बेहतर बनाता है।
मदारा का भूत

जवाबों:


17

UNIX पथ एक पर्यावरण चर है जो निर्देशिकाओं की एक सूची है जिसमें उन कार्यक्रमों को देखना है जिन्हें आप चलाने की कोशिश कर रहे हैं। यह आपको चीजों को चलाने के लिए पूर्ण पथनाम का उपयोग करने से बचने की अनुमति देता है जैसे /bin/ls(उदाहरण के /binलिए पथ में डालकर )।

उदाहरण के लिए, एक पथ इसमें शामिल हो सकता है:

/bin:/usr/bin:/usr/sbin

और इसका मतलब है, जब आप कमांड में टाइप करते हैं, तो xyzzyयह वर्तमान सूची से मिलने वाली पहली फ़ाइल को चलाने की कोशिश करेगा:

/bin/xyzzy
/usr/bin/xyzzy
/usr/sbin/xyzzy

( यदि यह चालाक हो रहा है तो गैर-निष्पादन योग्य फ़ाइलों को छोड़ सकता है )।

आप कमांड के साथ रास्ते में चीजों को जोड़ सकते हैं जैसे:

set PATH=/directory/to/add:$PATH:/low/priority/path

/directory/to/addपथ खोज सूची के प्रारंभ में और /low/priority/pathअंत में कौन से स्थान हैं ।

हालांकि, यह आमतौर पर केवल वर्तमान शेल के लिए बदलता है । आप हर खोल में एक परिवर्तन करना चाहते हैं, तो आप, अपने स्टार्टअप फ़ाइलों में से एक है कि लाइन जोड़ने चाहिए की तरह $HOME/.profileया /etc/profile। उपयोग करने के लिए सही फ़ाइल आपके शेल पर ही निर्भर करती है और आपने स्टार्टअप फ़ाइलों को कैसे सेट किया है। यह बताना हमेशा आसान नहीं होता है कि इसे कहाँ जाना चाहिए, लेकिन आम तौर पर जो भी शेल आप उपयोग कर रहे हैं, उसके लिए नियमों को आम तौर पर समझाया जाता है।

आप आमतौर पर पथ में एक आदेश पा सकते हैं :

which cmd
whence cmd

cmdनिष्पादन योग्य का पता लगाने के लिए । उदाहरण के लिए, मेरे डेबियन सिस्टम पर, मुझे निम्नलिखित प्रतिलेख मिलता है:

pax> which ls
/bin/ls

pax> which firefox
/usr/bin/firefox

pax> which xyzzy

pax> 

1
क्या यह सवाल स्टैकओवरफ्लो पर है?
ट्रोजनफॉई

@trojanfoe, जितना कोई भी शेल से संबंधित प्रश्न करता है, हाँ, मुझे ऐसा लगता है। यह है भी एक प्रोग्रामिंग भाषा।

मैंने :विभाजक के रूप में उपयोग करने के लिए उत्तर को संशोधित किया , जैसा कि * nix पर उपयोग किया जाता है। विंडोज का उपयोग करता है ;(शायद इसलिए कि :पहले से ही एक अर्थ है C:)।
जोकिम सॉर

वास्तव में, @ जोचीम, यह संभवतः यह कहना अधिक सही है कि किसी दिए गए शेल (यूनिक्स के बजाय) में एक विशिष्ट निर्देशिका विभाजक है, लेकिन आप उन सभी के लिए सही हैं जिन्हें मैं अपने सिर के ऊपर से उपयोग करता हूं। ठीक करने के लिए धन्यवाद, चीयर्स।

@paxdiablo: हाँ, मैं इस बारे में विचार है, लेकिन मैं भी किसी भी यूनिक्स खोल कि उपयोग नहीं करता है के बारे में सोच नहीं कर सकते हैं :(, जावा में उदाहरण के लिए path.separatorहमेशा होता है :* nix पर)।
जोआचिम सॉउर

5

क्या है?

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

इसे कैसे सेट करें?

PATH=$PATH:/your/directory
export PATH

हर बार जब मैं टर्मिनल खोलता हूं तो मैं इसे पेट पर कैसे रह सकता हूं?

पिछली दो पंक्तियों को अंदर रखें ~/.bash_profile(यदि आप bashटर्मिनल के लिए उपयोग कर रहे हैं )।


3

PATH सिस्टम की तरह यूनिक्स के लिए एक पर्यावरण चर है।

निर्धारित पथ:

export PATH=$PATH:<your path>

अनसेट पथ:

unset $PATH

स्थायी रूप से पथ सेट करें

अपने होम फोल्डर में, देखें -> हिडन फाइल्स दिखाएँ .... पेन .bash_profile फ़ाइल, PATH लाइन निर्यात करने से पहले, यह लिंक जोड़ें .....

PATH=$PATH:<yourpath>

लॉगआउट करें और फिर से लॉगिन करें ...... जांचें कि क्या इसका काम ... अच्छा है! यह काम करना चाहिए.....


1
डाउनवोट के लिए क्षमा करें, लेकिन यह खराब स्वरूपित और संक्षिप्त है। बोल्ड के अत्यधिक उपयोग से बचने की कोशिश करें, दीर्घवृत्त ("...") का अत्यधिक उपयोग करें और पूर्ण वाक्य लिखें। भविष्य में इस तरह के पतन से बचने में मदद करनी चाहिए।
जोआचिम सॉर

1
@ जोशीम सौर आप जवाब क्यों नहीं संपादित करते? आप इसे नीचा दिखाना क्यों पसंद करते हैं?

1
@MikroDel: क्योंकि इस प्रश्न के बेहतर, उच्च-गुणवत्ता के उत्तर पहले से ही मौजूद हैं और डाउनवोटिंग में कम मेहनत लगती है। यदि यह एकमात्र उत्तर है, तो मैंने संभवतः इसे संपादित किया होगा। इसके अलावा: हालांकि वे आम तौर पर मज़ेदार नहीं होते हैं, डाउनवोट्स एक वैध उपकरण हैं (हाँ, प्रत्येक प्रश्न या उत्तर के बगल में ऊपर और नीचे तीर हैं)।
जोआचिम सॉर

1
इस टिप्पणी को उसी समय के आस-पास संपादित करें या पोस्ट करें, लेकिन संपादित करें इसे बेहतर बनाते हैं, और शांतनु बनर्जी और अन्य उपयोगकर्ताओं की मदद करते हैं

@MikroDel: तो एक डाउनवोट के पीछे के तर्क की व्याख्या करना उपयोगकर्ता की मदद नहीं करता है? मुझे लगता है कि मैं अपने तर्क पर बहुत स्पष्ट रहा हूं और गुणवत्ता में सुधार के लिए व्यावहारिक सुझाव दिए हैं। केवल आपकी जिद ही इसे मेरी नीचता को समझाने की इच्छा को कम करती है (और जैसा कि आप मेरी प्रोफाइल में देख सकते हैं कि मैं बहुत ज्यादा नहीं हूं)।
जोआचिम सॉउर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.