पाथ बदल दिया, अब मुझे सब कुछ के लिए "कमांड नहीं मिला"


26

अमेज़ॅन लिनक्स सर्वर, एसएसएच से जुड़ा:

मैंने / etc / वातावरण ( PATH=$PATH:/opt/openoffice4/program) और / etc / sysconfig / httpd ( export PATH = ${PATH:$PATH:}/opt/openoffice4/program) में कुछ परिवर्तन करके Apache उपयोगकर्ता के लिए PATH को बदलने की कोशिश की ।

फिर मैंने रिबूट किया।

अब, मैं कुछ नहीं कर सकता, यहां तक ​​कि ls -lनेतृत्व भी करता हूं-bash: ls: command not found

नियंत्रण वापस पाने के लिए मैं क्या कर सकता हूं?


4
क्या आप सीधे कमांड चला सकते हैं? उदाहरण के लिए /bin/ls?
DavidPostill

हां, मैं
फेरेंजिटो

13
फिर आपको उन /bin/viफ़ाइलों को चलाने और ठीक करने में सक्षम होना चाहिए जहां आपने पथ को तोड़ दिया था।
DavidPostill

जवाबों:


49

नियंत्रण वापस पाने के लिए मैं क्या कर सकता हूं?

भागो /bin/viऔर परिवर्तन आप करने के लिए बनाया वापस लौटने /etc/environmentऔर /etc/sysconfig/httpd


32

आप अपने PATHसंपादक के बिना सेट कर सकते हैं । बस इसे शेल में टाइप करें:

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

1
और रिक्त स्थान हटा दें! PATH=something, नहींPATH = something
वॉल्टिनेटर

4
यह उद्धृत किया जाना चाहिए, अन्यथा $HOMEग्लोबिंग और शब्द-विभाजन के अधीन होगा। IOW, यह टूट जाएगा अगर $HOMEइसमें जगह है (प्रशंसनीय) या किसी भी गोलाकार अक्षर (कम संभावना)।
केविन

@ केविन मैंने इसकी कोशिश की और रिक्त स्थान और ग्लब्स की नकल की गई। (लेखन export PATH=/path to home/binकार्य नहीं करता है, निश्चित रूप से।)
नील

2
@ केविन यही है कि यह कड़ाई से अनुरूप कार्यान्वयन में कैसे व्यवहार करता है, लेकिन कम से कम बैश exportकस्टम सिंटैक्स नियम देता है जिसमें यह समस्या नहीं होती है। (कस्टम सिंटैक्स नियम पहले से ही अन्य कारणों से आवश्यक थे, उदाहरण के लिए अनुमति देने के लिए export array=(1 2 3)।)
hvd

-1

शायद इससे मदद मिलेगी:

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

'निर्यात' कमांड का उपयोग / usr / bin से नहीं किया जाता है, इसीलिए यह अभी भी काम करता है!


1
यह उत्तर पहले ही सुझाया जा चुका है।
xenoid
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.