Linux/C2/Redirection-Pipes/Marathi

From Script | Spoken-Tutorial
Jump to: navigation, search
Time 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 शेल, अक्षरांच्या streams, input म्हणून घेतात आणि output म्हणून पाठवतात.
01:37 प्रत्येक अक्षर हे स्वतंत्र असते.
01:41 streams वाचण्यासाठी file I/O technique वापरतात.
01:44 प्रत्यक्षात अक्षरे, कीबोर्ड, फाईल किंवा विंडो यापैकी कुठूनही आली किंवा कशातही गेली तरी काही फरक पडत नाही.
01:51 लिनक्स प्रोसेसची प्रत्येक उघडलेली फाईल एका integerशी संबंधित असते.
01:57 या अंकाला file descriptor म्हणतात.
02:05 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 एंटर दाबा.आपल्याला 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 < space test1 dot txt" ह्या कमांडला फाईल मिळत नाही.
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 > किंवा n >> मधील n ही संख्या file descriptor असते.
06:05 n च्या अनुपस्थितीत तो एक आहे म्हणजेच आऊटपुट आहे असे समजण्यात येते.
06:10 म्हणजेच नुसती > आणि 1 > या दोन्हीचा अर्थ समान आहे.
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 हो. येतात.समजा आपल्याकडे त्या डिरेक्टरीमध्ये 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, MHRD, Government of India यांच्याकडून मिळालेले आहे.
13:15 *यासंबंधी माहिती पुढील साईटवर उपलब्ध आहे.
13:19 *ह्या ट्युटोरियलचे भाषांतर मनाली रानडे यांनी केले असून मी रंजना भांबळे आपला निरोप घेते. सहभागासाठी धन्यवाद.

Contributors and Content Editors

PoojaMoolya, Pratik kamble, Ranjana, Sneha