कार्यकारी सारांश (TL; DR)
pwdयह जानने के लिए उपयोग करें कि आप कहां हैं (या अपने प्रॉम्प्ट में :और बीच में देखें $)।
cdनिर्देशिका को अन्यत्र बदलने के लिए उपयोग करें । विंडोज के विपरीत, हमेशा एक स्थान का पालन cdकरना चाहिए ; जैसे आदेश और काम नहीं करेंगे, लेकिन करेंगे और करेंगे।cd/cd..cd /cd ..
आप कहां हैं, यह जानना
रास्ता 1: भागो pwd।
वर्तमान में आप जो निर्देशिका कर रहे हैं वह शेल-विशिष्ट (और आमतौर पर, एप्लिकेशन-विशिष्ट) है। आप एक शेल चला रहे हैं जहाँ आप एक डायरेक्टरी में हैं, और दूसरा शेल आप दूसरी डायरेक्टरी में हैं।
यह जानने के लिए कि आप वर्तमान में किस निर्देशिका में हैं, चलाएँ:
pwd
उदाहरण के लिए (एक शेल से जो मेरे मशीन पर अब खुला है)
ek@Kip:~$ pwd
/home/ek
यह मुझे बताता है कि मैं निर्देशिका में हूं /home/ek। /home(कुछ भ्रामक रूप से) वह निर्देशिका है जिसमें मानव उपयोगकर्ताओं की होम निर्देशिकाएं होती हैं (यह स्वयं किसी उपयोगकर्ता की होम निर्देशिका नहीं है)। मानव उपयोगकर्ता के usernameपास घर निर्देशिका है ।/home/username
rootउपयोगकर्ता में एक घर निर्देशिका नहीं है /home। इसके बजाय, rootघर निर्देशिका है /root। यह रूट निर्देशिका के साथ भ्रमित नहीं होना है , जो है /।
रास्ता 2: अपने संकेत की जाँच करें।
आपके प्रॉम्प्ट के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन यह है कि यह बताता है कि आप वर्तमान में किस निर्देशिका में हैं। आपका प्रॉम्प्ट वह टेक्स्ट है जो आपको सूचित करता है कि शेल एक कमांड को स्वीकार करने के लिए तैयार है।
उदाहरण में आपने हमें अपने प्रश्न में दिखाया, आपका संकेत है:
christy@ubuntu:~$
christyआपका उपयोगकर्ता नाम है यह @चरित्र ubuntuआपके कंप्यूटर के होस्ट नाम से इसे अलग करता है। (यदि आप एक लाइव सीडी चला रहे हैं, तो इसका होस्टनाम होगा ubuntu, और कुछ लोग चुनते हैं कि स्थापना के दौरान उनके कंप्यूटर का नाम भी है।)
यह :चरित्र उस निर्देशिका के नाम से अलग करता है जो आप वर्तमान में हैं। इस मामले में, जिसका प्रतिनिधित्व किया जाता है ~। ~अपने घर निर्देशिका के लिए आशुलिपि है। जब आप अपनी होम निर्देशिका में नहीं होते हैं, तो आपको एक पूर्ण निर्देशिका नाम देखना चाहिए। उदाहरण के लिए:
ek@Kip:~$ cd /var/log
ek@Kip:/var/log$
(समाप्त करने के लिए क्या मतलब है शीघ्र के प्रत्येक भाग: संकेतों का है कि इस परिपाटी निम्न के लिए, या तो एक $या एक #। चरित्र प्रकट होता है $, इस मामले में के रूप में, इसका मतलब है कि यह एक सामान्य उपयोगकर्ता खोल है एक। #चरित्र यह एक है का मतलब होगा rootखोल।)
तुम कहाँ हो बदलना
आपके "सीडी" कमांड ने काम क्यों नहीं किया।
निर्देशिका बदलने के लिए, cdकमांड का उपयोग करें ।
तुम दौड़ गए cd/। यह काम नहीं करता है क्योंकि आपने वास्तव में cdकमांड नहीं चलाया था । उबंटू और अन्य यूनिक्स-जैसे ऑपरेटिंग सिस्टम (वास्तव में, यूनिक्स-शैली के गोले में bash, जैसे कि आप जिस शेल का उपयोग कर रहे हैं), एक कमांड का नाम केवल एक स्थान या पंक्ति के अंत में माना जाता है।
इसलिए विंडोज में कमांड प्रॉम्प्ट के विपरीत (जहां cd\इसकी व्याख्या की जाती है cd \और cd..इसे उसी रूप में व्याख्या की जाती है cd ..), bash(शेल आप उबंटू में उपयोग कर रहे हैं), cd/एक मान्य कमांड नहीं है। आपको अवश्य उपयोग करना चाहिए cd /।
cd/का अर्थ है "वर्तमान निर्देशिका में प्रविष्टि जिसका नाम है cdऔर जो एक निर्देशिका भी है।" इस तरह की एक उपनिर्देशिका मौजूद है या नहीं, इसे कमांड के रूप में नहीं चलाया जा सकता है, इसलिए किसी भी तरह से आपको एक त्रुटि मिलेगी (हालांकि आपको जो त्रुटि मिलेगी वह अलग होगी):
ek@Kip:~$ cd/
bash: cd/: No such file or directory
ek@Kip:~$ mkdir cd
ek@Kip:~$ cd/
bash: cd/: Is a directory
अपने होम निर्देशिका में जा रहा है
अपने घर निर्देशिका में जाने के लिए, cdबिना किसी तर्क के अपने आप चलाएं :
cd
कुछ लोग अपने होम डायरेक्टरी को स्पष्ट रूप से नाम देना पसंद करते हैं। आप इसके पूर्ण नाम का उपयोग कर सकते हैं, या
cd ~
लेकिन cdअपने आप में पर्याप्त है।
एक निर्देशिका बढ़ रहा है
निर्देशिका को वर्तमान निर्देशिका की मूल निर्देशिका में बदलने के लिए (अर्थात, इसमें जो निर्देशिका है), उपयोग करें:
cd ..
..वर्तमान निर्देशिका की मूल निर्देशिका का प्रतिनिधित्व करता है। यदि आप रूट डायरेक्टरी ( /) में हैं, तो एक अपवाद है: ..बस प्रतिनिधित्व करता है/ । तो चल रहा cd ..है एक निर्देशिका जब कहीं भी चलता है लेकिन /; जब आप दौड़ते हैं /, तो आप अंदर रहते हैं /।
हर निर्देशिका में एक ..प्रविष्टि होती है। उन सभी में एक .प्रविष्टि भी होती है जो वर्तमान निर्देशिका को संदर्भित करती है। यह cd .हालांकि चलाने के लिए बहुत नहीं है । आप हमेशा वहीं रहें जहां आप हैं।
निरपेक्ष और सापेक्ष पथ
यदि आप cdकिसी ऐसी चीज़ से शुरू करते हैं जो a से शुरू नहीं होती है/ , तो यह मौजूदा डायरेक्टरी के भीतर उस डायरेक्टरी में जाने की कोशिश करती है ।
उदाहरण के लिए, यदि आप भाग गए
cd var/log
फिर यह उस जगह के varउपनिर्देशिका में जाने की कोशिश करेगा जहां आप वर्तमान में हैं, और मेंlog उपनिर्देशिका में। जब तक दोनों मौजूद नहीं हैं, और उन स्थानों में, वह cdआदेश विफल हो जाएगा (और आप वहीं रहेंगे जहां आप मूल रूप से थे)।
यदि आप रूट डायरेक्टरीlog के varउपनिर्देशिका के उपनिर्देशिका पर जाना चाहते हैं , तो इसके बजाय इसे चलाएं:
cd /var/log
आप वर्तमान में सिर्फ अगर /हैcd var/log के बराबर cd /var/log।
एक रास्ता जो शुरू होता है / वह निरपेक्ष है। इसे हल करने का तरीका इस बात पर निर्भर नहीं करता है कि आप वर्तमान में कहां हैं।
रास्ता ~भी पूर्ण है, क्योंकि यह (अनिवार्य रूप से) आशुलिपि के लिए है $HOME। HOMEएक पर्यावरण चर , और अभिव्यक्ति है$HOME वर्तमान उपयोगकर्ता के घर निर्देशिका के पूर्ण, पूर्ण पथ पर फैलती है।
~नोटेशन का उपयोग किसी अन्य उपयोगकर्ता के घर निर्देशिका का प्रतिनिधित्व करने के लिए भी किया जा सकता है । यदि आप लिखते हैं , तो यह होम निर्देशिका का प्रतिनिधित्व करता है।~usernameusername
इससे पहले कि आप पहले कहाँ थे
वर्तमान में आप जिस निर्देशिका में हैं, वह PWDपर्यावरण चर में संग्रहीत है । आपके द्वारा अंतिम निर्देशिका को OLDPWDपर्यावरण चर में संग्रहीत किया गया है। आप OLDPWDउसी तरह देख सकते हैं जिस तरह से आप किसी भी पर्यावरण चर को देखेंगे:
echo $OLDPWD
क्योंकि यह जानकारी संग्रहीत है, cdजहाँ आप पहले थे, वापस आने के लिए एक विशेष, त्वरित और आसान तरीका है। जैसा कि pst007x कहता है , आप जिस अंतिम निर्देशिका में थे, उस पर जाने के लिए:
cd -
यदि आप उस शेल में पहले से कोई निर्देशिका नहीं थे , तो OLDPWDपर्यावरण चर सेट नहीं किया गया होगा, और चलाने की कोशिश करने cd -में त्रुटि होगी (और आप वहीं रहेंगे जहां आप हैं):
ek@Kip:~$ cd -
bash: cd: OLDPWD not set
जहाँ आप एक मालिक की तरह बदल रहे हैं
pushd तथा popd : निर्देशिका स्टैक
निर्देशिका नामों के ढेर की कल्पना करें। द्वारा एक ढेर , मेरा मतलब है कुछ है जहाँ आप कुछ यह शीर्ष पर चला जाता है जोड़ते हैं, और आप एक बार में केवल एक बात निकाल सकते हैं और बात आप निकालना हमेशा शीर्ष पर वर्तमान में है।
आप किसी भी निर्देशिका को स्टैक पर चलाकर धक्का दे सकते हैं dir:
pushd dir
यदि आप वर्तमान निर्देशिका को स्टैक के शीर्ष पर धकेलना चाहते हैं, तो आप उपयोग कर सकते हैं .(जो ऊपर बताया गया है, हमेशा वर्तमान निर्देशिका का प्रतिनिधित्व करता है):
pushd .
फिर आप अपने व्यवसाय के बारे में जा सकते हैं, निर्देशिकाओं को जितना चाहें बदल सकते हैं। जब आप पिछली निर्देशिका में वापस जाना चाहते हैं, तो आपने स्टैक पर धक्का दिया था pushd, भागो:
popd
यह उस निर्देशिका में जाता है, और पॉप भी होता है ढेर बंद यह। अब स्टैक एक डायरेक्टरी छोटा है। यदि स्टैक पर एकमात्र निर्देशिका थी, तो स्टैक अब खाली है।
आपके पास आकार का एक स्टैक 1 से अधिक हो सकता है। यही है, आप pushdस्टैक पर कई निर्देशिकाओं को पुश करने के लिए अलग-अलग कमांड का उपयोग कर सकते हैं । प्रत्येक बाद की popdकमांड (और पॉप, यानी, स्टैक से, दूर जाएगी) ) सबसे हाल ही में धकेल दी गई डायरेक्ट्री पॉप नहीं होगी।
यहाँ एक उदाहरण है:
ek@Kip:~$ cd /etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ pushd .
/etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ pushd /home/ek
~ /etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:~$ cd /var/log/apt
ek@Kip:/var/log/apt$ pushd .
/var/log/apt /var/log/apt /etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/var/log/apt$ cd
ek@Kip:~$ popd
/var/log/apt /etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/var/log/apt$ popd
/etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ cd /
ek@Kip:/$ pushd usr
/usr / /etc/apt/sources.list.d
ek@Kip:/usr$ cd
ek@Kip:~$ popd
/ /etc/apt/sources.list.d
ek@Kip:/$ popd
/etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ popd
bash: popd: directory stack empty
ek@Kip:/etc/apt/sources.list.d$
pushdऔर की popdतुलना में बहुत कम बार उपयोग किया जाता है cd। उनके पास अन्य, और भी अधिक उन्नत उपयोग हैं। भागो help pushdऔरhelp popd विवरण के लिए।
अधिक सीखना और प्रलेखन तक पहुँचना
cdऔर pwdअधिक उन्नत उपयोग भी हैं। उनके बारे में जानने के लिए दौड़ें help cdऔर man pwd।
helpके लिए है खोल builtins । manस्टैंडअलोन कमांड के लिए है - कमांड जो अलग-अलग प्रक्रियाओं के रूप में चलती हैं और अलग-अलग निष्पादन योग्य के रूप में मौजूद हैं। typeआदेश का पता चलता है, तो एक कमांड शेल builtin है या नहीं और, अगर नहीं, जहां कार्यक्रम इसे चलाता स्थित है। उदाहरण के लिए, आप चला सकते हैं type help, type typeया type man।