Linux/C2/Redirection-Pipes/Gujarati

From Script | Spoken-Tutorial
Jump to: navigation, search
Time Narration
00:00:00 રીડાયરેક્શન અને પાઈપ્સના મૌખિક ટ્યુ્ટોરીઅલમાં સ્વાગત છે.
00:07:00 હું ઉબુન્ટુ ૧૦.૦૪નો ઉપયોગ કરી રહી છું.
00:09:00 અમે ધારીએ છીએ કે તમને લિનક્સ ઓપરેટીંગ સિસ્ટમ ઉપર કાર્ય કરવાનો અનુભવ હશે અને આદેશો વિશે થોડું જ્ઞાન ધરાવતા હશો.
00:16:00 જો તમને અભિરુચિ હોય તો,તે આ વેબસાઈટ પરના અન્ય મૌખિક ટ્યુ્ટોરીઅલ ઉપર ઉપલબ્ધ છે.
00:22:00 નોંધ લઈએ કે લિનક્સ અક્ષર-પ્રકાર(સાદા કે કેપિટલ)સંવેદનશીલ છે.
00:25:00 જ્યાં સુધી કઈ ઉલ્લેખેલ ન હોય ત્યાં સુધી બધા આદેશો સાદા અક્ષરમાં જ લેવાય છે .
00:32:00 આપણે લિનક્સમાં મોટા ભાગનું કાર્ય ટર્મિનલ દ્વારા કરીએ છીએ.
00:35:00 જયારે આપણને કોઈ આદેશ પ્રદર્શિત કરવો હોય,તેને કિબોર્ડથી લખીએ છીએ.
00:39:00 જેમકે આપણને તારીખ અને સમય જાણવો છે.
00:41:00 તો આપણે કિબોર્ડ દ્વારા "date" લખીશું અને એન્ટર દબાવીશું.
00:46:00 સામાન્ય રીતે આપણે કિબોર્ડ દ્વારા ઈનપુટ આપીએ છીએ.
00:48:00 તેવી રીતે આપણા આદેશનું આઉટપુટ આપણે ટર્મિનલ બારી ઉપર જ જોઈએ છીએ.
00:56:00 ઘણીવાર આદેશ પ્રદર્શિત કરીએ ત્યારે ઘણી વાર એરર પણ મળે છે.
00:59:00 ઉદાહરણ તરીકે,"cat ખાલી જગ્યા aaa" લખીએ અને એન્ટર દબાવીએ.
01:05:00 પણ aaa નામની કોઈ ફાઈલ અસ્તિત્વમાં નથી.
01:08:00 તેથી આવી એરર મળે છે.
01:10:00 આ એરર પણ ટેર્મીનલ બારી ઉપર આવે છે.તેથી આપણે આ સંદેશ ટેર્મીનલ ઉપર જોઈ શકીએ છીએ
01:20:00 આ ઈનપુટીંગ,આઉટપુટીંગ અને એરર રીપોર્ટીંગ ત્રણેય આદેશને સંબંધિત વિશિષ્ટ પ્રક્રિયાઓ છે.
01:24:00 રીડાયરેક્શન વિશે શીખતા પહેલા આપણને બે મહત્વની વિભાવનાઓની જાણ હોવી જોઈએ.જે છે સ્ટ્રીમ(stream) અને ફાઈલ ડીસ્ક્રીપ્ટર(descriptor).
01:31:00 બેશ જેવા લિનક્સ શેલ,ઈનપુટ લઇ અને આઉટપુટને શ્રેણી અથવા અક્ષરોની હારમાળા સ્વરૂપે મોકલે છે.
01:37:00 દરેક અક્ષર તેની આગળના અને પાછળના અક્ષરથી કોઈ સંબંધ ધરાવતો નથી.
01:41:00 હારમાળાઓ ફાઈલ આઈઓ કાર્યરીતિઓ(techniques)થી પ્રાપ્ય થાય છે.
01:44:00 આનાથી કોઈ ફર્ક નથી પડતો કે અક્ષરોની વાસ્તવિક હારમાળાઓ ફાઈલ,કિબોર્ડ,વિન્ડો વગેરેમાંથી આવે છે કે જાય છે.
01:51:00 લિનક્સમાં,પ્રક્રિયાની પ્રત્યેક ખુલ્લી ફાઈલ એક પૂર્ણાંક અંક સાથે સંકળાયેલ હોય છે.
01:57:00 આ આંકડાકીય કિંમતો "ફાઈલ ડીસ્ક્રીપ્ટર્સ" તરીકે ઓળખાય છે.
02:05:00 લિનક્સ શેલ્સ ત્રણ મુખ્ય આઈ/ઓ સ્ટ્રીમ્સનો ઉપયોગ કરે છે.
02:08:00 તે દરેક એક અનન્ય ફાઈલ ડીસ્ક્રીપ્ટર સાથે સંકળાયેલ છે.
02:12:00 "એસટીડીઇન" એ સ્ટાનડર્ડ ઈનપુટ સ્ટ્રીમ છે.
02:15:00 તે આદેશોને ઈનપુટ પૂરું પાડે છે.
02:17:00 તે ફાઈલ ડીસ્ક્રીપ્ટર ૦ ધરાવે છે.
02:19:00 "એસટીડીઆઉટ" એ સ્ટાનડર્ડ આઉટપુટ સ્ટ્રીમ છે.
02:22:00 તે આદેશોથી આવતા આઉટપુટને પ્રદર્શિત કરે છે.તે ફાઈલ ડીસ્ક્રીપ્ટર 1 ધરાવે છે.
02:26:00 "એસટીડીએર" એ સ્ટાનડર્ડ એરર સ્ટ્રીમ છે.તે આદેશોથી મળતા એરર આઉટપુટને પ્રદર્શિત કરે છે. તે ફાઈલ ડીસ્ક્રીપ્ટર ૨ ધરાવે છે.
02:36:00 ઈનપુટ સ્ટ્રીમ્સ પ્રોગ્રામ્સને ઈનપુટ પૂરું પાડે છે.
02:40:00 સામાન્ય રીતે ટર્મિનલમાં કિબોર્ડ દ્વારા લખેલ લખાણમાંથી તે ઈનપુટ લે છે.
02:44:00 આઉટપુટ સ્ટ્રીમ્સ સામાન્ય રીતે ટર્મિનલ ઉપર ટેક્સ્ટ અક્ષરો પ્રિન્ટ કરે છે.
02:47:00 ટર્મિનલ હકીકતમાં ASCII ટાઈપરાઈટર અથવા પ્રદર્શિત એટલેકે ડિસ્પ્લે કરનાર એક ટર્મિનલ હતું.
02:52:00 પણ હવે તે ગ્રાફિકલ ડેસ્કટોપ ઉપર એક ટેક્સ્ટ વિન્ડો છે.
02:56:00 આપણે જોયું કે સામાન્ય રીતે ત્રણે સ્ટ્રીમ્સ સામાન્ય રીતે કેટલીક ફાઈલો સાથે જોડાએલ હોય છે.
03:01:00 પણ લિનક્સમાં,આપણે આને બદલી શકીએ.
03:04:00 આપણે આ ત્રણેય સ્ટ્રીમ્સને બીજી અન્ય ફાઈલો સાથે જોડી શકીએ.
03:07:00 આ પ્રક્રિયાને રીડાયરેક્શન કહેવાય છે.
03:09:00 ચાલો હવે જોઈએ કે ત્રણ સ્ટ્રીમ્સમાં રીડાયરેક્શન કેવી રીતે થાય છે.
03:14:00 પહેલા આપણે જોઈએ કે સ્ટાનડર્ડ ઈનપુટ કેવી રીતે રીડાયરેક્ટ થાય.
03:17:00 આપણે સ્ટાનડર્ડ ઈનને ફાઈલમાંથી, <(ડાબી તરફના ખૂણાવાળા કૌંસ) પ્રચાલકથી રીડાયરેક્ટ કરીએ.જોઈએ કેવી રીતે થાય છે.
03:22:00 આપણે જાણીએ છીએ કે wc આદેશનો ઉપયોગ ફાઈલમાં લીટીઓ,શબ્દો અને અક્ષરોની સંખ્યા શોધવા થાય છે.
03:28:00 ટર્મિનલ બારી ઉપર wc લખીએ.
03:31:00 હવે એન્ટર દબાવીએ.
03:32:00 શું થાય છે?એક ઝબકતું કર્સર દેખાય છે.આનો મતલબ એ છે કે કિબોર્ડથી એન્ટર દબાવવું પડશે.
03:37:00 થોડું લખાણ મુકીએ જેમકે "This tutorial is very important".
03:46:00 હવે એન્ટર દબાવીએ.
03:48:00 હવે CTRL અને d કળ એક સાથે દબાવીએ.
03:52:00 હવે આ આદેશ આપણે લખેલી લીટીઓ ઉપર કામ કરશે.
03:55:00 આદેશ ટર્મિનલ ઉપર આઉટપુટ આપશે.
03:57:00 અહીં wc આદેશ પછી કોઈ ફાઈલ અપાઈ નથી.
04:01:00 તેથી તે સ્ટાનડર્ડ ઈનપુટ સ્ટ્રીમમાંથી ઈનપુટ લે છે.
04:04:00 સ્ટાનડર્ડ ઈનપુટ સ્ટ્રીમ મૂળભૂત રીતે કિબોર્ડ સાથે જોડાયેલ હોય છે.તેથી wc આદેશ કિબોર્ડથી ઈનપુટ લેશે.
04:12:00 હવે જો આપણે આ લખીએ "wc ખાલી જગ્યા <(ડાબા ખૂણાવાળો કૌંસ) ખાલી જગ્યા test1 .txt"
04:19:00 wc આદેશ ફાઈલ test1.textમાં રહેલ લીટીઓ,શબ્દો અને અક્ષરોની સંખ્યા બતાવે છે.
04:27:00 હવે "wc ખાલી જગ્યા test1.txt" લખીએ.
04:34:00 આપણને સરખું જ પરિણામ મળે છે.
04:37:00 તો ફર્ક શું?
04:39:00 જયારે આપણે "wc ખાલી જગ્યા test1.txt" લખીએ,આદેશ ફાઈલ test1.txt ખોલે છે અને તેને વાંચે છે.
04:46:00 પણ જયારે આપણે "wc ખાલી જગ્યા 'ડાબા ખૂણાવાળો કૌંસ' test1.txt" લખીએ છીએ,wc આદેશને કોઈ ફાઈલ ખોલવા મળતી નથી.
04:53:00 તેની જગ્યાએ,તે સ્ટાનડર્ડઈન પાસેથી ઈનપુટ લેવાનો પ્રયત્ન કરે છે.
04:57:00 તો હવે આપણે સ્ટાનડર્ડઈનને ફાઈલ test1.txt સાથે નિર્દેશિત કરી દીધી છે.
05:01:00 તેથી આદેશ test1માંથી વાંચે છે.
05:04:00 પણ તે સ્ટાનડર્ડઈનમાં ડેટા ક્યાંથી આવી રહ્યા છે તે માટે અજાણ છે.
05:10:00 તો આપણે જોયું કે સ્ટાનડર્ડ ઈનપુટને કેવી રીતે રીડાયરેક્ટ કરવું.
05:12:00 હવે જોઈએ કે સ્ટાનડર્ડ આઉટપુટ અને સ્ટાનડર્ડ એરરને કેવી રીતે રીડાયરેક્ટ કરવું.
05:17:00 આઉટપુટ અથવા એરરને ફાઈલ સાથે રીડાયરેક્ટ કરવાના બે માર્ગ છે:
05:20:00 ધારો,n ફાઈલ ડીસ્ક્રીપ્ટરને નિર્દેશ કરે છે."n" જમણા ખૂણાવાળો કૌંસ ફાઈલ ડીસ્ક્રીપ્ટર nથી મળતા આઉટપુટને ફાઈલ સાથે રીડાયરેક્ટ કરે છે.
05:29:00 તમારી પાસે તે ફાઈલમાં લખવાનો અધિકાર હોવો જોઈએ.
05:32:00 જો આ ફાઈલ હયાત ન હોય તો નવી બની જશે.
05:35:00 જો હયાત હોય તો તેમાં રહેલ ડેટા કોઈ પણ ચેતવણી વગર રદ થઇ જાય છે.
05:40:00 "n >>(બે જમણા ખૂણાવાળા કૌંસ)" પણ ફાઈલ ડીસ્ક્રીપ્ટર nથી મળતા આઉટપુટને ફાઈલ સાથે રીડાયરેક્ટ કરે છે
05:47:00 આના માટે પણ તમારી પાસે તે ફાઈલમાં લખવાનો અધિકાર હોવો જોઈએ.
05:50:00 જો ફાઈલ હયાત ન હોય તો નવી બની જશે.
05:52:00 જો ફાઈલ હયાત હશે તો,આઉટપુટ આ ફાઈલમાં રહેલ લખાણના અંતે જોડાઈ જશે.
05:59:00 n જે એક જમણા ખૂણાવાળા કૌંસ અથવા બે જમણા ખૂણાવાળા કૌંસ સાથે હોય છે તે "ફાઈલ ડીસ્ક્રીપ્ટર"ને નિર્દેશ કરે છે.
06:05:00 જો તેને અવગણવામાં આવે તો તે સ્ટાનડર્ડ આઉટપુટ જે ફાઈલ ડીસ્ક્રીપ્ટર ૧ છે તેને માની લે છે.
06:10:00 તેથી >(જમણા ખૂણાવાળો કૌંસ) અને અંક૧>(એક જમણા ખૂણાવાળો કૌંસ) સમાન છે.
06:15:00 પણ એરર સ્ટ્રીમને રીડાયરેક્ટ કરવા,તમારે અંક ૨>(એક જમણા ખૂણાવાળો કૌંસ) અથવા અંક ૨>>(બે જમણા ખૂણાવાળા કૌંસ) નો ઉપયોગ કરવો પડશે.
06:22:00 ચાલો તે જોઈએ.
06:24:00 છેલ્લા ઉદાહરણમાં આપણે જોયું કે ફાઈલ અને standardinવાળા wc આદેશનું પરિણામ ટર્મિનલ બારી ઉપર મળે છે.
06:31:00 જો આપણને આ ટર્મિનલ બારી ઉપર પ્રદર્શિત ન કરવું હોય તો શું કરી શકાય?
06:34:00 આપણે તેને એક ફાઈલમાં સંગ્રહિત કરીએ,જેથી આ માહિતીનો પછી ઉપયોગ કરી શકાય.
06:38:00 મૂળભૂત રીતે wc તેનું આઉટપુટ standardoutમાં લખે છે.
06:42:00 standardout મૂળભૂત રીતે ટર્મિનલ બારી સાથે જોડાયેલ હોય છે.
06:45:00 તેથી આપણે ટર્મિનલ બારી ઉપર આઉટપુટ જોઈ શકીએ છીએ.
06:48:00 પણ જો આપણે standardoutને ફાઈલમાં રીડાયરેક્ટ કરી શકીએ તો જ wc આદેશનું આઉટપુટ તે ફાઈલમાં લખાશે.
06:57:00 ચાલો આપણે લખીએ "wc ખાલી જગ્યા test1.txt 'જમણા ખૂણાવાળા કૌંસ' wc_results.txt"
07:09:00 એન્ટર દબાવીએ.
07:11:00 આ થયું કે નહિ તે જાણવા આપણે ફાઈલમાં રહેલ માહિતી c-a-t આદેશ દ્વારા પ્રદર્શિત કરી શકીએ.
07:23:00 હા તે થયું છે.
07:24:00 ધારોકે,આપણી પાસે આ જ ડિરેક્ટરીમાં બીજી ફાઈલ test2 છે.
07:30:00 હવે આપણે test2 ફાઈલ સાથે આજ આદેશ અમલમાં મુકીશું."wc ખાલી જગ્યા test2.txt 'જમણા ખૂણાવાળો કૌંસ' wc_results.txt"
07:44:00 આનાથી wc_resultsમાં રહેલ લખાણ ઉપર નવું લખાણ આવી જશે.
07:48:00 ચાલો આ જોઈએ.
07:56:00 આની જગ્યાએ જો આપણે "wc ખાલી જગ્યા test1.txt 'બે વાર જમણા ખૂણાવાળો કૌંસ" wc_results.txt"
08:07:00 આ આદેશથી નવું લખાણ ફાઈલ wc_results.txtમાં રહેલ લખાણ ઉપર નથી આવી જતું.નવું લખાણ તેના અંતે જોડાઈ જાય છે.
08:15:00 ચાલો આ પણ જોઈએ.
08:26:00 સ્ટાનડર્ડ એરરને રીડાયરેક્ટીંગ પણ આજ રીતે કરાય છે.
08:29:00 ફર્ક આટલો જ છે કે આ ઘટનામાં એક જમણા ખૂણાવાળા કૌંસ અથવા બે જમણા ખૂણાવાળા કૌંસ ચિહ્નની પહેલા સ્ટાનડર્ડ એરરનો ફાઈલ ડીસ્ક્રીપ્ટર અંક મુકવો પડશે.
08:38:00 જેમ આપણે જાણીએ છીએ કે "aaa" નામની કોઈ ફાઈલ મોજુદ નથી."wc ખાલી જગ્યા aaa" લખીએ.
08:46:00 શેલ એરર આપે છે કે "આવી કોઈ ફાઈલ કે ડિરેક્ટરી નથી"
08:50:00 હવે આપણને કોઈ એરર સંદેશો પડદા ઉપર નથી જોઈતા.તે કોઈ અન્ય ફાઈલ સાથે રીડાયરેક્ટ કરી શકાય છે.
08:55:00 આ માટે આપણે આ આદેશ "wc ખાલી જગ્યા aaa ખાલી જગ્યા 2 'જમણા ખૂણાવાળો કૌંસ' errorlog.txt" આપી શકીએ.
09:06:00 હવે એરર ટર્મિનલ ઉપર પ્રદર્શિત નહીં થાય,પણ તે ફાઈલ errorlog.txtમાં આવી જશે.
09:12:00 આ આપણે આ આદેશ "cat ખાલી જગ્યા errorlog.txt" દ્વારા જોઈ શકીએ.
09:22:00 હવે જો હું આ આદેશ "cat ખાલી જગ્યા bbb ખાલી જગ્યા 2 'જમણા ખૂણાવાળો કૌંસ' errorlog.txt" દ્વારા બીજી એરર ઉત્પન્ન કરું.
09:34:00 તો પહેલાની એરર ઉપર આ નવી એરર આવી ગઈ દેખાશે.
09:39:00 જુઓ "cat ખાલી જગ્યા errorlog.txt"
09:46:00 જો આપણને બધી એરરને એક સાથે જોવી હોય તો શું?

