Linux Terminal / Command Line Tricks

August 3 2014

Linux User တွေအနေနဲ့ သိထားသင့်တဲ့ Terminal အသုံးပြုပုံလေးတွေပါ။ အပြည့်အစုံကြီး မဟုတ်ပေမယ့် အသုံးဝင်တဲ့ နည်းလမ်းလေးတချို့ကိုပဲ အသုံးများတဲ့ Ubuntu ပေါ်အခြေခံပြီး အဓိကထားမျှဝေလိုက်ပါတယ်။

Shortcuts


Terminal အသစ်ဖွင့် Control + Alter + T
Tab အသစ်ဖွင့် Control + Shift + T
Zoom In (စာလုံးကြီး) Control + Shift + = (Control + +)
Zoom Out (စာလုံးသေး) Control + -
Copy Control + Shift + C
Paste Control + Shift + V
Command အစသို့ Control + A
Command ဖျက် Control + U

Command Completion

Ubuntu ရဲ့ Terminal မှာ ကိုယ်ရိုက်လိုက်တဲ့ command ရဲ့ စာလုံး အပြည့်အစုံကို Tab key ၂ချက်နှိပ်ပြီး ဖြည့်နိုင်ပါတယ်။ ဥပမာအနေနဲ့ apt လို့ရိုက်ပြီး Tabkey ၂ချက်နှိပ်လိုက်မယ်ဆိုရင် ပုံမှာပြထားတဲ့အတိုင်း apt နဲ့စတဲ့ command တွေပြပေးပါလိမ့်မယ်။ i တစ်လုံးထပ်တိုးပြီး (apti) Tab ထပ်နှိပ်ပါက aptitude ဆိုပြီး ဖြည့်ပေးသွားမှာပါ။ Command အစစာလုံး တစ်လုံး နှစ်လုံးရိုက်ပြီး Tab နှိပ်တာနဲ့ အဲဒီ စာလုံးနဲ့စတဲ့ Command ကိုပြပေးသွားတာဖြစ်ပါတယ်။

$ apt[tab][tab]
$ apti[tab][tab]

Completion

Directory လမ်းကြောင်းတွေမှာလဲသုံးနိုင်ပါတယ်။

$ cd Do[tab][tab]
$ cd Dow[tab][tab]

Directory Completion

မှတ်ချက်။ ။ တချို့ Distro တွေမှာတော့ Completion အလုပ်လုပ်ဖို့ configure ပြန်လုပ်ပေးဖို့ လိုပါတယ်။


History

Terminal ထဲ ရိုက်ထားတဲ့ command တွေကိုတော့ keyboard က Up Arrow key နှိပ်ပြီး ပြန်ခေါ်သုံးနိုင်ပါတယ်။ အကယ်၍များ ရိုက်ဖူးတဲ့ command တစ်ခုကို အပြည့်အစုံမမှတ်မိခဲ့ရင် history command သုံးပြီး ပြန်ရှာနိုင်ပါတယ်။ ပုံမှာပါတဲ့အတိုင်း history | grep နဲ့တွဲပြီး ကိုယ်ရှာချင်တဲ့ command မှာပါတဲ့ စာသာတချို့ ရိုက်ထည့်ပေးရမှာပါ။

$ history | grep [some_part_of_command]

History


! - Bang

နောက်ဆုံးရိုက်ခဲ့တဲ့ command ကိုပြန်ခေါ်ချင်တယ်ဆိုရင်တော့ !! ကိုသုံးနိုင်ပါတယ်။

$ gedit /tmp/test
$ !!

ဥပမာပြထားတဲ့အတိုင်း ပထမ ရိုက်လိုက်တဲ့ “gedit /tmp/test” ဆိုတဲ့ command ကိုပြန် ခေါ်ချင်တယ်ဆိုရင် အပြည့်အစုံ ပြန်ရိုက်စရာမလိုပါဘူး။ !! လို့ရိုက်လိုက်တာနဲ့ “gedit /tmp/test” ဆိုတဲ့ command ပြန်ရိုက်ပြီးသားဖြစ်သွားမှာပါ။

$ gedit /tmp/test
$ cd ~/Download
$ !ge

bang

gedit command သုံးပြီးတဲ့နောက် Home အောက်က Download ဆိုတဲ့ folder ထဲကို ပြောင်းတဲ့ command ရိုက်လိုက်ပါတယ်။ !! လို့ရိုက်ရင်တော့ “cd ~/Download” ဆိုတဲ့ command ကို ပြန်ခေါ်တာဖြစ်သွားပါလိမ့်မယ်။ ပြထားတဲ့အတိုင်း !ge လို့ရိုက်လိုက်ရင်တော့ History ထဲက ge နဲ့စတဲ့ command တွေထဲကမှ နောက်ဆုံး command ကိုပြန်ခေါ်ပေးမှာပါ။ “gedit /tmp/test” လို့ပြန်ရိုက်လိုက်တာနဲ့အတူတူပါပဲ။

အကယ်၍များ ရိုက်လိုက်တဲ့ command တစ်ခုက root permission လိုခဲ့မယ်ဆိုရင်လဲ အကုန်ပြန်ရိုက်စရာမလိုပါဘူး။ sudo !! လို့ပဲရိုက်စရာလိုပါတယ်။

$ apt-get update
$ sudo !!

sudo

