Course Overview + The Shell

စိတ်ဓာတ်တက်ကြွမှုနှင့် ရည်ရွယ်ချက် (Motivation)

ကွန်ပျူတာသိပ္ပံပညာရှင်များအနေဖြင့် ကွန်ပျူတာများသည် ထပ်ခါတလဲလဲ ပြုလုပ်ရသည့် အလုပ်များကို အလိုအလျောက် ကူညီဆောင်ရွက်ပေးရာတွင် အလွန်တော်စွမ်းကြောင်း ကျွန်ုပ်တို့ သိကြပါသည်။ သို့သော် ဤအချက်သည် ကျွန်ုပ်တို့ ရေးသားသော ပရိုဂရမ်များ၏ တွက်ချက်မှုများအတွက်သာမက၊ မိမိတို့ ကိုယ်တိုင် ကွန်ပျူတာကို အသုံးပြုမှု တွင်ပါ တူညီစွာ သက်ရောက်ကြောင်း မကြာခဏ မေ့လျော့နေတတ်ကြသည်။ ကွန်ပျူတာနှင့် သက်ဆိုင်သော မည်သည့် ပြဿနာကိုမဆို ဖြေရှင်းရာတွင် ပိုမို အလုပ်တွင်စေပြီး ပိုမို ရှုပ်ထွေးသော ပြဿနာများကို ဖြေရှင်းနိုင်စေမည့် tool အမျိုးအစားများစွာကို ကျွန်ုပ်တို့ လက်တစ်ကမ်းတွင် ရရှိနိုင်ပါသည်။ သို့သော် ကျွန်ုပ်တို့အနက် အများစုသည် ယင်း tool များ၏ အစိတ်အပိုင်း အနည်းငယ်မျှကိုသာ အသုံးပြုကြပြီး၊ အခက်အခဲ ကြုံတွေ့ရသည့်အခါ အင်တာနက်မှ command များကို အလွတ်ကျက်၍ ကူးယူ ကူးထည့် (copy-paste) ပြုလုပ်ရုံမျှသာ တတ်မြောက်ထားကြသည်။

ဤသင်တန်းသည် ဤပြဿနာကို ဖြေရှင်းရန် ကြိုးပမ်းချက် ဖြစ်ပါသည်။

သင် သိရှိပြီးသား tool များကို အထိရောက်ဆုံး မည်သို့ အသုံးချရမည်၊ မိမိ၏ tool အိတ်အတွင်းသို့ tool အသစ်များ မည်သို့ ထည့်သွင်းရမည်ကို သင်ကြားပေးလိုပြီး၊ မိမိကိုယ်တိုင် tool များကို ပိုမို လေ့လာရှာဖွေရန် (နှင့် ဖန်တီးရန်) စိတ်အားထက်သန်မှုများ ရရှိစေရန် မျှော်လင့်ပါသည်။ ဤသည်မှာ ကွန်ပျူတာသိပ္ပံ သင်ရိုးညွှန်းတမ်း အများစုတွင် လိုအပ်နေသော သင်ရိုးဖြစ်သည်ဟု ကျွန်ုပ်တို့ ယုံကြည်ပါသည်။

သင်တန်း ဖွဲ့စည်းပုံ (Class structure)

ဤသင်တန်းတွင် ၁ နာရီကြာ သင်ခန်းစာ ၁၁ ခု ပါဝင်ပြီး သင်ခန်းစာ တစ်ခုစီသည် သီးခြား ခေါင်းစဉ်တစ်ခု ပေါ်တွင် ဗဟိုပြုထားပါသည်။ သင်ခန်းစာတစ်ခုချင်းစီသည် သီးခြားစီ လေ့လာနိုင်သော ခေါင်းစဉ်များ ဖြစ်ကြသော်လည်း၊ သင်တန်းကာလ တိုးတက်လာသည်နှင့်အမျှ ယခင် သင်ခန်းစာပါ အကြောင်းအရာများကို သိရှိပြီးဖြစ်သည်ဟု ယူဆသွားမည် ဖြစ်ပါသည်။ သင်ခန်းစာ မှတ်စုများကို အွန်လိုင်းတွင် ရယူနိုင်သော်လည်း၊ သင်ခန်းစာ မှတ်စုတွင် ပါဝင်မည်မဟုတ်သည့် လက်တွေ့ ပြသမှု (demo) များစွာကို အတန်းထဲတွင် သင်ကြားပေးသွားမည် ဖြစ်ပါသည်။ သင်ခန်းစာ ရိုက်ကူးချက်များကိုလည်း အွန်လိုင်းတွင် တင်ပေးထားမည် ဖြစ်ပါသည်။

