कमांड लाइन, जीयूआई के बिना कंप्यूटर को कंट्रोल करने का एक तरीका है. इस यूनिट में, हम अपने कंप्यूटर से इंटरैक्ट करने के लिए बुनियादी कमांड के बारे में जानेंगे.
सीखने लायक ज़रूरी बातें
- छात्र-छात्राएं, निर्देशों का इस्तेमाल करके कंप्यूटर पर इधर-उधर जाएंगे.
- छात्र-छात्राएं, फ़ाइलें और फ़ोल्डर बनाएंगे, उन्हें एक जगह से दूसरी जगह ले जाएंगे, उनकी कॉपी बनाएंगे, और उन्हें मिटाएंगे.
कमांड लाइन क्या होती है?
ज़्यादातर लोग, कंप्यूटर से इंटरैक्ट करने के लिए ग्राफ़िकल यूज़र इंटरफ़ेस (GUI) का इस्तेमाल करते हैं. आम तौर पर, जीयूआई में आइकॉन, बटन, स्क्रोलबार वगैरह वाली विंडो को कंट्रोल करने के लिए, माउस या टच का इस्तेमाल किया जाता है.
कमांड लाइन, कंप्यूटर को देखने का एक वैकल्पिक तरीका है. इसे कभी-कभी "शेल", "टर्मिनल", "बैश" या "टेक्स्ट इंटरफ़ेस" भी कहा जाता है. कमांड लाइन यह है:
- कंप्यूटर प्रोग्राम से इंटरैक्ट करने का एक तरीका, जिसमें उपयोगकर्ता निर्देश टाइप करता है. उदाहरण के लिए:
open README.txt
- माउस के बिना कंप्यूटर को नेविगेट करने और उसे चलाने का तरीका.
- यह ग्राफ़िक के बिना, आपकी फ़ाइलों और डायरेक्ट्री को बनाने, पढ़ने, अपडेट करने, उन पर कार्रवाई करने, और उन्हें मिटाने का तरीका है. उदाहरण के लिए:
mv README.txt readme.txt
GUI और कमांड लाइन, दोनों एक ही चीज़ को देख रहे हैं! ये कंप्यूटर से इंटरैक्ट करने के अलग-अलग तरीके हैं.
हम कमांड लाइन का इस्तेमाल कब करते हैं?
डेवलपर अक्सर कमांड-लाइन इंटरफ़ेस को प्राथमिकता देते हैं:
- ये किसी प्रोग्राम या ऑपरेटिंग सिस्टम को कंट्रोल करने का ज़्यादा आसान तरीका उपलब्ध कराते हैं. क्यों? क्योंकि सब कुछ एक ही विंडो में होता है. साथ ही, प्रैक्टिस करने के बाद, माउस से चीज़ों को ढूंढने और उनमें बदलाव करने के मुकाबले, इसमें कम मेहनत लगती है.
- ये किसी कमांड को कंट्रोल करने के विकल्प आसानी से दिखाते हैं. क्यों? जीयूआई में मौजूद मेन्यू में बहुत कम विकल्प होते हैं. कमांड लाइन में सैकड़ों कमांड होती हैं. किसी कमांड में कुछ वर्ण जोड़ने से, वह कई अलग-अलग काम कर सकती है. उदाहरण के लिए,
ls
बेसिक लिस्ट फ़ाइलेंls -a
आम तौर पर छिपी हुई फ़ाइलों के साथ-साथ सभी फ़ाइलों की सूची बनाएंls -l
लंबी सूची, जिसमें हर फ़ाइल के बारे में जानकारी दिख रही हैls -R
रिकर्सिव, डायरेक्ट्री के कॉन्टेंट की सूची बनाएंls -la
सभी फ़ाइलों की लंबी सूची- इनकी मदद से, एक साथ कई फ़ाइलों पर जटिल तरीके से कार्रवाई करना आसान हो जाता है.
for i in *.png; do pngtogif $i `echo $i | sed s/png/gif/`; done
- इनकी मदद से, ऑपरेटिंग सिस्टम (शेल प्रोग्राम) को प्रोग्राम किया जा सकता है.उदाहरण के लिए, ऊपर दिया गया उदाहरण एक बहुत ही सामान्य शेल प्रोग्राम है. इसे
.png
पर खत्म होने वाले फ़ाइल नामों वाली इमेज में बदलाव करने के लिए डिज़ाइन किया गया है.
कमांड लाइन का इस्तेमाल
कमांड लाइन कमांड के हिस्से
सभी निर्देशों के तीन हिस्से होते हैं:
- कमांड (या यूटिलिटी) हमेशा सबसे पहले आती है.
- फ़्लैग लगाना ज़रूरी नहीं है. यह इस बात पर निर्भर करता है कि आपने कौनसा टूल इस्तेमाल किया है. फ़्लैग हमेशा - (माइनस) से शुरू होते हैं.
- आर्ग्युमेंट, कमांड के लिए ज़रूरी जानकारी या वे चीज़ें होती हैं जिन पर कमांड को कार्रवाई करनी होती है. अक्सर फ़ाइलों के नाम.
फ़्रेमिंग
संदर्भ और मकसद
कमांड लाइन, माउस या जीयूआई (ग्राफ़िकल यूज़र इंटरफ़ेस) के बिना कंप्यूटर को कंट्रोल करने का एक तरीका है. Apple Computer ने जब आइकॉन और फ़ोल्डर वाली मशीनें बनाना शुरू नहीं किया था, तब कंप्यूटर से इंटरैक्ट करने का सिर्फ़ एक तरीका था: कमांड लाइन.
डेवलपर के तौर पर, हम कमांड लाइन का इस्तेमाल करते हैं. ऐसा इसलिए, क्योंकि यह जीयूआई से ज़्यादा तेज़ और बेहतर है. इसमें क्लिक करने में समय बर्बाद करने की ज़रूरत नहीं होती. कमांड लाइन की मदद से, कंप्यूटर पर लगभग हर तरह का इंटरैक्शन किया जा सकता है.
टर्मिनल एक बहुत ही आसान इंटरफ़ेस है. इसलिए, जब आपको नेटवर्क लिंक के ज़रिए किसी कंप्यूटर से दूर से कनेक्ट करना होता है, तो यह GUI से ज़्यादा फ़ायदेमंद होता है. डेवलपर अक्सर ऐसा करते हैं. उदाहरण के लिए, यात्रा के दौरान.
इस लेख में, हम कंप्यूटर से इंटरैक्ट करने के लिए बुनियादी कमांड के बारे में जानेंगे. जैसे: फ़ाइलें और डायरेक्ट्री बनाना, फ़ोल्डर ट्रांसफ़र करना, डायरेक्ट्री बदलना, और किसी फ़ोल्डर के कॉन्टेंट की सूची बनाना.
सीखने के उद्देश्य
छात्र-छात्राएं ये काम कर पाएंगे
- फ़ाइलों और फ़ोल्डर में नेविगेट करने के लिए, Terminal का इस्तेमाल करना
- किसी फ़ोल्डर में मौजूद कॉन्टेंट की सूची बनाना
- कमांड लाइन पर फ़ाइलें और फ़ोल्डर बनाना
- फ़ाइलों और फ़ोल्डर को एक जगह से दूसरी जगह ले जाना
- फ़ाइलें और फ़ोल्डर कॉपी करना
- फ़ाइलें और फ़ोल्डर मिटाना
शुरू करें
टर्मिनल को ऐक्सेस करना
सेक्शन फ़्रेम करना और उसका मकसद
टर्मिनल, ऑपरेटिंग सिस्टम के लिए कमांड लाइन इंटरफ़ेस (सीएलआई) उपलब्ध कराता है. इसकी मदद से, अपने कंप्यूटर को सीधे तौर पर टेक्स्ट के ज़रिए निर्देश दिए जा सकते हैं.
इसके लिए, हमें आपके इस्तेमाल किए जा रहे सिस्टम के हिसाब से आपका टर्मिनल लॉन्च करना होगा.
टर्मिनल लॉन्च होने पर, यह आपके कंप्यूटर की होम डायरेक्ट्री (आपने अपने कंप्यूटर का जो भी नाम रखा है) में शुरू होगा. आपकी होम डायरेक्ट्री को टिल्ड ~
से दिखाया जाता है.
टर्मिनल में, डायरेक्ट्री का मतलब फ़ोल्डर से होता है. हालांकि, कभी-कभी हम इन्हें डायरेक्ट्री भी कहते हैं.
डायरेक्ट्री बदलना
सेक्शन फ़्रेम करना और उसका मकसद
टर्मिनल में अपने कंप्यूटर से बात करने और उसे यह बताने के लिए कि हमें क्या करना है, हमें एक सामान्य भाषा का इस्तेमाल करना होगा. कमांड लाइन, बैश स्क्रिप्टिंग लैंग्वेज में लिखी गई कमांड को समझता है. ये निर्देश, अंग्रेज़ी शब्दों के शॉर्ट फ़ॉर्म या अब्रिविएशन हैं.
Print Working Directory (pwd
)
टर्मिनल में नेविगेट करते समय, यह जानना ज़रूरी है कि आप कहां हैं. यह बात असल ज़िंदगी में भी लागू होती है. अगर आपको कहीं जाना है, तो सबसे पहले आपको अपनी मौजूदा जगह की जानकारी होनी चाहिए.
# See your current location - abbreviation for 'print working directory'
pwd
उपलब्ध फ़ाइलों और डायरेक्ट्री की सूची बनाना
आपकी वर्किंग डायरेक्ट्री में, ऐसी कई फ़ाइलें हो सकती हैं जिन्हें ऐक्सेस किया जा सकता है. आम तौर पर, हम आइकॉन जैसे विज़ुअल क्यू पर भरोसा करते हैं, ताकि हमें पता चल सके कि क्या उपलब्ध है. हालांकि, अगर हम सिर्फ़ यह अनुमान लगाते रहें कि फ़ाइलें और फ़ोल्डर कहां मौजूद हैं, तो हमारे लिए कंप्यूटर को नेविगेट करना मुश्किल हो जाएगा. कमांड लाइन में, हम एक खास कमांड का इस्तेमाल करके यह सूची बनाएंगे कि किसी भी वर्किंग डायरेक्ट्री / किसी भी जगह से क्या-क्या ऐक्सेस किया जा सकता है.
हमारी मौजूदा डायरेक्ट्री में कौनसी फ़ाइलें या फ़ोल्डर हैं, यह देखने के लिए ls
कमांड का इस्तेमाल करें. यह कमांड, सूची के लिए इस्तेमाल की जाती है. इससे आपको कॉन्टेंट की सूची दिखेगी.
# See files and folders in current location - abbreviation for 'list'
ls
जिस डायरेक्ट्री पर काम किया जा रहा है उसे बदलना
अगर आपको सूची में मौजूद नहीं किसी फ़ाइल या डायरेक्ट्री का ऐक्सेस चाहिए, तो उसे आसानी से ऐक्सेस करने के लिए, आपको अपनी वर्किंग डायरेक्ट्री बदलनी पड़ सकती है.
कमांड लाइन को यह बताने के लिए कि आपको किसी नई डायरेक्ट्री (इसे फ़ोल्डर भी कहा जाता है) पर ले जाना है, cd
सिंटैक्स का इस्तेमाल करें. इसके बाद, उसी लाइन में नए फ़ोल्डर का पाथ डालें.
अगर आपको किसी ऐसी डायरेक्ट्री पर जाना है जो आपकी मौजूदा डायरेक्ट्री के अंदर है (यानी कि आपकी वर्किंग डायरेक्ट्री का सबफ़ोल्डर), तो cd
कमांड का इस्तेमाल करें. इसके बाद, फ़ोल्डर का नाम डालें.
# Change your current working directory (current location)
# Abbreviation for 'change directory'
cd Documents
होम ~ डायरेक्ट्री से भी नेविगेट किया जा सकता है.
# Add a `~/` to begin from the home directory.
cd ~/Downloads
अगर आपने डायरेक्ट्री बदल दी है, लेकिन आपको वापस होम डायरेक्ट्री पर जाना है, तो ~
का इस्तेमाल करके सीधे होम डायरेक्ट्री पर जाएं या ..
का इस्तेमाल करके एक लेवल ऊपर जाएं.
# Option 1: navigate directly to the home directory
cd ~
# Option 2: navigate back one level
cd ..
ध्यान दें कि cd ..
सिर्फ़ एक लेवल ऊपर (वापस) जाता है. इसलिए, अगर आपने अब तक तीन बार डायरेक्ट्री बदली है (तीन लेवल नीचे), तो आपको होम डायरेक्ट्री पर वापस जाने के लिए, cd ..
का इस्तेमाल तीन बार करना होगा. हालांकि, cd ~
का इस्तेमाल सिर्फ़ एक बार करना होगा.
छोटे-छोटे चैलेंज
- अपनी मौजूदा डायरेक्ट्री में मौजूद फ़ाइलें देखने के लिए,
ls
का इस्तेमाल करें. - अपनी होम डायरेक्ट्री पर वापस जाएं और अपने होम फ़ोल्डर का कॉन्टेंट देखने के लिए,
ls
का इस्तेमाल करें. - होम डायरेक्ट्री में मौजूद किसी फ़ोल्डर का नाम चुनें और इस नए फ़ोल्डर पर जाएं.
- सूची में मौजूद आइटम देखने के लिए, सूची बनाने का निर्देश दें.
अहम जानकारी: tab
की मदद से अपने-आप पूरे होने की सुविधा
cd
कमांड का इस्तेमाल करके डायरेक्ट्री बदलते समय, एक भी टाइपो होने पर कमांड ठीक से काम नहीं करेगी. हालांकि, tab
कुंजी का इस्तेमाल करने पर, आपकी मौजूदा डायरेक्ट्री में मौजूद सभी डायरेक्ट्री के नाम अपने-आप पूरे हो जाएंगे. इसलिए, cd Documents
टाइप करने के बजाय, सिर्फ़ cd Do
टाइप करें. इसके बाद, tab
कुंजी दबाएं. टर्मिनल आपके लिए cd Documents/
कमांड को अपने-आप पूरा कर देगा. आखिर में मौजूद /
ज़रूरी नहीं है, लेकिन इससे आपको पता चलता है कि डेस्टिनेशन एक डायरेक्ट्री है.
अपने-आप भरने की सुविधा से, न सिर्फ़ समय बचता है, बल्कि जब यह काम नहीं करती, तब भी अहम जानकारी मिलती है. अगर टैब बटन दबाने पर कमांड अपने-आप पूरी नहीं होती है, तो हो सकता है कि आपने इनमें से कोई एक सामान्य गलती की हो:
- आपको जिस डायरेक्ट्री पर जाना है उसे आपकी मौजूदा वर्किंग डायरेक्ट्री से ऐक्सेस नहीं किया जा सकता.
- एक जैसी शुरुआत वाले नाम वाली दो डायरेक्ट्री हैं, जैसे कि
Documents
औरDownloads
. आपने ऑटोकंप्लीट सुविधा के लिए, यह जानने के लिए ज़रूरी जानकारी नहीं दी है कि आपको कौनसी डायरेक्ट्री चाहिए. आपने जो टाइप किया है उससे मिलती-जुलती डायरेक्ट्री की सूची देखने के लिए,tab
को फिर से दबाएं. इसके बाद, कुछ और वर्ण टाइप करें, ताकि सिर्फ़ एक मैच मिले. इसके बाद,tab
को फिर से दबाएं. - आपने शब्द के पहले हिस्से में पहले ही टाइपिंग की गड़बड़ी की है.
अगर आपको टैब कुंजी का इस्तेमाल करके, अपने निर्देशों को अपने-आप पूरा करने की आदत पड़ जाती है, तो आपको उन मुश्किल स्थितियों को हैंडल करने में आसानी होगी जब आपके निर्देश काम नहीं कर रहे हों.
पैरंट और चाइल्ड डायरेक्ट्री
डायरेक्ट्री और फ़ाइलों के बीच चाइल्ड और पैरंट रिलेशनशिप हो सकती है. अगर directory_b
, directory_a
के अंदर directory_a
है, तो directory_b
को directory_a
का चाइल्ड कहा जाता है. इसके बाद, directory_a
को directory_b
का माता-पिता/अभिभावक माना जाता है. अगर कोई तीसरा आइटम, my_file
, किसी directory_b
के अंदर है, तो उसे directory_b
का चाइल्ड और directory_a
का ग्रैंडचाइल्ड माना जाता है.
इन संबंधों को अक्सर फ़ोरम पर टेक्स्ट डायग्राम के साथ दिखाया जाता है. जैसे, यहां दिखाया गया है:
directory_a/ directory_b/ my_file
ध्यान दें कि डायरेक्ट्री के नाम /
से खत्म होते हैं, जबकि फ़ाइलों के नाम इससे खत्म नहीं होते. इस तरह के क्रमबद्ध संगठन को आम तौर पर, फ़ाइल सिस्टम का ट्री स्ट्रक्चर कहा जाता है.
भाई-बहन
अगर एक ही लेवल पर कई फ़ाइलें या फ़ोल्डर मौजूद हैं, तो उन्हें सिबलिंग कहा जाता है. उदाहरण के लिए, अगर file_b
और file_c
, directory_a
के अंदर मौजूद हैं, तो वे सिबलिंग हैं.
वह टेक्स्ट डायग्राम कुछ ऐसा दिखेगा:
directory_a/ file_b file_c
ध्यान दें कि file_b
और file_c एक ही लेवल पर हैं. इसलिए, इन्हें एक ही लेवल पर इंडेंट किया गया है.
फ़ाइल पाथ
यहां एक ज़्यादा कॉम्प्लेक्स टेक्स्ट डायग्राम दिया गया है, जिसमें पैरंट-चाइल्ड और सिबलिंग, दोनों तरह के संबंध दिखाए गए हैं.
north_america/ united_states/ new_york/ new_york_city/ manhattan queens staten_island bronx brooklyn california/ mountain_view los_angeles illinois/ chicago mexico/ mexico_city
इस उदाहरण में, new_york_city/
डायरेक्ट्री का नाम है. हालांकि, इसमें पाथ भी है, जिसमें बताया गया है कि वहां कैसे पहुंचें: ~/north_america/united_states/new_york/new_york_city/
.
डायरेक्ट्री को new_york_city/,
में बदलने के लिए, नामों का इस्तेमाल करके चरणों में नेविगेट किया जा सकता है. इसके अलावा, पाथ का इस्तेमाल करके एक ही कमांड में वहां तक नेविगेट किया जा सकता है.
# Option 1: in four steps, using directory names.
cd ~ # navigate home, where these folders are located
cd north_america/
cd united_states/
cd new_york/
cd new_york_city/
# Option 2: in one step, using the path.
cd ~/north_america/united_states/new_york/new_york_city/
नेविगेशन कमांड की खास जानकारी
# See your current location - abbreviation for 'print working directory'
pwd
# Change to a new location - abbreviation for 'change directory'
cd ~/Downloads
# Navigates into a child directory called `some_directory`
# Only works if `some_directory` is a child of the current directory
cd some_directory
# Navigates into the parent of the current directory
# `..` is shorthand for parent.
cd ..
# Will take you back home
cd
छोटे-छोटे चैलेंज
pwd
का इस्तेमाल करके, यह पता लगाएं कि आप फ़िलहाल किस फ़ोल्डर में हैं.- किसी दूसरी डायरेक्ट्री पर जाएं और नई जगह की पुष्टि करें.
- फिर से कोशिश करें और किसी दूसरे फ़ोल्डर पर जाएं. अपनी जगह की जानकारी देखने के लिए, नई कमांड का इस्तेमाल करें. साथ ही, इस डायरेक्ट्री में मौजूद फ़ाइलें देखें.
फ़ाइलें और डायरेक्ट्री बनाना
सेक्शन फ़्रेम करना और उसका मकसद
डेवलपर के तौर पर, हमें कोड वाली फ़ाइलें बनानी होंगी. इन फ़ाइलों को व्यवस्थित रखने के लिए, हमें फ़ोल्डर / डायरेक्ट्री बनाने होंगे, जहां हम अपनी फ़ाइलें स्टोर कर सकें.
फ़ाइलें और फ़ोल्डर बनाने से पहले, टर्मिनल में अपनी जगह के बारे में जान लें.
# See your current location.
pwd
कोई फ़ाइल बनाने के लिए, touch
कमांड का इस्तेमाल करें. इसके बाद, फ़ाइल का नाम डालें.
# `touch` creates a new file.
touch style.css
फ़ाइलें बनाते समय, टाइप तय करने के लिए फ़ाइल एक्सटेंशन जोड़ें. फ़ाइल टाइप के उदाहरण:
.js
इसे JavaScript फ़ाइल के तौर पर सेव करो.html
एचटीएमएल फ़ाइल बनाना.css
सीएसएस फ़ाइल बनाता है.md
एक मार्कडाउन फ़ाइल बनाता है
फ़ाइल के नामों में स्पेस नहीं होना चाहिए.
# make a file - this will create a file in the current folder
touch my_text_file.txt
# make a file - this will create a file on the desktop
touch ~/Desktop/my_new_style_sheet.css
कई फ़ाइलें बनाना
नामों के बीच स्पेस डालकर, एक साथ कई फ़ाइलें बनाई जा सकती हैं.
# make multiple files - this will create multiple files in the current folder
touch my_new_js_file.js my_new_html_file.html my_second_html_file.html
डायरेक्ट्री बनाना
कोई डायरेक्ट्री / फ़ोल्डर बनाने के लिए, mkdir
कमांड का इस्तेमाल करें. यह ‘मेक डायरेक्ट्री' का संक्षिप्त रूप है. इसके बाद, फ़ोल्डर का नाम डालें.
# make a folder - this will create a directory in the current folder
mkdir my_new_folder
# make a folder - this will create a directory on your desktop
mkdir ~/Desktop/my_new_desktop_folder
एक से ज़्यादा डायरेक्ट्री बनाना
एक साथ कई फ़ोल्डर बनाने के लिए, हर फ़ोल्डर के नाम के बीच में स्पेस डालें.
# make multiple folders - this will create multiple folders in the current
# directory
mkdir folder_one folder_two folder_three
छोटे-छोटे चैलेंज
- एक नई फ़ाइल बनाएं.
- एक ही निर्देश से कई फ़ाइलें बनाएं.
- नई डायरेक्ट्री बनाएं.
- कुछ और नई डायरेक्ट्री बनाएं. इसके लिए, सिर्फ़ एक कमांड का इस्तेमाल करके देखें.
- निर्देशिकाओं पर नेविगेट करने और फ़ाइलें और फ़ोल्डर बनाने के बारे में अपनी जानकारी का इस्तेमाल करके, फ़ाइलों और फ़ोल्डर का इस्तेमाल करके अपने डेस्कटॉप पर ‘family_tree' बनाएं.
डेटा ट्रांसफ़र करना और कॉपी करना
फ़ाइलों और डायरेक्ट्री को एक जगह से दूसरी जगह ले जाना
सेक्शन फ़्रेम करना और उसका मकसद
हम कमांड लाइन पर किसी फ़ाइल या फ़ोल्डर की जगह बदल सकते हैं. हालांकि, हमें हमेशा तीन चीज़ें तय करनी होती हैं:
- हम
mv
कमांड का इस्तेमाल करते हैं. यह move का संक्षिप्त रूप है. - ले जाने के लिए, फ़ाइल या फ़ोल्डर का नाम डालें.
- फ़ाइल के नाम के बाद, उस जगह का नाम लिखें जहां आपको फ़ाइल को ले जाना है.
उदाहरण के लिए, अगर आपके पास इस तरह का फ़ाइल स्ट्रक्चर है:
my_child_folder/ my_parent_folder/
आपको दिख रहा होगा कि इसे सही तरीके से व्यवस्थित नहीं किया गया है. इन्हें पैरंट और चाइल्ड के तौर पर व्यवस्थित किया जाना चाहिए, जबकि इन्हें भाई-बहन के तौर पर व्यवस्थित किया गया है. इस कमांड का इस्तेमाल करें:
# move a directory - this will move the folder `my_child_folder` into the
# folder named `my_parent_folder` that is in the current folder
mv my_child_folder/ my_parent_folder/
इससे मिलने वाला स्ट्रक्चर कुछ ऐसा दिखेगा.
my_parent_folder/ my_child_folder/
यहां mv
कमांड के कुछ अन्य वर्शन दिए गए हैं:
# move a directory - this will move the folder `my_folder` into the file named
# `my_desktop_folder` that is located on the Desktop
mv my_folder ~/Desktop/my_desktop_folder
# move a file - this will move the file `my_file.txt` into the file named
# `my_folder` that is in the current folder
mv my_file.txt my_folder
# move a file - this will move the file `my_file.txt` into the file named
# `my_desktop_folder` that is located on the Desktop
mv my_file.txt ~/Desktop/my_desktop_folder
चेतावनी: mv
का इस्तेमाल, mv old_name new_name
सिंटैक्स का इस्तेमाल करके किसी फ़ाइल का नाम बदलने के लिए भी किया जाता है. इसका मतलब है कि अगर किसी ऐसी डायरेक्ट्री में फ़ाइल को ले जाया जाता है जो मौजूद नहीं है या डेस्टिनेशन का नाम गलत लिखा जाता है, तो फ़ाइल को ले जाने के बजाय उसका नाम बदल दिया जाएगा.
छोटे-छोटे चैलेंज
- पांच टेक्स्ट (.txt) फ़ाइलें बनाओ.
- नई डायरेक्ट्री बनाएं.
- आपने जो पांच फ़ाइलें बनाई हैं उन्हें फ़ोल्डर में ले जाएं.
- एक फ़ोल्डर बनाएं और इस नए फ़ोल्डर को किसी दूसरे फ़ोल्डर में ले जाएं.
फ़ाइलें और डायरेक्ट्री कॉपी करना
सेक्शन फ़्रेम करना और उसका मकसद
वेब ऐप्लिकेशन बनाते समय, हमें किसी फ़ाइल को डुप्लीकेट करने की ज़रूरत पड़ सकती है. अगर हम एक जैसे दो वेबपेज बना रहे हैं, तो हम शुरू से काम नहीं करना चाहेंगे. साथ ही, cp
(कॉपी) कमांड का सिंटैक्स, mv
सिंटैक्स से मिलता-जुलता है.
किसी फ़ाइल को कॉपी करना
कॉपी करने के निर्देश में तीन हिस्से होते हैं:
cp
कमांड - copy के लिए छोटा नाम- कॉपी की जाने वाली फ़ाइल का नाम
- कॉपी का नाम (अगर उसे उसी फ़ोल्डर में रखा जा रहा है) या फ़ोल्डर का नाम और जगह (अगर उसे किसी दूसरे फ़ोल्डर में ले जाया जा रहा है).
# Copy a file named `my_file.txt` to a file called `my_file_copy.txt`
# The copy will be located in your Documents folder.
cp my_file.txt ~/Documents/my_file_copy.txt
# Copy a file named `my_file.txt` to a file called `my_file_copy.txt`.
# Since no directory was specified, this will occur within the same folder.
cp my_file.txt my_file_copy.txt
अगर आपको कॉपी का नाम ओरिजनल फ़ाइल के नाम जैसा ही रखना है, तो फ़ाइल के नाम के बिना कॉपी की जगह तय की जा सकती है.
# Copy a file named `my_file.txt` to your Documents folder.
# The destination ends with a directory, so the copy will have the same name.
cp my_file.txt ~/Documents/
एक ही नाम की कई फ़ाइलें होने से भ्रम हो सकता है. इसलिए, इस तरीके का इस्तेमाल सिर्फ़ तब करें, जब आपको यकीन हो कि आपको यही तरीका अपनाना है.
किसी डायरेक्ट्री को कॉपी करना
किसी फ़ोल्डर या डायरेक्ट्री को कॉपी करना थोड़ा मुश्किल है, क्योंकि हो सकता है कि आपको सिर्फ़ फ़ोल्डर ही नहीं, बल्कि उसमें मौजूद सारा कॉन्टेंट भी कॉपी करना हो.
cp -R
कमांड - copy recursive का छोटा नाम - इसका इस्तेमाल खाली और भरे हुए, दोनों तरह के फ़ोल्डर के लिए करें- सोर्स का नाम (वह फ़ोल्डर या फ़ाइल जिसे हमें दूसरी जगह ले जाना है)
- कॉपी का नाम (अगर उसे उसी फ़ोल्डर में रखा जा रहा है) या फ़ोल्डर का नाम और जगह (अगर उसे किसी दूसरे फ़ोल्डर में ले जाया जा रहा है).
चेतावनी: कॉपी का नाम तय करते समय, अगर फ़ाइल या फ़ोल्डर पहले नहीं बनाया गया था, तो कॉपी बनाते समय उसे बना दिया जाएगा. अगर फ़ाइल को कॉपी करने का निर्देश देने से पहले ही बना लिया गया था, तो फ़ाइल में मौजूद सारा डेटा मिट जाएगा. इसलिए, सावधानी बरतें!
# copy a directory named `my_folder` from your Desktop folder to a folder
# called `my_folder_copy` in your Documents folder
cp -R ~/Desktop/my_folder ~/Documents/my_folder_copy
# copy a file named `my_file.txt` from your Desktop folder to your Documents
# folder
cp -R my_folder my_folder_copy
ध्यान दें: cp -R
के -R
कॉम्पोनेंट को फ़्लैग कहा जाता है. फ़्लैग हमेशा डैश से शुरू होते हैं. इनका इस्तेमाल कमांड के साथ किया जाता है, ताकि यह बताया जा सके कि कमांड को कैसे लागू करना है.
छोटे-छोटे चैलेंज
my_original.txt
नाम की फ़ाइल बनाएं- उसी फ़ोल्डर में
my_original.txt
की एक कॉपी बनाएं और उसे कोई नया नाम दें. - नई डायरेक्ट्री बनाएं.
- उस डायरेक्ट्री की कॉपी बनाएं, लेकिन उसे कोई दूसरा नाम दें.
- दूसरे चरण में कॉपी की गई फ़ाइल की एक कॉपी बनाएं. हालांकि, इसे चौथे चरण में कॉपी की गई डायरेक्ट्री में रखें.
फ़ाइलें और फ़ोल्डर हटाना
सेक्शन फ़्रेम करना और उसका मकसद
हम कमांड लाइन पर फ़ाइलों और फ़ोल्डर को मिटा सकते हैं. हालांकि, ऐसा करने से वे हमेशा के लिए मिट जाते हैं.
किसी फ़ाइल को हटाना
किसी फ़ाइल को हटाने के लिए, हम rm
(हटाएं का छोटा नाम) कमांड का इस्तेमाल कर सकते हैं. इसके बाद, फ़ाइल का नाम डालें.
# delete a file in the working directory
rm unwanted_file.txt
# delete a file not in the working directory
rm ~/Desktop/unwanted_file.txt
खाली डायरेक्ट्री को हटाना
किसी खाली डायरेक्ट्री को हटाने के लिए, हम rmdir
कमांड का इस्तेमाल कर सकते हैं. यह डायरेक्ट्री हटाएं का संक्षिप्त रूप है. इसके बाद, फ़ोल्डर का नाम डालें.
# delete an empty folder
rmdir empty_directory
# delete an empty folder
rmdir ~/Documents/my_files/empty_directory
ऐसी डायरेक्ट्री को हटाना जिसमें फ़ाइलें मौजूद हैं
खाली न हो चुके फ़ोल्डर को हटाने के लिए, हमें rm
कमांड के बाद -R
फ़्लैग लगाना होगा. यह रिकर्सिव का संक्षिप्त रूप है. इससे कंप्यूटर को फ़ोल्डर के अंदर मौजूद कॉन्टेंट को मिटाने का निर्देश मिलता है. शॉर्टकट के तौर पर, कुछ डेवलपर -Rf
फ़्लैग का इस्तेमाल करते हैं. यह फ़्लैग, सभी फ़ाइलों को ज़बरदस्ती हटा देता है. ऐसा न करने पर, आपको कुछ सब-फ़ाइलों या फ़ोल्डर को मिटाने के बारे में सूचनाएं मिल सकती हैं.
# delete a folder which contains other files or folders
rm -R directory_which_isnt_empty
# delete a folder which contains other files or folders
rm -R ~/Downloads/directory_which_isnt_empty
चेतावनी: rm
कमांड का इस्तेमाल, रीसाइकल बिन या ईमेल के मिटाए गए सेक्शन की तरह नहीं होता. इन फ़ाइलों को आसानी से वापस नहीं लाया जा सकता. इस तरीके से फ़ाइलें मिटाते समय, बहुत ज़्यादा सावधानी बरतें.
छोटे-छोटे चैलेंज
- चार फ़ाइलें बनाओ.
- दो फ़ाइलें मिटा दी गई हैं.
- कोई फ़ोल्डर बनाएं.
- कोई दूसरा फ़ोल्डर बनाएं और इस फ़ोल्डर में कोई फ़ाइल बनाएं.
- दोनों डायरेक्ट्री मिटा दें.
आपको इस लैब का कोड, GitHub से डाउनलोड की गई छात्र-छात्राओं की रिपॉज़िटरी के इस फ़ोल्डर में मिलेगा: command-line/labs/around-the-world
बैकग्राउंड
विदेश में आपका सेमेस्टर शुरू होने वाला है. इसलिए, अब आपको यूरोप की यात्राओं की योजना बनानी चाहिए...
आपको आने वाले तीन महीनों में, कुछ समय के लिए कहीं घूमने जाना है. इसलिए, आपको यह पक्का करना है कि हर वीकेंड की यात्रा का पूरा फ़ायदा मिले.
खुशी की बात यह है कि आपको शुरुआत से कुछ नहीं करना है. आपके दोस्तों ने आपको विदेश में बिताए अपने सेमेस्टर की कुछ पसंदीदा गतिविधियों के बारे में बताया है. माफ़ करें, कुछ फ़ाइलें मिक्स हो गई हैं...
चिंता न करें, कमांड लाइन की मदद से, इन समस्याओं को तुरंत ठीक किया जा सकता है!
टास्क
पक्का करें कि हर शहर सही देश में हो और हर शहर के फ़ोल्डर में सही स्मारक मौजूद हों. इसलिए, ध्यान से खोजें. ऐसा न हो कि आप एफ़िल टावर को एम्सटर्डम में ढूंढने लगें!
अगर आपको इस पर पक्का भरोसा है, तो अपने जीयूआई को छिपाएं और इस चुनौती का सामना सीधे कमांड लाइन से करें. यह सब करते समय, आपको दुनिया भर के सामान्य फ़ोल्डर में रहना चाहिए. इसका मतलब है कि फ़ोल्डर और फ़ाइलों का रेफ़रंस देते समय, ऐब्सलूट पाथ का इस्तेमाल करना!
जब आपको लगे कि सब कुछ सही जगह पर है, तब अगले कुछ महीनों के लिए कमान अपने हाथ में लें. उन नए शहरों, देशों, और स्मारकों के बारे में सोचें जिन्हें आपको देखना है. इसके बाद, उन्हें अपने फ़ाइल ट्री में जोड़ें!
बधाई हो! आपने कंप्यूटर से बात करने का तरीका सीख लिया है. क्या आप इसे एक कदम आगे ले जाने के लिए तैयार हैं? आइए, एक्सटेंशन के बारे में बात करते हैं...
एक्सटेंशन
- अपनी सभी फ़ाइलों को फिर से मिक्स करें. इसके बाद, अपनी पसंद के किसी शहर में जाएं. उस शहर में रहकर, फ़ाइलों को फिर से व्यवस्थित करें.
- नीचे दिए गए लिंक पर जाकर, कमांड लाइन वाले मज़ेदार गेम आज़माएं
टर्मिनस गेम
ऐडवांस गेम (Google पर खोज करने के लिए तैयार रहें) - क्या आप स्टार वॉर्स के बहुत बड़े प्रशंसक हैं? अपनी कमांड लाइन में
telnet towel.blinkenlights.nl
चलाकर देखें और Enter दबाएं.... (ध्यान दें कि MacOS के नए वर्शन में,telnet
कमांड डिफ़ॉल्ट रूप से इंस्टॉल नहीं होती है. ऐसे में,nc towel.blinkenlights.nl 23
कमांड का इस्तेमाल किया जा सकता है.)
आपको इस लैब का कोड, GitHub से डाउनलोड की गई छात्र-छात्राओं की रिपॉज़िटरी के इस फ़ोल्डर में मिलेगा: command-line/labs/bashing-away-repetition
क्या आपको कमांड लाइन का रोज़ाना इस्तेमाल करने के दौरान, एक ही काम को बार-बार करने से बचना है? बहुत बढ़िया, मुझे भी!
बैकग्राउंड
अगर प्रोग्रामर को किसी चीज़ से नफ़रत होती है, तो वह है दोहराव. कंप्यूटर वैज्ञानिक होने के नाते, हमारा काम यह है कि हम कंप्यूटर से ज़्यादा से ज़्यादा काम करवाएं. बैश स्क्रिप्ट लिखने से, कमांड लाइन का इस्तेमाल ज़्यादा असरदार तरीके से किया जा सकेगा.
सबसे पहले, क्या है बैश स्क्रिप्ट?
बहुत अच्छा सवाल है. शुक्र है कि हमारे दोस्त Ryan Chadwick ने इस बेहतरीन जगह पर कमांड लाइन ट्यूटोरियल के बारे में बताया है.
बैश स्क्रिप्ट की मदद से, हम कार्रवाइयों की एक सीरीज़ तय कर सकते हैं. इसके बाद, कंप्यूटर उन कार्रवाइयों को अपने-आप पूरा कर देगा. हमें खुद कमांड डालने की ज़रूरत नहीं पड़ेगी. अगर कोई टास्क बार-बार किया जाता है या वह दोहराया जाता है, तो स्क्रिप्ट एक उपयोगी टूल हो सकता है.
क्या एक ही जानकारी को बार-बार नहीं दोहराया गया है? मैं इसी के बारे में बात कर रहा/रही हूँ.
ट्यूटोरियल
सबसे पहले, अपनी स्क्रिप्ट चलाने के लिए, आपको अपने कंप्यूटर को अनुमति देनी होगी. इसके लिए, यहां दिया गया निर्देश चलाएं.
chmod 755 myScript.sh
ठीक है, अब अपना पहला प्रोग्राम लिखें. myScript.sh
पर जाएं. देखें कि कमांड लाइन से फ़ाइल खोली जा सकती है या नहीं. फ़ाइल के आखिर में, यह जोड़ें:
echo "Hello World"
अब चलाएं:
./myScript.sh
टर्मिनल में दिखती है. ** TA DA ** आपको अपने टर्मिनल में "Hello World" लिखा हुआ दिखेगा.
बैश स्क्रिप्ट में लिखा गया हर कोड, टर्मिनल में टाइप किए गए कोड की तरह ही काम करेगा. एक्सटेंशन के बारे में जानने से पहले, आइए एक और उदाहरण देखें. सबसे पहले अपनी स्क्रिप्ट के लिए एक फ़ाइल बनाएं. इसे अपनी पसंद का कोई भी नाम दिया जा सकता है, लेकिन इसका एक्सटेंशन .sh
होना चाहिए. इसके बाद, पक्का करें कि आपने अपनी स्क्रिप्ट को चलाने की अनुमति दी हो. इसके लिए, अपने टर्मिनल में chmod 755
और फिर अपनी स्क्रिप्ट का नाम टाइप करें. इसके बाद, Enter दबाएं. हर बार नई बैश स्क्रिप्ट शुरू करते समय, आपको इन दोनों चरणों को पूरा करना होगा.
इंट्रो चैलेंज
अब, एक ऐसी स्क्रिप्ट लिखते हैं जो नया फ़ोल्डर बनाती है. हमें किस कमांड से पता चलता है कि नया फ़ोल्डर बनाया गया है? अगर आपको कोई ऐसा शब्द याद आ रहा है जो m
से शुरू होता है और kdir
पर खत्म होता है, तो आपका जवाब सही है. .sh
फ़ाइल में, नया फ़ोल्डर बनाने और उसे कोई अच्छा नाम देने के लिए कमांड लिखें. इसके बाद, उसे अपने टर्मिनल में चलाएं.
अगर इससे समस्या हल हो जाती है, तो यहां दी गई अन्य समस्याओं को हल करने के लिए आगे बढ़ें. अगर आपको अब भी कुछ समझ नहीं आ रहा है, तो 'दुनिया भर में' लैब में जाकर देखें कि आपने देश और शहर के नए फ़ोल्डर कैसे बनाए थे.
ऊपर दिए गए लिंक पर जाकर ट्यूटोरियल देखें. साथ ही, Google पर खोज करने की अपनी बेहतरीन स्किल्स का इस्तेमाल करें. ऐसी स्क्रिप्ट लिखें और चलाएं जो ये काम करती हों:
मुख्य टास्क
- ऊपर बनाई गई फ़ाइल में एक ऐसा निर्देश जोड़ें जो आपको बनाए जा रहे फ़ोल्डर में ले जाए. (हम डायरेक्ट्री बदलने के लिए किस कमांड का इस्तेमाल करते हैं?)
- अपने नए फ़ोल्डर के नाम में तारीख जोड़ें. उदाहरण के लिए, आपके प्रोग्राम को "
2017-12-07my_super_cool_folder
" नाम का फ़ोल्डर बनाना चाहिए
- यह "मेरी मौजूदा डायरेक्ट्री यह है: " के बाद आपकी वर्किंग डायरेक्ट्री और "इस डायरेक्ट्री में मौजूद सभी फ़ाइलों की सूची यहां दी गई है! " के बाद आपकी मौजूदा डायरेक्ट्री का कॉन्टेंट दिखता है.
- अपनी बैश स्क्रिप्ट को इनपुट देने का तरीका जानें. साथ ही, उस इनपुट स्ट्रिंग के आधार पर एक फ़ाइल बनाएं. इस लैब में पहले लिंक किए गए ट्यूटोरियल के वैरिएबल सेक्शन में, कुछ बेहतरीन उदाहरण दिए गए हैं.
- उपयोगकर्ता से उसका नाम पूछो. इसके बाद, "नमस्ते, आपसे मिलकर खुशी हुई insert their name here" प्रिंट करो
- उपयोगकर्ता से ज़्यादा जानकारी मांगें और उसके लिए अपनी पसंद के मुताबिक मैसेज बनाएं.
कॉन्टेक्स्ट
कमांड लाइन (या टर्मिनल) की मदद से, कंप्यूटर के ऑपरेटिंग सिस्टम (ओएस) के साथ सीधे इंटरैक्ट किया जा सकता है. ग्राफ़िकल यूज़र इंटरफ़ेस (जीयूआई) के सभी काम, टेक्स्ट कमांड के ज़रिए किए जा सकते हैं. जैसे, नेविगेशन, नई फ़ाइलें बनाना, और स्क्रिप्ट चलाना. फ़ाइलें खोलने के लिए कमांड लाइन का इस्तेमाल किया जाएगा. साथ ही, Google App Engine का इस्तेमाल करते समय, डेवलपमेंट एनवायरमेंट शुरू करने के लिए भी कमांड लाइन का इस्तेमाल किया जाएगा.
कमांड लाइन का इस्तेमाल
टर्मिनल को ऐक्सेस करना
Mac के लिए शॉर्टकट:
- Command + Space दबाकर, Spotlight खोलें.
- स्पॉटलाइट सर्च में Terminal टाइप करें.
टर्मिनल पर नेविगेट करना
# See your current location - abbreviation for 'print working directory'.
pwd
# Change to a new location - abbreviation for 'change directory'.
cd /Users/jsmith/Downloads
# Navigate into a child directory called `some_directory`. This only works if
# `some_directory` is a child of the current directory.
cd some_directory
# Navigate into the parent of the current directory. `..` is shorthand for parent.
cd ..
# Return home.
cd
# Change directories to a folder called `my_folder` that is within the current
# directory.
cd my_folder ```
#### File Path Shorthand `~`
The `~` is generally short for "home". Home can be configured to mean different
things for different users and across different operating systems, but in the
example above, for a Mac user named "jsmith", the `~` is short for that user's
home directory: `/Users/jsmith`.
This means that `~/Downloads` and `/Users/jsmith/Downloads` are the same for
this user. But starting with a `~` allows us to specify absolute file paths
(agnostic of your current working directory, and starting at the root `/`)
without having to write out a full path each time.
### <a id="view"></a>Viewing the Contents of Folders
```bash
# See files and folders in current location - this is an abbreviation for 'list'.
ls
फ़ाइलें और फ़ोल्डर बनाना
फ़ाइलें बनाना
# Make a file - this will create a file in the current folder.
touch my_text_file.txt
# Make a file - this will create a file on the Desktop.
touch ~/Desktop/my_new_style_sheet.css
# Make multiple files - this will create multiple files in the current folder.
touch my_new_js_file.js my_new_html_file.html my_second_html_file.html
फ़ोल्डर बनाना
# Make a folder - this will create a directory in the current folder.
mkdir my_new_folder
# Make a folder - this will create a directory on your Desktop.
mkdir ~/Desktop/my_new_desktop_folder
# Make multiple folders - this will create multiple folders in the current
# directory.
mkdir folder_one folder_two folder_three
फ़ाइलें और फ़ोल्डर मूव करना
फ़ाइलें ट्रांसफ़र करना
# Move a file - this will move the file `my_file.txt` into the folder named
# `my_folder` that is in the current folder.
mv my_file.txt my_folder
# Note that this will rename the file instead of moving it if the destination
# folder does not yet exist. Read below for more details on renaming.
# Move a file - this will move the file `my_file.txt` into the folder named
# `my_desktop_folder` that is located on the Desktop.
mv my_file.txt ~/Desktop/my_desktop_folder
फ़ोल्डर मूव किए जा रहे हैं
# Move a directory - this will move the folder `my_child_folder` into the
# folder named `my_parent_folder` that is in the current folder.
mv my_child_folder my_parent_folder
# Move a directory - this will move the folder `my_folder` into the folder
# named `my_desktop_folder` that is located on the Desktop.
mv my_folder ~/Desktop/my_desktop_folder
बदलाव का नाम बदलकर मूविंग कर दिया गया है
ध्यान रखें कि mv
का इस्तेमाल, फ़ाइलों या फ़ोल्डर का नाम बदलने के लिए भी किया जाता है.
# Rename a file from `old_name.txt` to `new_name.txt`.
mv old_name.txt new_name.txt
फ़ाइलें और फ़ोल्डर कॉपी करना
फ़ाइलें कॉपी की जा रही हैं
# Copy a file named `my_file.txt` from your Desktop folder to your Documents
# folder.
cp ~/Desktop/my_file.txt ~/Documents
# Copy a file named `my_file.txt` to a file called `my_file_copy.txt` within
# the same folder.
cp my_file.txt my_file_copy.txt
फ़ोल्डर कॉपी किए जा रहे हैं
# Copy a directory named `my_folder` (and its contents) from your Desktop
# folder to a folder called `my_folder_copy` in your Documents folder.
cp -r ~/Desktop/my_folder ~/Documents/my_folder_copy
# Copy a directory named `my_folder` (and its contents) from the current
# working directory to a folder called `my_folder_copy` in the current working
# directory.
cp -r my_folder my_folder_copy
फ़ाइलें और फ़ोल्डर मिटाना
फ़ाइलें मिटाना
# Delete a file in the current working directory.
rm unwanted_file.txt
# Delete a file using its exact location and name.
rm ~/Desktop/unwanted_file.txt
फ़ोल्डर मिटाना
# Delete an empty folder.
rmdir empty_directory
# Delete a folder which contains other files or folders.
rm -r directory_which_isnt_empty
सुझाव और तरकीबें
- कमांड लाइन का इस्तेमाल करने की आदत डालें. भले ही, आपको इसकी ज़रूरत न हो. समय के साथ-साथ, आपको इसमें बेहतर नतीजे मिलेंगे.
tab
बटन दबाने पर, आपकी फ़ाइल या फ़ोल्डर का नाम अपने-आप पूरा हो जाएगा. हालांकि, यह केस-सेंसिटिव हो सकता है.- अगर मेल खाने वाली सिर्फ़ एक फ़ाइल या फ़ोल्डर बचा है, तो वह अपने-आप पूरा हो जाएगा.
- अगर मिलती-जुलती कई फ़ाइलें या फ़ोल्डर हैं, तो बाकी मिलते-जुलते फ़ोल्डर की सूची देखने के लिए, Tab को दो बार दबाएं.
- ऊपर / नीचे वाले ऐरो का इस्तेमाल करके, अपने निर्देशों के इतिहास पर वापस जाया जा सकता है. इससे आपको निर्देशों को फिर से टाइप नहीं करना पड़ेगा.
- टर्मिनल विंडो से सभी डेटा मिटाने के लिए,
clear
कमांड का इस्तेमाल करें. इससे आपका पिछला सारा काम सेव रहता है. इसे देखने के लिए ऊपर की ओर स्क्रोल करें. - टर्मिनल को फिर से शुरू करने के लिए,
reset
का इस्तेमाल करें. इससे आपकी स्क्रीन पर पहले से मौजूद काम नहीं दिखेगा. हालांकि, अगर टर्मिनल ठीक से काम नहीं कर रहा है, तो इससे कई समस्याएं हल हो सकती हैं. - कर्सर को एक शब्द आगे या पीछे ले जाने के लिए,
option
+arrow
दबाएं
सबसे सही तरीकों की खास जानकारी
cd
,cd ..
याcd <folder name>
का इस्तेमाल करके, टर्मिनल पर जाएं.ls
का इस्तेमाल करके, फ़ोल्डर का कॉन्टेंट देखें.touch
का इस्तेमाल करके फ़ाइलें बनाएं.mkdir
का इस्तेमाल करके फ़ोल्डर बनाएं.mv <item to move> <destination>
का इस्तेमाल करके, फ़ाइलों और फ़ोल्डर को ले जाएं.cp <item to copy> <destination>
का इस्तेमाल करके, फ़ाइलें और फ़ोल्डर कॉपी करें.rm <item to remove>
का इस्तेमाल करके, फ़ाइलें और फ़ोल्डर मिटाएं.
Question 1
मौजूदा वर्किंग डायरेक्ट्री की पहचान करने के लिए, इनमें से किसका इस्तेमाल किया जाएगा?
pwd
ls
cd
mkdir
touch
दूसरा सवाल
मौजूदा वर्किंग डायरेक्ट्री से दो लेवल ऊपर कैसे जाया जा सकता है?
mv ~
cd ../..
mv up/up
cd ^(2)
तीसरा सवाल
किसी फ़ाइल का नाम बदलने के लिए, किस कमांड का इस्तेमाल किया जाएगा?
mv
cd
ls
python
rename
Question 4
mv script.py
कमांड से गड़बड़ी क्यों हो सकती है?
- क्योंकि ‘
script.py
' फ़ाइल का अमान्य नाम है. - क्योंकि
mv
कमांड के बाद कोई और जानकारी नहीं दी जा सकती. - यह एक मुश्किल सवाल है. इससे कोई गड़बड़ी नहीं होगी.
- किसी फ़ाइल को दूसरी जगह ले जाने के लिए, कम से कम दो आर्ग्युमेंट की ज़रूरत होती है. पहला, टारगेट और दूसरा, डेस्टिनेशन
पांचवां सवाल
cd ~
कमांड क्या करेगा?
- अपनी वर्किंग डायरेक्ट्री को होम डायरेक्ट्री में बदलें.
- पिछले निर्देश को दोहराओ.
- इस समय सबसे काम का निर्देश तय करने के लिए, किसी एल्गोरिदम का इस्तेमाल करें.
- गड़बड़ी की जानकारी देता है.
छठा सवाल
फ़ाइल के नामों को अपने-आप पूरा करने के लिए टैब का इस्तेमाल न करने की वजह इनमें से कौनसी नहीं है?
- क्योंकि इससे समय बचता है.
- क्योंकि इससे स्पेलिंग की गड़बड़ियों को ठीक करने में मदद मिलती है.
- ऐसा इसलिए, क्योंकि इसमें प्रोसेसिंग पावर की कम ज़रूरत होती है.
सातवां सवाल
अगर कोई नया डेवलपर "my script.py
" नाम की फ़ाइल बनाता है, तो touch my script.py
कमांड काम क्यों नहीं करेगी?
- क्योंकि
touch
नई फ़ाइलें नहीं बना सकता. - क्योंकि
.py
एक मान्य फ़ाइल एक्सटेंशन नहीं है. - ऐसा इसलिए, क्योंकि यह सिर्फ़ एक फ़ाइल बनाने के बजाय दो फ़ाइलें बनाएगा. एक फ़ाइल का नाम "
my
" होगा और दूसरी फ़ाइल का नाम "script.py
" होगा. - ऐसा इसलिए है, क्योंकि कमांड लाइन से नई फ़ाइलें नहीं बनाई जा सकतीं.
Question 1
मौजूदा वर्किंग डायरेक्ट्री की पहचान करने के लिए, इनमें से किसका इस्तेमाल किया जाएगा?
pwd
दूसरा सवाल
मौजूदा वर्किंग डायरेक्ट्री से दो लेवल ऊपर कैसे जाया जा सकता है?
cd ../..
से, आपको दो लेवल ऊपर ले जाया जाता है. हर ..
का मतलब है कि आपको एक लेवल ऊपर ले जाया गया है.
तीसरा सवाल
किसी फ़ाइल का नाम बदलने के लिए, किस कमांड का इस्तेमाल किया जाएगा?
mv
का इस्तेमाल, किसी फ़ाइल को एक जगह से दूसरी जगह ले जाने के लिए किया जाता है. इसका इस्तेमाल फ़ाइल का नाम बदलने के लिए भी किया जा सकता है.
Question 4
mv script.py
कमांड से गड़बड़ी क्यों हो सकती है?
mv
कमांड के लिए, दो आर्ग्युमेंट की ज़रूरत होती है. पहला, सोर्स फ़ाइल और दूसरा, डेस्टिनेशन फ़ाइल.
पांचवां सवाल
cd ~
कमांड क्या करेगा?
इससे आपकी वर्किंग डायरेक्ट्री, होम डायरेक्ट्री में बदल जाएगी. खास वर्ण ~ का इस्तेमाल, मौजूदा उपयोगकर्ता की होम डायरेक्ट्री की पहचान करने के लिए किया जाता है. इसका इस्तेमाल किसी दूसरे उपयोगकर्ता नाम के साथ भी किया जा सकता है: ~user2, ताकि उसके होम फ़ोल्डर पर पहुंचा जा सके.
छठा सवाल
फ़ाइल के नामों को अपने-आप पूरा करने के लिए टैब का इस्तेमाल न करने की वजह इनमें से कौनसी नहीं है?
इसके लिए कम प्रोसेसिंग पावर की ज़रूरत होती है, यह जवाब सही नहीं है. tab
को फ़ोल्डर स्कैन करने के लिए, प्रोसेसिंग पावर की ज़रूरत होती है. हालांकि, यह ज़रूरत बहुत कम होती है. इससे फ़ाइल के नाम को अपने-आप पूरा किया जा सकता है. साथ ही, इससे समय की बचत होती है और स्पेलिंग की गलतियां नहीं होती हैं.
सातवां सवाल
अगर कोई नया डेवलपर "my script.py
" नाम की फ़ाइल बनाता है, तो touch my script.py
कमांड काम क्यों नहीं करेगी?
इससे सिर्फ़ एक फ़ाइल के बजाय दो फ़ाइलें बनेंगी. touch
कमांड से नई फ़ाइलें बनेंगी. टर्मिनल में स्पेस, सेपरेटर होते हैं. इन्हें फ़ाइल के नाम में शामिल नहीं किया जाता. इनका इस्तेमाल न करना ही बेहतर है. हालांकि, अगर आपको इनका इस्तेमाल करना ही है, तो फ़ाइल के नाम को डबल कोट में रैप करें:
touch "my script.py"
Question 1
डायरेक्ट्री बदलने के लिए, टर्मिनल कमांड यह है:
move
mkdir
pwd
cd
दूसरा सवाल
अगर आपको अपनी मौजूदा वर्किंग डायरेक्ट्री के पैरंट फ़ोल्डर पर जाना है, तो कौनसा कमांड इस्तेमाल किया जाएगा?
cd up
cd .
cd ..
cd ~
तीसरा सवाल
फ़ाइलें बनाने के लिए, किस कमांड का इस्तेमाल किया जाता है?
touch
mkdir
create
pwd
Question 4
इनमें से कौनसी कमांड, index.html
और style.css
नाम की दो फ़ाइलें बनाएगी?
touch index.html, touch style.css
touch index.html, style.css
touch index.html style.css
touch index.html + style.css
पांचवां सवाल
किसी फ़ाइल या फ़ोल्डर का नाम बदलने के लिए, किस कमांड का इस्तेमाल किया जाता है?
rename
move
mv
rm
छठा सवाल
फ़ोल्डर पर काम करने के लिए, rm
और cp
कमांड को किस फ़्लैग की ज़रूरत होती है?
-f
-r
-x
-d
सातवां सवाल
projects
को ~/Documents
में ले जाने और उसका नाम बदलकर Projects
करने के लिए, खाली जगह में कौनसी कमांड डालनी होगी?
cd ~
mv projects ~/Documents
# fill in the blank here
mv projects Projects
pwd
cd projects
mv ~ projects
cd ~/Documents
ls
आठवां सवाल
नीचे दी गई कमांड से क्या होगा?
rm -r projects
projects
नाम की फ़ाइल मिटाओprojects
नाम का फ़ोल्डर मिटाएंprojects
नाम की फ़ाइल का नाम बदलें- मौजूदा डायरेक्ट्री के कॉन्टेंट में
projects
खोजें
Question 1
डायरेक्ट्री बदलने के लिए, टर्मिनल कमांड यह है:
डाइरेक्ट्री बदलने के लिए, टर्मिनल कमांड cd
है. यह कमांड, "change directory" का संक्षिप्त रूप है.
दूसरा सवाल
अगर आपको अपनी मौजूदा वर्किंग डायरेक्ट्री के पैरंट फ़ोल्डर पर जाना है, तो कौनसा कमांड इस्तेमाल किया जाएगा?
पैरंट फ़ोल्डर पर जाने के लिए, cd ..
कमांड का इस्तेमाल करें
तीसरा सवाल
फ़ाइलें बनाने के लिए, किस कमांड का इस्तेमाल किया जाता है?
फ़ाइलें बनाने के लिए, touch
कमांड का इस्तेमाल करें
Question 4
इनमें से कौनसी कमांड, index.html
और style.css
नाम की दो फ़ाइलें बनाएगी?
touch index.html style.css
कमांड से, दो फ़ाइलें बनेंगी. कॉमा लगाना ज़रूरी नहीं है. इस तरीके से, जितनी चाहें उतनी फ़ाइलें बनाई जा सकती हैं. हालांकि, फ़ाइलों के नाम के बीच स्पेस होना चाहिए.
पांचवां सवाल
किसी फ़ाइल या फ़ोल्डर का नाम बदलने के लिए, किस कमांड का इस्तेमाल किया जाता है?
हालांकि, इसका मतलब "जगह बदलना" होता है और इसका इस्तेमाल फ़ाइलों या फ़ोल्डर की जगह बदलने के लिए किया जा सकता है. mv
का इस्तेमाल, फ़ाइलों और फ़ोल्डर का नाम बदलने के लिए भी किया जा सकता है.
छठा सवाल
फ़ोल्डर पर काम करने के लिए, rm
और cp
कमांड को किस फ़्लैग की ज़रूरत होती है?
rm
और cp
कमांड को फ़ोल्डर पर काम करने के लिए, -r
फ़्लैग की ज़रूरत होती है. ऐसा इसलिए, क्योंकि -r
फ़्लैग का मतलब "रिकर्सिव" होता है. यह फ़्लैग, फ़ोल्डर में मौजूद किसी भी फ़ाइल और फ़ोल्डर के लिए कमांड को फिर से चलाता है.
सातवां सवाल
projects
को ~/Documents
में ले जाने और उसका नाम बदलकर Projects
करने के लिए, खाली जगह में कौनसी कमांड डालनी होगी?
cd ~
mv projects ~/Documents
# fill in the blank here
mv projects Projects
हम होम डायरेक्ट्री से शुरू करते हैं. इसलिए, हमें सही डायरेक्ट्री में फ़ाइनल कमांड चलाने के लिए, cd ~/Documents
चलाना होगा.
आठवां सवाल
नीचे दी गई कमांड से क्या होगा?
rm -r projects
यह कमांड, projects
नाम की किसी फ़ाइल या फ़ोल्डर को मिटा देगी, क्योंकि इसे -r
या रिकर्सिव फ़्लैग के साथ कॉल किया गया है. उस फ़्लैग के बिना, यह निर्देश सिर्फ़ उस नाम की फ़ाइल को मिटाने के लिए काम करेगा.