Theory
Server पर अपना Way ढूँढना
आप campus server में log in करते हैं और अपनी home directory, /home/riya में land करते हैं। अब क्या? आपको जानना है आप कहाँ हैं, यहाँ क्या है देखना है, कहीं और move करना है, और अपने work के लिए folders बनाने हैं। यही यह पहला set of commands करता है।
ये navigation commands वे हैं जो आप सबसे ज़्यादा type करेंगे, comfortable होने के बाद दिन में सैकड़ों बार। ये छोटे और तेज़ हैं। यह lesson family introduce करता है और दिखाता है ये एक real session में साथ मिलकर कैसे काम करते हैं।
At a glance
| Command | यह क्या करता है |
|---|---|
| pwd | Print working directory: दिखाता है आप currently कहाँ हैं |
| ls | Current directory के contents list करता है (ls -l long form, ls -a hidden दिखाता है) |
| cd dir | dir में change directory करता है; अकेला cd home जाता है, cd .. एक level ऊपर जाता है |
| mkdir dir | एक नई directory बनाता है (mkdir -p missing parent directories भी बनाता है) |
| rmdir dir | एक directory हटाता है, पर सिर्फ़ अगर यह empty है |
| tree | Directory और इसके contents को एक tree की तरह draw करता है |
Practical
एक Navigation Session
$ pwd
/home/riya
$ mkdir -p project/src # make project and project/src in one go
$ cd project
$ pwd
/home/riya/project
$ ls
src
$ cd .. # go back up to /home/riya
$ pwd
/home/riyaFormula
दो Shortcuts जो आप लगातार इस्तेमाल करेंगे
`.` का मतलब है यहाँ (current directory) और `..` का मतलब है parent (एक level ऊपर)। तो cd .. एक directory ऊपर move करता है, और ./script.sh का मतलब है 'यह script जो ठीक यहाँ है'।
यह भी: बिना argument के `cd` आपको सीधे /home/riya घर ले जाता है, कहीं से भी, और / से शुरू होने वाला path absolute है (root से) जबकि बिना वाला relative है (आप अभी कहाँ हैं वहाँ से)। ये कुछ ideas, ., .., home, absolute बनाम relative, around move करने का पूरा grammar हैं।
Quiz
आप /home/riya/project/src में हैं और आप cd .. चलाते हैं (एक level ऊपर जाना)। अब आप कहाँ हैं?
- /home/riya, सीधे home jump करते हुए
- /home/riya/project, src से एक level ऊपर
- /home/riya/project/src, unchanged
- / , root directory
Show the answer
/home/riya/project, src से एक level ऊपर
'..' का मतलब है parent directory, तो cd .. आपको exactly ONE level ऊपर move करता है: /home/riya/project/src से /home/riya/project तक। Option A बिना argument वाले cd को describe करता है (जो home जाता है) या cd ~, यहाँ से cd .. को नहीं, एक level ऊपर जाना project में land करता है, पूरी तरह home नहीं। Option C ग़लत है: cd .. actually आपकी location बदलता है। Option D ग़लत है: cd .. सिर्फ़ एक level ऊपर जाता है, पूरी तरह root तक नहीं। याद रखिए: .. एक step ऊपर है; कई levels ऊपर जाने के लिए आप इसे repeat करते हैं (cd ../..) या एक absolute path इस्तेमाल करते हैं।
Think first
rmdir Files वाली एक Directory Delete करने से क्यों मना करता है?
आप एक folder पर rmdir try करते हैं जिसमें files हैं और यह 'Directory not empty' से fail हो जाता है। rmdir इतना cautious क्यों है? फिर tap कीजिए।
Show the answer
क्योंकि rmdir deliberately SAFE है: यह सिर्फ़ EMPTY directories हटाता है, तो यह accidentally आपके work से भरा एक folder destroy नहीं कर सकता। अगर आप एक directory पर rmdir चलाएँ जिसमें अभी भी files या subdirectories हैं, यह मना कर देता है और 'Directory not empty' print करता है, जो एक helpful guard है, यह आपको बता रहा है 'यहाँ अभी भी कुछ है; क्या आप sure हैं?'। एक directory AND इसके अंदर सब कुछ हटाने के लिए, आपको एक अलग, ज़्यादा powerful command चाहिए, rm -r (recursive), जो आप अगले lesson में मिलेंगे। वह command genuinely dangerous है क्योंकि यह बिना किसी recycle bin के पूरी branch delete कर देता है, तो Linux everyday rmdir को harmless रखता है और आपको consciously rm -r की तरफ़ reach कराता है जब आप actually एक पूरी directory wipe करने का मतलब रखते हैं। Design philosophy यह है कि easy, common command safe होनी चाहिए, और destructive वाली को आपसे इसे explicitly ask करवाना चाहिए। rmdir की fussiness आपको protect कर रही है; warning respect कीजिए और rm -r तक escalate करने से पहले check कीजिए।
Summary
Key takeaways
- pwd आपकी current directory दिखाता है; ls इसके contents list करता है (ls -l long, ls -a hidden files शामिल करता है)।
- cd आपको move करता है: cd dir एक directory में enter करता है, cd .. एक level ऊपर जाता है, अकेला cd home जाता है।
- mkdir एक directory बनाता है (mkdir -p कोई भी missing parent directories भी बनाता है); tree branch draw करता है।
- '.' current directory का मतलब है और '..' parent का; ये relative navigation drive करते हैं।
- / से शुरू होने वाला path absolute है (root से); अन्यथा यह आप कहाँ हैं इससे relative है।
- rmdir सिर्फ़ EMPTY directories हटाता है; एक non-empty वाली 'Directory not empty' से fail होती है (पूरी वालों के लिए, carefully, rm -r इस्तेमाल कीजिए)।
- Memory hook: pwd कहाँ, ls क्या, cd move, mkdir बनाओ, rmdir empty-हटाओ।