၁ နာရီကြာ သင်ခန်းစာ ၁၁ ခုအတွင်း အကြောင်းအရာများစွာကို လွှမ်းခြုံနိုင်ရန် ကြိုးစားထားသဖြင့် သင်ခန်းစာများသည် အလွန် သိပ်သည်းပါသည်။ မိမိ၏ လေ့လာမှု အရှိန်အဟုန်အတိုင်း လေ့လာနိုင်ရန်အတွက် သင်ခန်းစာ တစ်ခုစီတွင် အဓိက အချက်များကို လမ်းညွှန်ပေးသော လေ့ကျင့်ခန်းများ ပါဝင်ပါသည်။ သင်ခန်းစာများအပြီးတွင် မေးမြန်းလိုသည်များအတွက် Office Hours ပြုလုပ်ပေးသွားမည် ဖြစ်ပါသည်။ အွန်လိုင်းမှ တက်ရောက်ပါက မေးခွန်းများကို missing-semester@mit.edu သို့ ပို့ဆိုနိုင်ပါသည်။

အချိန် အကန့်အသတ်ရှိသဖြင့် အပြည့်အစုံ သင်ကြားပေးသော သင်တန်းတစ်ခုကဲ့သို့ tool အားလုံးကို အသေးစိတ် မသင်ကြားနိုင်ပါ။ တတ်နိုင်သမျှ သက်ဆိုင်ရာ tool သို့မဟုတ် ခေါင်းစဉ်ကို ပိုမို နက်နက်နဲနဲ လေ့လာနိုင်မည့် အရင်းအမြစ်များကို ညွှန်းဆိုပေးသွားမည် ဖြစ်ပါသည်။

ခေါင်းစဉ် ၁: Shell (Topic 1: The Shell)

Shell ဆိုတာ ဘာလဲ? (What is the shell?)

ယနေ့ခေတ် ကွန်ပျူတာများတွင် Command ပေးနိုင်သော Interface အမျိုးမျိုး ရှိကြပါသည်—လှပသော Graphical User Interface (GUI) များ၊ Voice Interface များ၊ နှင့် AR/VR များအထိ နေရာတိုင်းတွင် ရှိနေကြသည်။ ၎င်းတို့သည် သုံးစွဲမှု ၈၀% အတွက် အလွန် ကောင်းမွန်သော်လည်း၊ ပြုလုပ်နိုင်သည့် အတိုင်းအတာတွင် မူလကတည်းက ကန့်သတ်ချက်များ ရှိနေသည်—မရှိသေးသော ခလုတ်တစ်ခုကို နှိပ်၍ မရသကဲ့သို့ ပရိုဂရမ် မလုပ်ရသေးသော အသံမိန့်န့်ပေးချက်ကို ပေး၍ မရပါ။ မိမိ ကွန်ပျူတာက ပံ့ပိုးပေးထားသော tool များကို အပြည့်အဝ အသုံးချနိုင်ရန်အတွက် ရှေးမူလ စာသား အခြေပြု Interface ဖြစ်သည့် The Shell ထံသို့ ဆင်းသက် အသုံးပြုရမည် ဖြစ်သည်။

သင် အသုံးပြုနိုင်သည့် စက်အများစုတွင် Shell တစ်မျိုးမဟုတ် တစ်မျိုး ပါဝင်ပြီး၊ အချို့တွင် ရွေးချယ်စရာ Shell အမျိုးမျိုး ပါရှိကြသည်။ အသေးစိတ် ကွဲပြားနိုင်သော်လည်း၊ အခြေခံအားဖြင့် ၎င်းတို့သည် တူညီကြသည်—ပရိုဂရမ်များကို Run ရန်၊ Output များကို ကြည့်ရှုရန်နှင့် စနစ်တကျ အလုပ်လုပ်ရန် အခွင့်အရေး ပေးထားသည်။

