Linux/C2/Redirection-Pipes/Hindi

From Script | Spoken-Tutorial
Revision as of 11:56, 29 December 2014 by PoojaMoolya (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Time Narration
00:00 रिडाइरेक्शन और पाइप्स के बारे में इस स्पोकन ट्यूटोरियल में आपका स्वागत है।
00:07 मैं उबंटु 10.04 का उपयोग कर रही हूँ।
00:09 हम यह मानते हैं कि आपको पहले से ही लिनक्स ऑपरेटिंग सिस्टम के बारे में जानकारी है और कमांड्स के बारे में कुछ बुनियादी जानकारी है।
00:16 यदि आप इच्छुक हैं तो निम्नलिखित वेबसाइट पर यह दूसरे स्पोकन ट्यूटोरियल के माध्यम से उपलब्ध है।
00:22 यह भी ध्यान रहे कि लिनक्स केस सेंसिटिव है।
00:25 इस ट्यूटोरियल में उपयोगित सभी कमांड लोअर केस अन्यथा कथित हैं।
00:32 लिनक्स में अधिकांश कार्य हम टर्मिनल के माध्यम से करते है ।
00:35 जब हम कमांड का निष्पादन करते हैं हम साधारणतः कीबोर्ड से टाइप करते हैं।
00:39 मानिए कि हमें समय और दिनाँक पता करनी है
00:41 हम केवल कीबोर्ड से “डेट” टाइप करते हैं और एंटर दबाते हैं
00:46 अतः हम साधारणतः कीबोर्ड से इनपुट देते हैं।
00:48 उसी प्रकार हम देखते हैं कि हमारी कमांड का आउटपुट टर्मिनल विंडो पर भी प्रदर्शित होता है।
00:56 यह भी मानिए कि जब हम किसी कमांड को निष्पादित करते हैं कुछ एरर भी आते हैं
00:59 उदाहऱणस्वरूप हम केट स्पेस एएए (“cat space aaa”) ‘टाइप करते हैं और एंटर दबाते हैं।
01:05 अब एएए नाम से कोई भी फाइल मौजूद नहीं है
01:08 अतः वहाँ एक एरर प्रदर्शित होती है
01:10 अब यह एरर टर्मिनल विंडो पर भी आती है, इसलिए हम एरर रिपोर्टिंग टर्मिनल पर भी देखते हैं।
01:20 अब इनपुटिंग, आउटपुटिंग और एरर रिपोर्टिंग कमांड से संबंधित तीन विशेष कार्य हैं
01:24 रिडाइरेक्शन के बारे में खीखने से पहले हमें दो महत्वपूर्ण सिद्धातों के बारे में जानना चाहिए। जो है स्ट्रीम और फाइल डिस्क्रीप्टर (विवरणक)।
01:31 लिनक्स शेल जैसे के बैश , इनपुट को ग्रहण करता है और अनुक्रम के रूप या अक्षरों की स्ट्रीम में आउटपुट भेजता है ।
01:37 प्रत्येक अक्षर इसके एक पहले या इसके एक बाद से स्वतंत्र होता है।
01:41 स्ट्रीम्स तक फाइल आईओ तकनीकी का उपयोग करके पहुंचा जाता हैं ।
01:44 इससे कोई फर्क नहीं पड़ता कि अक्षरों की वास्तविक स्ट्रीम फाइल से आती है या फाइल , में जाती है , या कीबोर्ड , विंडो आदि से आती है ।
01:51 लिनक्स में प्रक्रिया की प्रत्येक ओपन(खुली) फाइल एक पूर्णांक संख्या के साथ संयुक्त होती है।
01:57 इस सांख्यिक वेल्यू को फाइल डिस्क्रीप्टर (विवरणक) के रूप में जाना जाता है।
02:05 लिनक्स शेल्स तीन स्टैन्डर्ड आईओ I/O स्ट्रीम का उपयोग करते हैं
02:08 इनमें से प्रत्येक सुपरिचित फाइल डिस्क्रीप्टर (विवरणक) के साथ संयुक्त होता है।
02:12 एसटीडीआईएन (stdin) स्टैन्डर्ड इनपुट स्ट्रीम है ।
02:15 यह कमांड को इनपुट उपलब्ध कराता है ।
02:17 यहाँ फाइल डिस्क्रीप्टर (विवरणक) शून्य (0) है।
02:19 stdout, स्टैन्डर्ड आउटपुट स्ट्रीम है।
02:22 यह कमांड से आउटपुट प्रदर्शित करता है, इसके पास फाइल डिस्क्रीप्टर (विवरणक) वन (1) है।
02:26 एसटीडीइआरआर(stderr ) स्टैन्डर्ड एरर स्ट्रीम है, यह एरर आउटपुट कमांड्स से प्रदर्शित करता है, यहाँ फाइल डिस्क्रीप्टर (विवरणक) टू (2) है।
02:36 इनपुट स्ट्रीम्स प्रोग्रामों को इनपुट उपलब्ध करता है ।
02:40 स्वतः से यह टर्मिनल कीस्ट्रोक्स से लेता है।
02:44 आउटपुट स्ट्रीम्स टर्मिनल पर स्वतः से टेक्स्ट अक्षरों को प्रिंट करता है
02:47 टर्मिनल पहले एक ASCII टाइपराइटर या डिसप्ले टर्मिनल था
02:52 लेकिन अब ग्राफिक डेस्क्टाप पर एक टेक्स्ट विंडो है।
02:56 हमने देखा कि स्वतः से 3 स्ट्रीम्स कुछ फाइलों से जुड़ें हैं
03:01 लेकिन लिनक्स में हम इस स्वतः व्यवहार को बदल सकते हैं।
03:04 हम इन 3 स्ट्रीमों को अन्य फाइलों से जोड़ सकते हैं।
03:07 इस प्रक्रिया को रिडाइरेक्शन कहते हैं।
03:09 अब देखते है कि 3 स्ट्रीमों में रिडाइरेक्शन कैसे होता है।
03:14 पहले देखते हैं कि स्टैन्डर्ड इनपुट कैसे रिडाइरेक्ट होता है
03:17 हम <(लेफ्ट ऐंगअल ब्रैकिट ) ऑपरेटर का उपयोग करके फाइल से स्टैन्डर्डएन (stdin) को रिडाइरेक्ट करेंगे। देखते है कैसे।
03:22 हम जानते हैं कि डब्ल्यू सी (wc) कमांड का उपयोग फाइल में अक्षरों, शब्दों और रेखाओं की संख्या जानने के लिए किया जाता है।
03:28 टर्मिनल विंडो पर डब्ल्यू सी (wc) टाइप करें ।
03:31 अब एंटर दबायें ।
03:32 क्या होता है? हम ब्लिंगकिंग कर्सर पायेंगे, इसका मतलब है कि हमें कीबोर्ड से एंटर करने की जरूरत है।
03:37 कुछ टेक्स्ट एंटर करें “This tutorial is very important” (यह ट्यूटोरियल बहुत महत्वपूर्ण है)।
03:46 अब एंटर दबायें।
03:48 अब Ctrl और d की साथ में दबायें।
03:52 अब कमांड उन रेखाओं पर कार्य करेगी जिन्हें हमने प्रविष्ट किया है।
03:55 कमांड टर्मिनल पर एक आउटपुट देगी।
03:57 अब यहाँ डब्ल्यूसी (wc) कमांड के बाद कोई भी फाइल नहीं दी गयी है ।
04:01 तो यह स्टैन्डर्ड इनपुट स्ट्रीम से इनपुट लेगा ।
04:04 अब स्टैन्डर्ड इनपुट स्ट्रीम स्वतः से कीबोर्ड से जुड़ जाती है। इसलिए डब्ल्यूसी (wc ) कीबोर्ड से इनपुट लेगा।
04:12 अब यदि हम डब्ल्यूसी स्पेस लेफ्ट हैंडेड ब्रेकेट स्पेस टेस्ट1 डोट टीएक्सटी ("wc space 'left-angled bracket" space test1 dot txt" ) लिखते हैं
04:19 क्या होता है कि डब्ल्यूसी हमें फाइल टेस्ट1 टीएक्सटी में अक्षरों, शब्दों और रेखाओं की संख्या बतायेगा।
04:27 अब डब्ल्यूसी स्पेस टेस्ट1 डोट टीएक्सटी("wc space test1 dot txt") टाइप करें
04:34 हमें समान परिणाम दिखता है
04:37 अतः फर्क क्या है?
04:39 जब हम डब्ल्यूसी स्पेस टेस्ट1 डोट टीएक्सटी लिखते हैं कमांड फाइल टेस्ट1 डोट टीएक्सटी को खोलती और उससे रीड़ (पढ़ती) करती है।
04:46 लेकिन जब हम डब्ल्यूसी स्पेस लेफ्ट ऐंगगल ब्रेकेट स्पेस टेस्ट1 डोट टीएक्सटी("wc space 'left-angled bracket' test1.txt") लिखते हैं , डब्ल्यूसी तब भी किसी फाइल को नहीं खोलता है।
04:53 इसके बजाय स्टैन्डर्डइन (stdin) से इनपुट लेने लगता है।
04:57 अब हम स्टैन्डर्डइन को फाइल टेस्ट1 डोट टीएक्सटी में निर्देशित करते हैं।
05:01 अतः कमांड टेस्ट1 से रीड(पढ़ती) करती है
05:04 लेकिन वास्तव में पता नहीं है कि स्टैन्डर्डइन (stdin) में डाटा कहाँ से आ रहा है।
05:10 अतः हमने देखा कि स्टैंडर्ड इनपुट को कैसे रिडाइरेक्ट करते हैं
05:12 अब देखते हैं कि स्टैंडर्ड आउटपुट और स्टैंडर्ड एरर को कैसे रिडाइरेक्ट करें,
05:17 यहाँ फाइल के लिए आउटपुट या एरर को रिडाइरेक्ट करने के दो मार्ग हैं।
05:20 मान लीजिए एन फाइल डिस्क्रीप्टर को संदर्भित करता है n>[नरेशन-एन ‘सिंगल राइट-एंगल्ड ब्रेकेट’] फाइल डिस्क्रीप्टर एन से फाइल तक आउटपुट रिडाइरेक्ट करता है
05:29 आपको फाइल को लिखने का अधिकार होना चाहिए।
05:32 यदि फाइल मौजूद नहीं है, तो बनाई जाती है ,
05:35 यदि यह मौजूद है तो बिना किसी सूचना के मौजूद विषय-वस्तुएँ सधारणतः लुप्त हो जाती हैं।
05:40 एन ‘डबल राइट-एंगल्ड ब्रेकेट’ भी फाइल के लिए फाइल डिस्क्रीप्टर एन से आउटपुट रिडाइरेक्ट करता है ।
05:47 फिर से आपको फाइल को लिखने का अधिकार होना चाहिए।
05:50 यदि फाइल मौजूद नहीं है, यह बनाई जाती है,
05:52 यदि यह मौजूद है तो आउटपुट मौजूदा फाइल से संलग्न होता है।
05:59 एन ‘सिंगल राइट-एंगल्ड ब्रेकेट या एन ‘डबल राइट-एंगल्ड ब्रेकेट में एन ,फाइल डिस्क्रीप्टर को संदर्भित करता है
06:05 यदि इसे हटा देते है तो स्टैंडर्ड आउटपुट , फाइल डिस्क्रीप्टर1 माना जाता है ।
06:10 इसलिए, >(राइट-एंगल्ड ब्रेकेट) 1> के समांतर है
06:15 लेकिन एरर स्ट्रीम को रिडाइरेक्ट करने के लिए आपको 2>या 2>> का उपयोग करना पड़ेगा।
06:22 अब इसे व्यावहारिक रूप में देखते हैं
06:24 पिछले उदाहरण में हमने देखा कि फाइल या स्टैंडर्डएन (stdin) में डब्ल्यूसी कमांड का परिणाम टर्मिनल विंडो पर प्रदर्शित होता है।
06:31 क्या होगा यदि हम इसे टर्मिनल पर प्रदर्शित नहीं करना चाहते?
06:34 हम इसे फाइल में स्टोर करना चाहते हैं। ताकि जानकारी बाद में इस्तेमाल की जा सके।
06:38 स्वतः से डब्ल्यूसी अपना आउटपुट स्टैंडर्ड आउट (stdout) में लिखता है।
06:42 स्वतः से स्टैंडर्ड आउट (stdout) टर्मिनल विंडो से जुड़ा होता है
06:45 इसलिए हम आउटपुट को टर्मिनल में देखते हैं
06:48 लेकिन यदि हम स्टैंडर्ड आउट (stdout) को फाइल में रिडाइरेक्ट कर सके तो डब्ल्यूसी कमांड से आउटपुट को उस फाइल में लिखा जायेगा।
06:57 मानिए कि हम डब्ल्यूसी स्पेस टेस्ट1 डोट टीएक्सटी राइट-एंगल्ड ब्रेकेट डब्ल्यूसी रिजल्ट डोट टीएक्सटी("wc space test1 dot txt 'right-angled bracket' wc_results dot txt" ) लिखें ।
07:09 और एंटर दबायें।
07:11 अब देखें कि क्या यह वास्तव में हुआ, हम wc_results (डब्ल्यूसी_रिजल्ट) डोट टीएक्सटी की विषय-वस्तु को केट कमांड के माध्यम से प्रदर्शित कर सकते हैं ।
07:23 हाँ यह हुआ।
07:24 मानिए कि हमारे पास उसी डाइरेक्टरी में टेस्ट2 अन्य फाइल है।
07:30 अब हम फिर से टेस्ट2 फाइल के साथ कमांड निष्पादित करते हैं । हम डब्ल्यूसी स्पेस टेस्ट2 डोट टीएक्सटी राइट-एंगल्ड ब्रेकेट डब्ल्यूसी _रिजल्ट डोट टीएक्सटी("wc space test2 dot txt 'right-angled bracket' wc_results dot txt") टाइप करते हैं
07:44 अतः डब्ल्यूसी रिजल्ट फाइल की विषय-वस्तु अधिलेखित हो जायेगी।
07:48 चलो देखते हैं।
07:56 इसके बजाय यदि हम डब्ल्यूसी स्पेस टेस्ट1 डोट टीएक्सटी राइट-एंगल्ड ब्रेकेट twice डब्ल्यूसी_रिजल्ट डोट टीएक्सटी ("wc space test1.txt 'right-angled bracket' twice wc_results.txt" ) चलायें
08:07 तो नई विषय-वस्तु डब्ल्यूसी_रिजल्ट डोट टीएक्सटी (wc_results.txt) फाइल की पहले से उपस्थित विषय- वस्तु में अधिलेखित नहीं होगी, यह संलग्न हो जायेगी।
08:15 चलिए इसे भी देखते है ।
08:26 स्टैंडर्ड एरर रिडाइरेक्ट करना उसी तरह होता है ।
08:29 केवल फर्क यह है कि इस मामले में हमें >या >> चिन्ह के पहले स्टैंडर्डएर्रर (stderr) के फाइल डिस्क्रीप्टर की संख्या को उल्लेख करने की आवश्यकता होती है।
08:38 जैसे, हम जानते हैं कि aaa नाम की कोई फाइल मौजूद नहीं है , अब लिखें

डब्ल्यूसी स्पेस aaa(“ wc space aaa" )

08:46 सेल एरर देगा “No such file or directory”(“ऐसी कोई फाइल या निर्देशिका नहीं है”)।
08:50 अब मानिए कि हम स्क्रीन पर एरर मेसेज नहीं चाहते। वो किसी अन्य फाइल में रिडाइरेक्ट कर सकते हैं।
08:55 इसके लिए हम डब्ल्यूसी स्पेस ए ए ए स्पेस 2 राइट-एंगल्ड ब्रेकेट एररलोग डोट टीएक्सटी("wc space aaa space 2 'right-anged bracket' errorlog.txt") कमांड दे सकते हैं।
09:06 अब एरर टर्मिनल पर नहीं दिखेगी, बल्कि यह फाइल एररलोग डोट टीएक्सटी(file errorlog.txt) में लिखी होगी।
09:12 हम यह केट स्पेस एररलोग डोट टीएक्सटी("cat space errorlog dot txt") कमांड से देख सकते हैं।
09:22 अब मानिए कि केट स्पेस bbb स्पेस2 राइट-एंगल्ड ब्रेकेट एररलोग डोट टीएक्सटी ("cat space bbb space 2 'right-angled bracket' errorlog.txt") यह कमांड रन करके मैं कोई अन्य एरर करती हूँ
09:34 तो कमांड चलाने से पिछली एरर अधिलेखित हो जायेगी और नई एरर दिखाई देगी।
09:39 देखिए “केट स्पेस एररलोग डोट टीएक्सटी” ("cat space errorlog dot txt")
09:46 लेकिन क्या, यदि हम सभी एररों की सूची चाहते हैं? इसके लिए हम यह कमांड चलाएंगे डब्ल्यूसी स्पेस एएए स्पेस 2 राइट-एंगल्ड ब्रेकेट एररलोग डोट टीएक्सटी ("wc space aaa space 2 'right-angled bracket' twice errorlog.txt" )
09:58 हम इसे केट कमांड का उपयोग करके जाँचते हैं।
10:06 हमने देखा कि कैसे स्टैंडर्ड आउट , स्टैंडर्ड एन, स्टैंडर्ड एरर तीनों स्ट्रीम्स अलग से रिडाइरेक्ट और कुशलतापूर्वक प्रयोग होती हैं। लेकिन इस तथ्य की वास्तविक शक्ति का अनुमान तब लगा सकते हैं जब हम स्ट्रीमों का साथ में कुशलतापूर्वक उपयोग करें, वो है भिन्न स्ट्रीमों को जोड़ना।
10:20 इस प्रक्रिया को पाइपलाइनिंग कहते हैं।
10:22 पाइप्स का उपयोग कमांड की श्रृंखला बनाने के लिए करते हैं।
10:25 पाइप श्रृंखला में एक कमांड के आउटपुट को दूसरी कमांड के इनपुट से जोड़ता है।
10:30 यह इस तरह दिखता है

command1 vertical bar command2 hyphen option vertical bar command3 hyphen option1 hyphen option2 vertical bar command4

(कमांड 1 । कमांड 2 ऑप्शन 1 । कमांड 3 ऑप्शन 1 – ऑप्शन 2 । कमांड 4 )

10:46 मानिए कि हम वर्तमान डाइरेक्टरी (निर्देशिका) में उपस्थित डाइरेक्टरिस(निर्देशिकाओं) और फाइलों की संपूर्ण संख्या जानना चाहते हैं।
10:51 हम क्या कर सकते हैं । हम जानते हैं कि एल एस स्पेस माइनस एल ("ls space minus l") वर्तमान डाइरेक्टरी की सभी फाइलों और डाइरेक्टरिस ( निर्देशिकाओं) की सूची बनाएगा।
10:58 हम एक फाइल “एल एस स्पेस माइनस एल ‘राइट-एंगल्ड ब्रेकेट’ फाइल्स डोट टीएक्सटी” ("ls space minus l 'right-angled bracket' files.txt" ) के लिए आउटपुट रिडाइरेक्ट कर सकते हैं।
11:08 “केट स्पेस फाइल्स डोट टीएक्सटी”( "cat space files dot txt" ) चलाएँ।
11:14 अब प्रत्येक लाइन फाइल और डाइरेक्टरी के नाम से है।
11:17 इसलिए यदि हम इस फाइल में संपूर्ण लाइनों को मापते हैं, हम अपने उद्देश्य को पूर्ण करने के लिए फाइल्स डोट टीएक्सटी(files.txt) का उपयोग कर सकते हैं।
11:24 इसको हम डब्ल्यूसी स्पेस माइनस एल फाइल्स डोट टीएक्सटी("wc space minus l files dot txt" ) कमांड का उपयोग करके कर सकते हैं।
11:32 हालाँकि यह हमारे उद्देश्य को पूरा करता है पर वहाँ कुछ परेशानियाँ हैं।
11:35 पहले हमें एक मध्यवर्ती फाइल, फाइल्स डोट टीएक्सटी चाहिए।
11:40 यदि पहली कमांड अधिक डाटा प्रस्तुत करती है तो यह व्यर्थ में डिस्क मेमरी नष्ट कर या कम कर सकती है
11:46 यदि हम कई कमांडों की श्रृंखला बनाना भी चाहते हैं यह पद्धति धीमी है।
11:50 हम इसे पाइप्स का उपयोग करके काफी आसान कर सकते हैं हम “एल एस स्पेस माइनस एल ‘वर्टीकल बार’ डब्ल्यूसी स्पेस माइनस एल ("ls space minus l 'vertical bar' wc space minus l" ) लिखते हैं ।
12:01 और हम अधिक सहूलियत के साथ वही परिणाम पा सकते हैं।
12:06 एल एस कमांड से आउटपुट डब्ल्यूसी कमांड के लिए इनपुट के रूप में जाता है।
12:10 हम पाइप्स का उपयोग करके कमांड की लम्बी श्रृंखलाएँ भी जोड़ सकते हैं।
12:15 पाइप्स का एक सामान्य उपयोग मल्टीपेज डिस्प्ले (प्रदर्शन) पढ़ने के लिए किया जाता है।
12:19 “सीडी स्पेस/यूज़र /बिन ("cd space /usr/bin") टाइप करें,
12:24 अब हम बिन डाइरेक्टरी में हैं।
12:28 अब एल एस - एल चलाएँ,
12:31 हम आउटपुट को सही से नहीं देख सकते। लेकिन यदि हम इसे अधिकता के लिए पाइप से जोडें, हम कर सकते हैं।
12:37 सूची के माध्यम से स्क्रोल करने के लिए एंटर दबायें ।
12:41 इससे बाहर आने के लिए क्यू दबायें।
12:45 यह कुछ कमांड थे जो हमें फाइल में काम करने के लिए मदद करती हैं।
12:48 कई अधिक कमांड हैं ।
12:50 हमने देखा के इसके अलावा प्रत्येक कमांड जिसके कई अन्य पर्याय(ऑप्शन) है ।
12:54 मैन कमांड का उपयोग करके उनके बारे में ज्यादा जानने के लिए मैं आपको प्रोत्साहित करती हूँ।
12:58 कमांड्स को सीखने का सही तरीका है उनका बार-बार उपयोग करना।
13:04 यह मुझे इस ट्यूटोरियल की समाप्ति की ओर लाता है।
13:07 स्पोकन ट्यूटोरियल टॉक टू अ टीचर प्रोजेक्ट का हिस्सा है जिसे राष्ट्रीय शिक्षा मिशन ने आईसीटी के माध्यम से समर्थित किया है।
13:15 इस पर अधिक जानकारी हमारी निम्नलिखित वेबसाइट पर उपलब्ध है।
13:19 यह स्क्रिप्ट देवेन्द्र कैरवान द्वारा अनुवादित है तथा आई आई टी बॉम्बे की तरफ से मैं सकीना अब आप से विदा लेती हूँ।

Contributors and Content Editors

PoojaMoolya, Pratibha