Linux/C2/Redirection-Pipes/Marathi

From Script | Spoken-Tutorial
Revision as of 11:31, 29 November 2012 by Sneha (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Title of script: Redirection and Pipes

Author: Manali Ranade

Keywords: Linux


Visual Clue
Narration
00:00 लिनक्सच्या Redirection and Pipes वरील स्पोकन ट्युटोरियलमध्ये आपले स्वागत.
00:07 आपण UBUNTU 10.04 वापरणार आहोत.
00:09 तुम्हाला लिनक्स आणि त्यातील कमांडसबद्दल थोडी माहिती आहे असे आपण समजू या.
00:16 अधिक माहितीसाठी त्या संबधीचे स्पोकन ट्युटोरियल याच संकेतस्थळावर उपलब्ध आहे.
00:22 लक्षात ठेवा की लिनक्स केस सेन्सेटिव्ह आहे.
00:25 वेगळे सांगितले नसेल तर या ट्युटोरियल मधील सर्व कमांडस लोअर केसमध्ये असतील.
00:32 आपण लिनक्समध्ये बहुतांश काम टर्मिनलवर करतो.
00:35 कमांड कार्यान्वित करताना आपण साधारणपणे ती कीबोर्डवरून टाईप करतो.
00:39 समजा आपल्याला तारीख आणि वेळ बघायची आहे.
00:41 त्यासाठी कीबोर्डवर date टाईप करा आणि एंटर दाबा.
00:46 असे आपण कीबोर्डवरून इनपुट देतो.
00:48 तसेच टर्मिनल विंडोवर आपल्या कमांडचे आउटपुट बघतो.
00:56 आलेली एरर देखील टर्मिनलवर दर्शविली जाते.
00:59 उदाहरणार्थ cat space aaa टाईप करा आणि एंटर दाबा.
01:05 aaa नावाची कोणतीही फाईल अस्तित्वात नसल्याने,
01:08 असे सांगणारी एरर दाखविली जाइल.
01:10 आपल्याला असे दिसते की error reporting सुध्दा टर्मिनलवर केले जाते.
01:20 inputting, outputting and error reporting या कमांडसंबंधित तीन खास कृती आहेत.
01:24 redirection बद्द्ल जाणून घेण्याआधी आपल्याला दोन महत्त्वाच्या संकल्पना माहित असणे आवश्यक आहे. त्या म्हणजे stream आणि file descriptor.
01:31 Bash सारखे shell, sequences किंवा streamsच्या स्वरूपात अक्षरे input म्हणून स्वीकारतात आणि output म्हणून पाठवतात.
01:37 प्रत्येक अक्षर हे आधीच्या व नंतरच्या अक्षरांपासून स्वतंत्र असते.
01:41 streams वाचण्यासाठी file I/O technique वापरले जाते.
01:44 प्रत्यक्षात अक्षरे, कीबोर्ड, फाईल किंवा विंडो यापैकी कुठूनही आली किंवा कशातही गेली तरी काही फरक पडत नाही.
01:51 लिनक्स प्रोसेसची प्रत्येक उघडलेली फाईल एका integerशी संबंधित असते.
01:57 या अंकाला file descriptor म्हणतात.
02:05 Linux shells तीन standard I/O streams चा वापर करतात.
02:08 प्रत्येक stream, सुपरिचित अशा file descriptorशी निगडीत असते.
02:12 stdin म्हणजे standard input stream.
02:15 हे कमांडस् ला input पुरवते.
02:17 याचा file descriptor शून्य आहे.
02:19 stdout म्हणजे standard output stream.
02:22 हे कमांडचे आऊटपुट दर्शवते. याचा file descriptor एक आहे.
02:26 stderr म्हणजे standard error stream हे कमांडचे एरर आऊटपुट दर्शवते. याचा file descriptor दोन आहे.
02:36 Input stream प्रोग्रॅम्सना इनपुट पुरवते.
02:40 डिफॉल्ट रूपात इनपुट, terminal च्या keystrokes कडून घेतले जाते.
02:44 Output streams, डिफॉल्ट रूपात टर्मिनलवर दर्शवतात.
02:47 सुरूवातीच्या काळात ASCII टाईपरायटर किंवा डिस्प्ले टर्मिनल युनिट वापरत.
02:52 परंतु आजकाल टर्मिनल म्हणजे ग्राफिकल डेस्कटॉपवर एक टेक्स्ट विंडो असते.
02:56 आपण पाहिले की डिफॉल्ट रूपात तीनही streams काही फाईल्सशी जोडलेल्या असतात.
03:01 परंतु लिनक्समध्ये आपल्याला यात काही बदल करता येतात.
03:04 आपण ह्या तीन streams इतर फाईल्सना जोडू शकतो.
03:07 या प्रक्रियेला Redirection असे म्हणतात.
03:09 आता आपण तीन streamsमध्ये Redirection कशाप्रकारे केले जाते ते पाहू.
03:14 प्रथम आपण standard input कसे Redirect करायचे ते पाहू.
03:17 आपण लेस दॅन या ऑपरेटरने फाईलमधील standard इनपुट Redirect करू शकतो.
03:22 wc कमांडने फाईलमधील ओळी, शब्द आणि अक्षरांची संख्या मिळवता येते हे आपल्याला माहित आहे.
03:28 टर्मिनल विंडोवर wc असे टाईप करा.
03:31 एंटर दाबा.
03:32 आपल्याला blinking cursor दिसत आहे. म्हणजेच आपण कीबोर्डवर काही टाईप करणे अपेक्षित आहे.
03:37 This tutorial is very important. असे टेक्स्ट टाईप करा.
03:46 एंटर दाबा.
03:48 आता ctrl आणि d ही बटणे एकत्रितपणे दाबा.
03:52 आता ही कमांड आपण टाईप केलेल्या ओळींवर कार्यान्वित होईल.
03:55 आणि टर्मिनलवर आऊटपुट देईल.
03:57 आपण wc कमांडच्या पुढे कुठल्याही फाईलचे नाव दिलेले नाही.
04:01 त्यामुळे standard input stream कडून input घेतला जाईल.
04:04 standard input stream डिफॉल्ट रूपात कीबोर्डशी जोडलेला असल्यामुळे wc कमांड कीबोर्डवरून input घेतो.
04:12 आता "wc space less-than-sign space test1 dot txt" हे टाईप करून एंटर दाबा.
04:19 wc कमांड आपल्याला test1 dot txt फाईलमध्ये असलेल्या ओळी, शब्द आणि अक्षरांची संख्या दाखवेल.
04:27 आता "wc space test1 dot txt" असे टाईप करा.
04:34 आपल्याला सारखेच आउटपुट दिसेल.
04:37 मग या दोहोत फरक काय?
04:39 आपण "wc space test1 dot txt" ही कमांड लिहितो तेव्हा test1 dot txt ही फाईल उघडून वाचली जाईल.
04:46 परंतु आपण "wc space less-than-sign space test1 dot txt" ही कमांड लिहिल्यावर wcकमांडला उघडण्यासाठी कोणतीही फाईल मिळत नाही.
04:53 त्याऐवजी ती standardin कडून इनपुट घेईल.
04:57 आता आपण standardin ला test1 dot txt या फाईलकडे वळवलेले आहे.
05:01 म्हणजे कमांड test1 ही फाईल वाचेल.
05:04 परंतु प्रत्यक्षात त्या कमांडला हे माहित नसते की standardin मध्ये डेटा नेमका कुठून येत आहे.
05:10 अशा प्रकारे आपण standard input कसे redirect करायचे ते पाहिले.
05:12 आता आपण standard output आणि standard error कशी redirect करायची ते पाहू.
05:17 दोन पध्दतीने हे मेसेजेस फाईलमध्ये redirect करता येतात.
05:20 आपण file descriptor ला n म्हणू या. n greater-than-sign ने n कडून आऊटपुट, फाईलमध्ये रिडायरेक्ट होईल.
05:29 त्यासाठी आपल्याला File write permission असली पाहिजे.
05:32 जर फाईल उपलब्ध नसेल तर ती बनवली जाईल.
05:35 आधी अस्तित्वात असलेली फाईल कुठल्याही पूर्वसूचनेशिवाय overwriteहोईल.
05:40 n नंतर दोन वेळा greater than sign मुळे देखील n कडून आऊटपुट, फाईलकडे रिडायरेक्ट होते.
05:47 पुन्हा, आपल्याला File write permission असली पाहिजे.
05:50 जर फाईल उपलब्ध नसेल तर ती बनवली जाईल.
05:52 जर फाईल अस्तित्वात असेल तर तुमचे आऊटपुट त्या फाईलला पुढे जोडले जाईल.
05:59 n greater than sign किंवा n नंतर दोनदा greater than sign मधील n ही संख्या file descriptor असते.
06:05 n लिहिला नसेल तर तो एक आहे म्हणजेच Standard आऊटपुट आहे असे समजण्यात येते.
06:10 म्हणजेच नुसती greater than sign आणि one, greater than sign या दोन्हीचा अर्थ समान आहे.
06:15 परंतु error stream रीडायरेक्ट करण्यासाठी 2 आणि एकदा किंवा दोनदा greater than sign लिहिणे आवश्यक आहे.
06:22 हे प्रत्यक्ष पाहू.
06:24 आपण मागे पाहिले की file किंवा standardin वर कार्यान्वित केलेल्या wcकमांडचे आऊटपुट टर्मिनलवर दर्शवले गेले.
06:31 जर आपल्याला ते टर्मिनलवर नको असेल तर?
06:34 आपल्याला हे आऊटपुट फाईलमध्ये लिहून त्या माहितीचा नंतर वापर करता येईल.
06:38 डिफॉल्ट रूपात wc कमांडचे आऊटपुट standardout मध्ये लिहिले जाते.
06:42 डिफॉल्ट रूपात standardout हे टर्मिनलला जोडलेले असते.
06:45 त्यामुळे आपल्याला आऊटपुट टर्मिनल विंडोवर दिसते.
06:48 जर आपण standardout एखाद्या फाईलमध्ये रिडायरेक्ट केले तर wc कमांडचे आऊटपुट त्या फाईलमध्ये लिहिले जाईल.
06:57 "wc space test1 dot txt grater-than-sign wc_results dot txt" असे लिहा.
07:09 आणि एंटर दाबा.
07:11 आता आपण बघू या की cat या कमांडद्वारे आपल्याला wc_results dot txt मधील घटक दर्शवता येतात का?
07:23 हो. येतात.
07:24 समजा आपल्याकडे त्या डिरेक्टरीमध्ये test2 ही फाईल आहे.
07:30 आता आपण पुन्हा test2 या फाईलसाठी कमांड कार्यान्वित करूया. त्यासाठी टाईप करा "wc space test2 dot txt grater-than-sign wc_results dot txt"
07:44 आता wc_results या फाईलमधल्या मजकूरावर नवा मजकूर लिहिला जाईल.
07:48 आपण आता ते बघू या.
07:56 त्याऐवजी जर आपण "wc space test1 dot txt आणि दोन वेळा grater-than-sign wc underscore results dot txt" असे लिहिले.
08:07 तर नवा मजकूर wc underscore results dot txt मधील उपलब्ध मजकूर पुसून लिहिला न जाता त्या मजकूराखाली जोडला जाईल.
08:15 आपण आता ते बघू या.
08:26 standard error अशाच पध्दतीने Redirect केली जाते.
08:29 फक्त फरक असा की एरर मेसेजसाठी दोन हा file descriptor, greater-than-sign च्या आधी लिहिणे आवश्यक आहे.
08:38 जसे आपल्याला माहितच आहे की aaa नावाची कोणतीही फाईल उपलब्ध नाही. आता "wc space aaa" असे टाईप करा.
08:46 shell आपल्याला “No such file or directory” अशी error देईल.
08:50 आता समजा आपल्याला हा error message दिसायला नको आहे मग ते आपण दुस-या फाईलमध्ये redirect करू शकतो.
08:55 त्यासाठी आपण"wc space aaa space 2 greater-than-sign errorlog dot txt" ही कमांड कार्यान्वित करू या.
09:06 आता ही error टर्मिनलवर न दिसता ती errorlog dot txt या फाईलमध्ये लिहिली जाईल.
09:12 आपण हे"cat space errorlog dot txt" या कमांडद्वारे बघू शकतो.
09:22 आता समजा मी "cat space bbb space 2 greater-than-sign errorlog dot txt" ही कमांड कार्यान्वित केल्यामुळे एखादी error आली
09:34 तर आधीच्या error message वर नवी error लिहिली गेलेली दिसेल.
09:39 "cat space errorlog dot txt" ही कमांड कार्यान्वित करून बघा.
09:46 पण जर आपल्याला सर्व errors ची यादी हवी असेल तर? त्यासाठी "wc space aaa space 2 आणि दोनदा greater-than-sign errorlog dot txt" ही कमांड द्यावी लागेल.
09:58 आपण हे cat कमांडच्या सहाय्याने तपासू शकतो.
10:06 तीन प्रकारचे streams - standardin, standardout, standard error स्वतंत्रपणे कसे रीडायरेक्ट करायचे ते आपण पाहिले. परंतु या संकल्पनेची खरी ताकद हे प्रकार एकाच वेळेला वापरता येण्यात आहे.
10:20 या प्रक्रियेला pipelining असे म्हणतात.
10:22 पाईप्सचा उपयोग कमांडची चेन तयार करण्यासाठी करतात.
10:25 पाईप चेन मधील एका कमांडचे आऊटपुट पुढील कमांडच्या इनपुटला जोडले जाते.
10:30 कमांड पाईप command1 vertical bar command2 hyphen option vertical bar command3 hyphen option1 hyphen option2 vertical bar command4असा दिसेल.
10:46 समजा आपल्याला चालू डिरेक्टरीतील फाईल्स आणि डिरेक्टरीजची संख्या हवी आहे.
10:51 आपल्याला माहित आहे की "ls space minus l" ही कमांड चालू डिरेक्टरीमधील सर्व फाईल्स व डिरेक्टरीजची सूची दर्शवेल.
10:58 "ls space minus l grater-than-sign files dot txt" या कमांडने आपण आऊटपुट, फाईलमध्ये रीडायरेक्ट करू.
11:08 "cat space files dot txt" ही कमांड कार्यान्वित करा.
11:14 प्रत्येक ओळ म्हणजे फाईल किंवा डिरेक्टरीचे नाव आहे.
11:17 आता files dot txt या फाईलमधल्या ओळींची संख्या मोजून आपण आपला उद्देश साध्य करू शकतो.
11:24 आपण हे "wc space minus l files dot txt" च्या सहाय्याने करू शकतो.
11:32 आपला उद्देश साध्य होत असला तरी त्यात छोटी समस्या आहे.
11:35 आपल्याकडे एक तात्पुरती मधली फाईल file dot txt असणे आवश्यक आहे.
11:40 पहिली कमांडने मोठा डेटा तयार होतो व विनाकारण आपल्या डिस्कची जागा वापरली जाते.
11:46 जर आपल्याला एकापुढे एक कमांडस् साखळी पध्दतीने द्यायच्या असतील तर ही पध्दत वेळखाऊ ठरते.
11:50 आपणpipes च्या सहाय्याने हे अधिक सोपे करू शकतो."ls space minus l 'vertical bar' wc space minus l" असे टाईप करा.
12:01 त्यामुळे आपल्याला तोच रिझल्ट अधिक सहजतेने मिळू शकेल.
12:06 येथे ls कमांडचे आऊटपुट wc कमांडचे इनपुट म्हणून जाते.
12:10 आपण यापेक्षाही कमांडस् ची मोठी साखळी pipes सहाय्याने समाविष्ट करू शकतो.
12:15 pipes चा सर्वमान्य उपयोग अनेक पाने वाचण्यासाठी होतो.
12:19 "cd space slash user slash bin" असे टाईप करा.
12:24 त्यामुळे आपण bin या डिरेक्टरीमध्ये जाऊ.
12:28 "ls minus l" ही कमांड द्या.
12:31 आपण हे आऊटपुट नीट वाचू शकत नाही परंतु pipe ने ती कमांड more या कमांडशी जोडल्यास नीट वाचता येते.
12:37 संपूर्ण सूची बघण्यासाठी एंटर दाबून स्क्रॉल करा.
12:41 त्यातून बाहेर पडण्यासाठी q हे बटण दाबा.
12:45 ह्या काही फाईल संबंधी उपयोगी कमांडस आहेत .
12:48 अशा अनेक कमांडस आहेत.
12:50 प्रत्येक कमांडचे अनेक पर्याय आहेत.
12:54 त्याबद्दल अधिक जाणून घेण्यासाठी man या कमांडचा वापरा.
12:58 या कमांडस शिकण्याचा सोपा मार्ग म्हणजे त्या पुन्हा पुन्हा वापरून बघणे.
13:04 आपण ह्या ट्युटोरियलच्या अंतिम टप्प्यात पोहोचलो आहोत.
13:07 "स्पोकन ट्युटोरियल प्रॉजेक्ट" हे "टॉक टू टीचर" या प्रॉजेक्टचा एक भाग आहे. यासाठी National Mission on Education through ICT यांच्याकडून अर्थसहाय्य मिळालेले आहे.
13:15 *यासंबंधी माहिती दिलेल्या साईटवर उपलब्ध आहे.
13:19 *ह्या ट्युटोरियलचे मराठी भाषांतर मनाली रानडे यांनी केलेले असून आवाज .... यांनी दिलेला आहे. आपल्या सहभागासाठी धन्यवाद.

Contributors and Content Editors

PoojaMoolya, Pratik kamble, Ranjana, Sneha