ဤသင်ခန်းစာတွင် Bourne Again SHell သို့မဟုတ် အတိုကောက် “bash” ကို အဓိက ထား သင်ကြားပေးသွားမည် ဖြစ်သည်။ ဤသည်မှာ အသုံးအများဆုံး Shell များအနက် တစ်ခုဖြစ်ပြီး ယင်း၏ Syntax သည် အခြား Shell အများစုနှင့် ဆင်တူပါသည်။ Command များကို ရိုက်ထည့်နိုင်သော Shell Prompt ဖွင့်လှစ်ရန်အတွက် ပထမဦးစွာ Terminal တစ်ခု လိုအပ်ပါသည်။ သင်၏ စက်တွင် Terminal ပါဝင်ပြီးဖြစ်ပါလိမ့်မည်။

Shell ကို အသုံးပြုခြင်း (Using the shell)

Terminal ကို ဖွင့်လှစ်လိုက်သည့်အခါ အောက်ပါအတိုင်း တွေ့မြင်ရမည့် Prompt ကို တွေ့ရမည် ဖြစ်သည်-

missing:~$

ဤသည်မှာ Shell ၏ အဓိက စာသား Interface ဖြစ်သည်။ သင်သည် missing ဆိုသည့် စက်ပေါ်တွင် ရောက်ရှိနေပြီး မိမိ၏ “Current Working Directory” (လက်ရှိ ရောက်ရှိနေသော Directory) မှာ ~ (Home ၏ အတိုကောက်) ဖြစ်ကြောင်း ဖော်ပြနေခြင်း ဖြစ်သည်။ $ သင်္ကေတသည် သင်သည် Root user မဟုတ်ကြောင်း ဖော်ပြနေခြင်း ဖြစ်သည်။ ဤ Prompt တွင် Shell မှ အဓိပ္ပာယ်ဖော်ယူမည့် Command ကို ရိုက်ထည့်နိုင်ပါသည်။ အခြေခံအကျဆုံး Command မှာ ပရိုဂရမ်တစ်ခုကို Run ခြင်း ဖြစ်သည်-

missing:~$ date
Fri 10 Jan 2020 11:49:31 AM EST
missing:~$

ဒီနေရာမှာ date ပရိုဂရမ်ကို Execute လုပ်ခဲ့ပြီး၊ ယင်းက လက်ရှိ ရက်စွဲနှင့် အချိန်ကို ရိုက်နှိပ်ပြသခဲ့သည်။ ထို့နောက် Shell က အခြား Execute လုပ်မည့် Command ကို ထပ်မံ တောင်းဆိုသည်။ Arguments (ကိန်းရှင်/အရာဝတ္ထု) များနှင့်လည်း Command ကို Execute လုပ်နိုင်သည်-

missing:~$ echo hello
hello

ဤနေရာတွင် echo ပရိုဂရမ်အား hello ဆိုသည့် Argument ဖြင့် Run ရန် Shell ကို ခိုင်းစေခဲ့ခြင်း ဖြစ်သည်။ echo ပရိုဂရမ်သည် ၎င်းထံ ပို့လိုက်သော Argument ကို ပြန်လည် ထုတ်ပေးရုံမျှသာ ပြုလုပ်သည်။ Shell သည် Command ကို ဟာကွက် (whitespace) များဖြင့် ခွဲခြား၍ အဓိပ္ပာယ်ဖော်ပြီး ပထမဆုံး စကားလုံးအတိုင်း ပရိုဂရမ်ကို Run ၍ နောက်ဆက်တွဲ စကားလုံးများကို Argument အဖြစ် ပေးပို့သည်။ ဟာကွက် သို့မဟုတ် အထူး သင်္ကေတများ ပါဝင်သော Argument (ဥပမာ “My Photos” အမည်ရှိ Directory) ပေးပို့လိုပါက ' သို့မဟုတ် " ဖြင့် အုပ်ပေးနိုင်သည် ("My Photos") သို့မဟုတ် သင်္ကေတ ရှေ့တွင် \ ခံပေးနိုင်သည် (My\ Photos)။

သို့သော် Shell သည် date သို့မဟုတ် echo ပရိုဂရမ်များကို မည်သို့ ရှာဖွေရမည်ကို မည်သို့ သိရှိသနည်း။ Shell သည် Python သို့မဟုတ် Ruby ကဲ့သို့သော ပရိုဂရမ်းမင်း ပတ်ဝန်းကျင်တစ်ခု ဖြစ်သဖြင့် Variables များ၊ Conditionals များ၊ Loops များနှင့် Functions များ ပါဝင်ကြသည်။ Shell တွင် Command များ Run သည့်အခါ Shell က အဓိပ္ပာယ်ဖော်မည့် ကုဒ် အသေးစားလေးကို ရေးသားနေခြင်း ဖြစ်သည်။ Command တစ်ခုသည် သီးသန့် Keyword များနှင့် မကိုက်ညီပါက၊ Shell စက်ပေါ်တွင် ပရိုဂရမ်များ ရှာဖွေရမည့် Directory စာရင်း ပါဝင်သော $PATH ဆိုသည့် Environment Variable ကို စစ်ဆေးပါသည်-

