Introduction
ယခု လက်တွေ့ပြုလုပ်မယ့် Lab မှာ သက်ဆိုင်ရာ Tools တွေ အသုံးပြုပြီး တနေရာမှ တနေရာသို့ Information တွေ ပို့တာ လွှဲပြောင်းတာတွေကို အဓိကပြုလုပ်ပါမယ်။ Linux Command Line ဟာ Information တွေကို သက်ဆိုင်ရာ Standard Channels တွေမှတဆင့် လွှဲပြောင်းတာပါ။ Command တစ်ခုရဲ့ Standard Input (stdin or Channel 0) အတွက် Keyboard မှရယူတာဖြစ်ပြီး Standard Output (stdout or Channel 1) ဆိုလျင်တော့ Screen မှာ ထုတ်ပြမှာပါ။ နောက်ထပ် Channel တစ်ခုကတော့ Error Output (stderr or Channel 2) အဖြစ် Command တစ်ခု (သို့) Program တစ်ပုဒ်ရဲ့ Error Messages တွေကို လွှဲပေးပါတယ်။ Input နှင့် Output တွေကို လမ်းလွှဲတာတွေ၊ လွှဲပြောင်းတွေ လုပ်နိုင်တာပါ။
Command တစ်ခုကို Run လိုက်တဲ့အခါ၊ တခါတရံမှာ အချို့သော Information တွေကို အဲ့ဒီ Command တွေကိုပဲ လွှဲပေးချင်တာ (သို့) ဖိုင်တခုခုဆီကို Output ပြန်လွှဲပေးလိုတာတွေ ရှိတတ်ပါတယ်။ နောက်အခန်းတွေမှာ ပြောသွားပါမယ်။
I/O Redirection
Command တစ်ခုမှ/သို့ Information တွေကို Text File သုံးပြီး လွှဲပြောင်းရယူ/ပေးပို့တာဟာ I/O Redirection ပါပဲ။ ဖော်ပြခဲ့တဲ့ Standard Input, Output တွေနှင့် Error Output တွေကို လွှဲပြောင်းနိုင်တာ၊ Text Files တွေမှ Information တွေ ရယူနိုင်တာမျိုးတွေပါ။
Redirecting Standard Output
Standard Output အဖြစ် Screen မှာပြမယ့်အစား၊ ဖိုင်တဖိုင်ဆီသို့ လွှဲပြောင်းဖို့ရာ ‘>’ Operator ကို ဖိုင်အမည်တွဲထည့်ပြီး သုံးရမှာပါ။ ဖိုင်မရှိလျင်တော့ ဖိုင်အသစ်ဖန်တီးပေးမှာြဖစ်ပြီး၊ ရှိပြီးသားဆိုလျင်တော့ မူလ Information တွေပေါ်မှာ Overwrite ဖြစ်ပြီး ထပ်ရေးသွားမှာပါ။
အဲ့ဒီလို ဖန်တီးလိုက်တဲ့ဖိုင်တွေရဲ့ Contents တွေကို ကြည့်ဖို့ ‘cat’ Command ကို သုံးနိုင်ပါတယ်။ ပုံမှန်အားဖြင့်တော့ ဒီ Command ဟာ File Contents တွေကို Screen ပေါ်မှာပဲပြတာပါ။ ‘cat’ Command မှာ Options အမျိုးမျိုးသုံးပြီး Output အမျိုးမျိုးရနိုင်ဖို့ Manual Page မှာကြည့်ရပါမယ်။
အောက်က ဥပမာမှာ Operator ရဲ့ အလုပ်လုပ်ပုံကို ပြထားပါတယ်။ ပထမ ဥပမာမှာ “Hello World” ဆိုတဲ့ စာသားပါဝင်တဲ့ ဖိုင်အသစ်တစ်ဖိုင်ဖန်တီးထားတာပါ။
ဒုတိယဥပမာကတော့ ရှိပြီးသားဖိုင်ထဲကိုပဲ စာသားအသစ်ထပ်ထည့်ပြပါတယ်။
ဖိုင်ရဲ့အဆုံးမှာ Information အသစ်ထပ်ထည့်ဖို့ဆိုလျင်တော့ ‘>>’ Operator ကို သုံးရမှာပါ။ ရှိပြီးသားဖိုင်ကို ညွှန်းတာမဟုတ်လျင်တော့ ဖိုင်အသစ်တဖိုင်ဖန်တီးပေးမှာပါ။
ပထမဥပမာမှာ စာသားအသစ်ထပ်ထည့်သွားတာကို အခုလိုတွေ့ရပါမယ်။
ဒုတိယဥပမာကတော့ ဖိုင်အသစ်တဖိုင်ကို ဖန်တီးပေးသွားတာပါ။