તેના માટે આ આદેશ આપવો પડશે "wc ખાલી જગ્યા aaa ખાલી જગ્યા 2 'બે જમણા ખૂણાવાળા કૌંસ' errorlog.txt"

09:58:00 આ આપણે cat આદેશ આપી તપાસી શકીએ.
10:06:00 આપણે જોયું કે ત્રણેય સ્ટ્રીમ્સ સ્ટાનડર્ડ ઈનપુટ,સ્ટાનડર્ડ આઉટપુટ,સ્ટાનડર્ડ એરર કેવી અલગ અલગ રીતે રીડાયરેક્ટ થાય છે અને હાથ ધરવામાં આવે છે.પણ આ વિભાવનાની સાચી શક્તિનું અનુમાન આપણે ત્યારે લગાવી શકીએ જયારે એક સાથે આ સ્ટ્રીમ્સને હાથ ધરવામાં આવે.મતલબ જુદી-જુદી સ્ટ્રીમ્સને જોડવું.
10:20:00 આ પ્રક્રિયાને પાઈપલાઈનીંગ કહેવાય છે.
10:22:00 આદેશોની સાંકળો બનાવવા પાઈપ્સનો ઉપયોગ થાય છે.
10:25:00 પાઈપ એક આદેશના આઉટપુટને સાંકળમાં આવતા તેના પછીના બીજા આદેશના ઈનપુટ સાથે જોડે છે.
10:30:00 આદેશ2-વિકલ્પ|આદેશ3-વિકલ્પ1-વિકલ્પ2|આદેશ4
10:46:00 વર્તમાન ડિરેક્ટરીમાં રહેલી કુલ ફાઈલો અને ડિરેક્ટરીઓની સંખ્યા આપણને જાણવી હોય તો.
10:51:00 આપણે શું કરી શકીએ? આપણે જાણીએ છીએ "ls ખાલી જગ્યા -l" વર્તમાન ડિરેક્ટરીની બધી ફાઈલો અને ડિરેક્ટરીઓની યાદી બતાવે છે.
10:58:00 આ આઉટપુટને આપણે એક ફાઈલમાં રીડાયરેક્ટ કરી શકીએ."ls ખાલી જગ્યા -l 'જમણા ખૂણાવાળો કૌંસ' files.txt"
11:08:00 "cat ખાલી જગ્યા files.txt" અમલમાં મુકીએ.
11:14:00 તો દરેક લીટી ફાઈલ અથવા ડિરેક્ટરીનું નામ છે.
11:17:00 જો આ ફાઈલની કુલ લીટીઓની માત્રા શોધીએ,તો આના માટે આપણે files.txt નો ઉપયોગ કરી શકીએ.
11:24:00 આ આપણે આદેશ "wc ખાલી જગ્યા -l files.txt" દ્વારા કરી શકીએ.
11:32:00 તે આપણો હેતુ પાર પાડે છે છતાં થોડીક મુશ્કેલીઓ છે.
11:35:00 પહેલા આપણને એક ઇન્ટરમીડીએટ ફાઈલ ની જરૂર છે,જે અહીં ફાઈલ files.txt છે.
11:40:00 જો પ્રથમ આદેશ અઢળક ડેટા ઉત્પન્ન કરે છે,તો તે બિન જરૂરી ડિસ્ક મેમરી ખાય છે.
11:46:00 વળી જો આપણને આદેશોની સાંકળ બનાવવી હોય તો,આ પદ્ધતિ ઘણી ધીરી પડે છે.
11:50:00 wc ખાલી જગ્યા -l"
12:01:00 અને આપણને સરખું જ પરિણામ વધારે સરળતાથી મળે છે.
12:06:00 ls આદેશનું આઉટપુટ wc આદેશના ઈનપુટ રીતે જાય છે.
12:10:00 આપણે હજી લાંબી આદેશોની સાંકળ પાઈપ્સ દ્વારા ઉમેરી શકીએ.
12:15:00 પાઈપ્સનો સર્વ સામાન્ય ઉપયોગ છે ઘણા પૃષ્ઠોને પ્રદર્શિત કરવું.
12:19:00 "cd ખાલી જગ્યા /user/bin" લખીએ.
12:24:00 તો આપણે હવે બિન ડિરેક્ટરીમાં છીએ.
12:28:00 હવે "ls -l" આપીએ.
12:31:00 આપણે આઉટપુટ બરાબર જોઈ શકતા નથી.પણ જો આપણે તેને પાઈપ સાથે જોડી ઉપયોગમાં લઈએ તો,આઉટપુટ બરાબર દેખાશે.
12:37:00 યાદી જોવા એન્ટર દબાવીએ.
12:41:00 બહાર નીકળવા "q" દબાવીએ.
12:45:00 આ થોડાક આદેશો હતા જે ફાઈલ સાથે કાર્ય કરવા આપણને મદદરૂપ થાય છે.
12:48:00 હજી બીજા ઘણા આદેશો છે.
12:50:00 વળી,આપણે જે આદેશો જોયા તે ઘણા વિકલ્પો પણ ધરાવે છે.
12:54:00 "man" આદેશ દ્વારા તમે તેના વિશે વધુ જાણકારી મેળવી શકશો.
12:58:00 આદેશો શીખવાનો સૌથી શ્રેષ્ઠ માર્ગ છે તેનો વારંવાર ઉપયોગ કરવો.
13:04:00 અહીં આ ટ્યુ્ટોરીઅલ સમાપ્ત થાય છે.
13:07:00 મૌખિક ટ્યુ્ટોરીઅલ ટોક ટુ અ ટીચર યોજનાનો ભાગ છે.જેને રાષ્ટ્રીય સાક્ષરતા મિશને ICT ના માધ્યમથી સમર્થિત કરેલ છે.
13:15:00 મિશન વિષે વધુ જાણકારી આ લિંક ઉપર ઉપલબ્ધ છે.
13:19:00 IIT Bombay તરફથી હું શિવાની ગડા વિદાય લઉં છું.ટ્યુ્ટોરીઅલમાં ભાગ લેવા આભાર.

Contributors and Content Editors

Chandrika