missing:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
missing:~$ which echo
/bin/echo
missing:~$ /bin/echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

echo command ကို Run သည့်အခါ Shell က $PATH ထဲရှိ : ဖြင့် ခွဲခြားထားသော Directory စာရင်းများအတွင်း ထိုအမည်ရှိ ဖိုင်ကို ရှာဖွေသည်။ တွေ့ရှိပါက Run ပေးသည် (ဖိုင်သည် Executable ဖြစ်ပါက)။ သတ်မှတ်ထားသော ပရိုဂရမ် မည်သည့် ဖိုင်မှ Execute ဖြစ်သည်ကို which ပရိုဂရမ် ဖြင့် ရှာဖွေနိုင်ပါသည်။ $PATH ကို ကျော်လွန်၍ ဖိုင်၏ လမ်းကြောင်း (path) အပြည့်အစုံ ပေး၍လည်း Run နိုင်ပါသည်။

Shell အတွင်း လမ်းကြောင်းရှာခြင်း (Navigating in the shell)

Shell ပေါ်ရှိ Path သည် Directory များ၏ လမ်းကြောင်းဖြစ်ပြီး Linux/macOS တွင် / ဖြင့်လည်းကောင်း Windows တွင် \ ဖြင့်လည်းကောင်း ခွဲခြားထားသည်။ Linux နှင့် macOS တွင် / လမ်းကြောင်းသည် File System ၏ “Root” (ပင်မ) ဖြစ်ပြီး Directory နှင့် File အားလုံး ယင်းအောက်တွင် ရှိကြသည်။ / ဖြင့် စတင်သော Path ကို Absolute path ဟု ခေါ်ဆိုပြီး အခြား Path များကို Relative path ဟု ခေါ်ဆိုသည်။ Relative path သည် လက်ရှိ ရောက်ရှိနေသော Directory ပေါ် မူတည်ပြီး pwd command ဖြင့် ကြည့်ရှုနိုင်ကာ cd command ဖြင့် ပြောင်းလဲနိုင်ပါသည်။ Path တွင် . သည် လက်ရှိ Directory ကို ညွှန်းဆိုပြီး .. သည် မိခင် (Parent) Directory ကို ညွှန်းဆိုသည်-

missing:~$ pwd
/home/missing
missing:~$ cd /home
missing:/home$ pwd
/home
missing:/home$ cd ..
missing:/$ pwd
/
missing:/$ cd ./home
missing:/home$ pwd
/home
missing:/home$ cd missing
missing:~$ pwd
/home/missing
missing:~$ ../../bin/echo hello
hello

မိမိ ရောက်ရှိနေသော Directory အတွင်း မည်သည့် ဖိုင်/ဖိုင်တွဲများ ရှိသည်ကို ကြည့်ရှုရန် ls command ကို အသုံးပြုသည်-

missing:~$ ls
missing:~$ cd ..
missing:/home$ ls
missing
missing:/home$ cd ..
missing:/$ ls
bin
boot
dev
etc
home
...

Command အများစုသည် ၎င်းတို့၏ လုပ်ဆောင်ချက်ကို ပြောင်းလဲရန် - ဖြင့် စတင်သော Flags နှင့် Options များကို လက်ခံကြသည်။ ပုံမှန်အားဖြင့် -h သို့မဟုတ် --help flag ဖြင့် Run ပါက အကူအညီ စာသားများကို ရိုက်နှိပ်ပြသပေးသည်။ ဥပမာ ls --help က အောက်ပါအတိုင်း ပြသသည်-

  -l                         use a long listing format
missing:~$ ls -l /home
drwxr-xr-x 1 missing  users  4096 Jun 15  2019 missing

