Linux/C2/Redirection-Pipes/Marathi
From Script | Spoken-Tutorial
Revision as of 19:41, 3 March 2017 by Pratik kamble (Talk | contribs)
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 | *ह्या ट्युटोरियलचे भाषांतर मनाली रानडे यांनी केले असून मी रंजना भांबळे आपला निरोप घेते. सहभागासाठी धन्यवाद. |