ပုံမှာပြထားတဲ့အတိုင်း ပထမ apt-get update လို့ရိုက်လိုက်ပါတယ်။ root permission လိုတယ်ဆိုပြီး error ပြလာတဲ့အတွက် sudo command နဲ့ “sudo apt-get update” ဆိုပြီးပြန်ရိုက်ရမှာပါ။ ဒါပေမယ့် အပြည့်အစုံပြန်မရိုက်ပဲ sudo !! ကိုသုံးလိုက်တာပါ။ အပေါ်မှာပြောခဲ့တဲ့အတိုင်း !! က နောက်ဆုံးရိုက်လိုက်တဲ့ command ကိုပြန်ခေါ်ပေးတာပါ။ ဒါကြောင့် sudo !! လို့ရိုက်လိုက်တာက sudo apt-get update လို့ရိုက်လိုက်တာနဲ့ အတူတူဖြစ်သွားပါတယ်။

!? ကိုတော့ ရိုက်ဖူးတဲ့ command တွေထဲကမှ သတ်မှတ်ထားတဲ့ စာသားပါတဲ့ command ကိုပြန်ခေါ်တဲ့အခါသုံးနိုင်ပါတယ်။

$ gedit /tmp/test
$ gedit ~/Documents/test
$ !?mp
$ !?men

! ကို တခြား သုံးလို့ရတာလေးတွေရှိပါသေးတယ်။ သိပ် အသုံးမဝင်ပေမယ့် သိထားရအောင်ပါ။ အောက်မှာပြထားတဲ့အတိုင်း အစဉ်လိုက် ရိုက်ပြီး စမ်းကြည့်ပါ။ sudo apt-get upgrade ရိုက်လိုက်လို့ password ဒါမှမဟုတ် Yes/No မေးလာခဲ့ရင် ဆက်မသွားပဲ Control+C နှိပ်ပြီး cancel လုပ်နိုင်ပါတယ်။ ပြီးမှ ! နဲ့စတဲ့ command ကို ဆက်ရိုက်ပါ။

$ !1
$ !2
$ sudo apt-get upgrade
$ !:0
$ sudo apt-get upgrade
$ !:1
$ sudo apt-get upgrade
$ !:-1
$ sudo apt-get upgrade
$ !:-2

ရလာမယ့် result တွေကတော့

!1 => History ထဲမှ ထမဦးဆုံး command ပါ။ history | more ဆိုတဲ့ command နဲ့ စစ်ကြည့်နိုင်ပါတယ်။

!2 => History ထဲမှ ဒုတိယ command ပါ။

!:0 => နောက်ဆုံးရိုက်ထားသော command (sudo apt-get upgrade) ရဲ့ ပထမဆုံး အပိုင်း sudo ကိုတွေ့ရပါလိမ့်မယ်။

!:1 => sudo apt-get upgrade ရဲ့ ဒုတိယအပိုင်း apt-get ကိုတွေ့ရပါလိမ့်မယ်။

!:-1 => sudo apt-get upgrade ရဲ့ရှေ့ ၂ပိုင်း sudo apt-get ကိုတွေ့ရမှာပါ။

!:-2 => !! ရိုက်လိုက်သလိုပါပဲ sudo apt-get upgrade အပြည့်အစုံ ပြန်မြင်ရပါလိမ့်မယ်။

Command ရှည်ရင်ရှည်သလို !: နောက်က နံပါတ်ကို တိုးသွားနိုင်ပါတယ်။ !2:1 !2:-1 စသဖြင့်လဲ ပေါင်းစပ်ရေးသားနိုင်ပါသေးတယ်။

နောက်ဆုံးရိုက်ခဲ့တဲ့ command ရဲ့ Parameter တွေလိုချင်ရင်

$ !!*

နောက်ဆုံးရိုက်ခဲ့တဲ့ command ရဲ့ ပထမဆုံး Parameter ကိုလိုချင်ရင်

$ !!^

နောက်ဆုံးရိုက်ခဲ့တဲ့ command ရဲ့ နောက်ဆုံး Parameter ကိုလိုချင်ရင်

$ !!$

နောက်ဆုံးရိုက်ခဲ့တဲ့ command ရဲ့ ဒုတိယမြောက် Parameter ကိုလိုချင်ရင်

$ !!2

!!:p ဆိုတာရှိပါသေးတယ်။ !! နဲ့ကွာခြားတာက !! က နောက်ဆုံး command ကို တန်း run ပေးတာဖြစ်ပြီး !!:p က စာသား ရိုက်ထုတ်ပေးရုံသက်သက်ပဲဖြစ်ပါတယ်။

$ !!:p

နောက်ဆုံးရိုက်ထားတဲ့ command ကိုမှ စာသားတချို့ အစားထိုးချင်တယ်ဆိုရင်တော့ !!:s ကိုသုံးနိုင်ပါတယ်။

!!:s/[ပြင်လိုသည့်စာသား]/[ပြင်မည့်စာသား]/

ပြထားတဲ့ format အတိုင်း ရိုက်ပြီး ပြင်နိုင်ပါတယ်။

$ sudo apt-get update
$ !!:s/date/grade

ဥပမာထဲကအတိုင်းဆိုရင်တော့ ပထမရိုက်ထားတဲ့ sudo apt-get update ဆိုတဲ့ စာသားကို sudo apt-get upgrade ဆိုပြီးပြောင်းပေးသွားမှာပါ။ update ရဲ့ date ဆိုတဲ့ နေရာမှာ grade ဆိုတဲ့ စာသားအစားထိုးပြီး upgrade လို့ ပြင်လိုက်တာပါ။


Calculator

Terminal မှာ ပေါင်း၊ နှုတ်၊ မြောက်၊ စား လုပ်ချင်တယ်ဆိုရင်တော့

$ echo $[(10+10+5)*2]
$ 50

တခြားအသုံးဝင်မယ့် နည်းလမ်းလေးတွေလည်း ဆက်လက်ရေးသားပါဦးမယ်။


Related Post: Linux Terminal / Command Line Tricks (2)


comments powered by Disqus