ဤသည်မှာ ဖိုင် သို့မဟုတ် Directory ၏ အသေးစိတ် အချက်အလက်များကို ဖော်ပြပေးခြင်း ဖြစ်သည်။ ပထမဆုံး စာကြောင်းစအစရှိ d သည် missing မှာ Directory ဖြစ်ကြောင်း ဖော်ပြသည်။ ထို့နောက် စာလုံး ၃ လုံးပါ အုပ်စု ၃ စု (rwx) ပါရှိပြီး ယင်းတို့သည် ပိုင်ရှင် (missing)၊ ပိုင်ဆိုင်သော အုပ်စု (users)၊ နှင့် အခြားသူများ၏ ရပိုင်ခွင့် ခွင့်ပြုချက် (Permissions) များကို အစဉ်လိုက် ဖော်ပြထားခြင်း ဖြစ်သည်။ r မှာ Read၊ w မှာ Write (ပြင်ဆင်ခြင်း)၊ x မှာ Execute (Run ခြင်း သို့မဟုတ် Directory ထဲ ဝင်ရောက်ခြင်း) ဖြစ်ကြသည်။

အခြား အသုံးဝင်သော Command များမှာ mv (ဖိုင် အမည်ပြောင်း/ရွှေ့ခြင်း)၊ cp (ဖိုင် ကူးယူခြင်း)၊ နှင့် mkdir (Directory အသစ် ဖန်တီးခြင်း) တို့ ဖြစ်ကြသည်။

ပရိုဂရမ်တစ်ခု၏ အသေးစိတ် မူရင်း လမ်းညွှန်ချက် စာအုပ်ကို ကြည့်လိုပါက man command ကို အသုံးပြုနိုင်ပြီး ထွက်ခွာရန် q ကို နှိပ်ပါ-

missing:~$ man ls

ပရိုဂရမ်များကို ချိတ်ဆက်ခြင်း (Connecting programs)

Shell တွင် ပရိုဂရမ်များနှင့် သက်ဆိုင်သော အဓိက “Streams” နှစ်ခု ရှိပါသည်—ယင်းတို့မှာ Input stream နှင့် Output stream တို့ ဖြစ်ကြသည်။ ပုံမှန်အားဖြင့် Input မှာ Keyboard ဖြစ်ပြီး Output မှာ သင်၏ ဖန်သားပြင် ဖြစ်သည်။ သို့သော် ဤ Stream များကို လမ်းကြောင်း ပြောင်းလဲပေးနိုင်ပါသည်!

အလွယ်ကူဆုံး လမ်းကြောင်း ပြောင်းလဲခြင်း (Redirection) မှာ < file နှင့် > file တို့ ဖြစ်ကြသည်-

missing:~$ echo hello > hello.txt
missing:~$ cat hello.txt
hello
missing:~$ cat < hello.txt
hello
missing:~$ cat < hello.txt > hello2.txt
missing:~$ cat hello2.txt
hello

cat သည် ဖိုင်များကို ဆက်စပ်ပေးသော ပရိုဂရမ် ဖြစ်သည်။ ထို့ပြင် >> ကို အသုံးပြု၍ ဖိုင်၏ အဆုံးတွင် စာသားများ ထပ်ပေါင်းထည့်နိုင်ပါသည်။

ဤ Input/Output redirection ၏ စွမ်းအားကို Pipes များတွင် ပိုမို တွေ့မြင်နိုင်ပါသည်။ | သင်္ကေတသည် ပရိုဂရမ်တစ်ခု၏ Output ကို အခြား ပရိုဂရမ်တစ်ခု၏ Input အဖြစ် ချိတ်ဆက်ပေးနိုင်ပါသည်။

missing:~$ ls -l / | tail -n1
drwxr-xr-x 1 root  root  4096 Jun 20  2019 var
missing:~$ curl --head --silent google.com | grep --ignore-case content-length | cut --delimiter=' ' -f2
219

သုံးရလွယ်ကူပြီး စွမ်းအားထက်မြက်သော tool တစ်ခု (A versatile and powerful tool)

Unix စနစ်များတွင် အထူး ပိုင်ဆိုင်ခွင့်ရှိသော User တစ်ယောက် ရှိပါသည်—ယင်းမှာ “root” user ဖြစ်သည်။ Root user သည် စနစ်တစ်ခုလုံးရှိ မည်သည့် ဖိုင်ကိုမဆို ဖန်တီးခြင်း၊ ဖတ်ရှုခြင်း၊ ပြင်ဆင်ခြင်းနှင့် ဖျက်ဆီးခြင်းများ ပြုလုပ်နိုင်သည်။ သို့သော် မတော်တဆ ပျက်စီးမှုများ မဖြစ်စေရန်အတွက် ပုံမှန်အားဖြင့် Root user အဖြစ် Log in မဝင်ဘဲ sudo command ကို အသုံးပြုကြသည်။ Permission denied error များ ကြုံတွေ့ရပါက Root အဖြစ် လုပ်ဆောင်ရန် လိုအပ်၍ ဖြစ်လေ့ရှိသည်။

ဥပမာအားဖြင့် Laptop စခရင်၏ လင်းထင်းမှုကို /sys/class/backlight အောက်ရှိ brightness ဖိုင်အတွင်း စာသား ရေးသားခြင်းဖြင့် ပြောင်းလဲနိုင်ပါသည်။

$ echo 3 | sudo tee brightness

tee ပရိုဂရမ်သည် root အဖြစ် အလုပ်လုပ်သဖြင့် /sys ဖိုင်ကို ရေးသားနိုင်ခြင်း ဖြစ်ပါသည်။

နောက်ထပ် လုပ်ဆောင်ရမည့် အဆင့်များ (Next steps)

ယခုအခါ အခြေခံ အလုပ်များကို လုပ်ဆောင်နိုင်ရန် Shell ကို အသုံးပြုတတ်ပြီ ဖြစ်သည်။ နောက်သင်ခန်းစာတွင် Shell နှင့် အသုံးဝင်သော Command-line ပရိုဂရမ်များကို အသုံးပြု၍ ပိုမို ရှုပ်ထွေးသော အလုပ်များကို မည်သို့ အလိုအလျောက် ခိုင်းစေရမည်ကို သင်ကြားပေးသွားမည် ဖြစ်ပါသည်။

လေ့ကျင့်ခန်းများ (Exercises)

၁။ ဤသင်တန်းအတွက် Bash သို့မဟုတ် ZSH ကဲ့သို့သော Unix Shell တစ်ခု အသုံးပြုရန် လိုအပ်ပါသည်။ Windows အသုံးပြုသူ ဖြစ်ပါက Windows Subsystem for Linux (WSL) သို့မဟုတ် Linux Virtual Machine ကို အသုံးပြုနိုင်သည်။ မိမိ သင့်လျော်သော Shell အသုံးပြုနေကြောင်း စစ်ဆေးရန် echo $SHELL ဟု ရိုက်ထည့် စစ်ဆေးပါ။ ၂။ /tmp အောက်တွင် missing အမည်ရှိ Directory အသစ်တစ်ခု ဖန်တီးပါ။ ၃။ touch ပရိုဂရမ်အကြောင်း man touch ဖြင့် လေ့လာပါ။ ၄။ touch ကို အသုံးပြု၍ missing ထဲတွင် semester အမည်ရှိ ဖိုင်အသစ်တစ်ခု ဖန်တီးပါ။ ၅။ ထိုဖိုင်အတွင်း အောက်ပါအတိုင်း တစ်ကြောင်းစီ ရေးသားပါ-

   #!/bin/sh
   curl --head --silent https://missing.csail.mit.edu

၆။ ဖိုင်ကို Execute လုပ်ကြည့်ပါ (ဥပမာ ./semester ဟု ရိုက်ထည့်ပါ)။ အဘယ်ကြောင့် အလုပ်မလုပ်ကြောင်း ls output ကို စစ်ဆေး၍ နားလည်အောင် ကြည့်ပါ။ ၇။ Command ကို Explicit အဖြစ် sh semester ဟု Run ကြည့်ပါ။ အဘယ်ကြောင့် ./semester တုန်းက အလုပ်မလုပ်ဘဲ ယခု အလုပ်လုပ်သနည်း။ ၈။ chmod ပရိုဂရမ်အကြောင်း လေ့လာပါ။ (man chmod) ၉။ chmod ကို အသုံးပြု၍ sh semester ရိုက်စရာ မလိုဘဲ ./semester ဟု တိုက်ရိုက် Run နိုင်အောင် ပြုလုပ်ပါ။ ၁၀။ | နှင့် > များကို အသုံးပြု၍ semester မှ ထွက်ပေါ်လာသော “last modified” ရက်စွဲကို မိမိ Home directory ထဲရှိ last-modified.txt ဖိုင်ထဲသို့ ရေးသားပါ။ ၁၁။ /sys မှ မိမိ Laptop ဘက်ထရီ ပမာဏ သို့မဟုတ် CPU အပူချိန်ကို ဖတ်ရှုသော Command တစ်ခု ရေးသားပါ။


Edit this page.

Licensed under CC BY-NC-SA.