Sunday, May 13, 2012

Daily use 10 of Linux Commands

လူတိုင္းနီးပါ၊ Linux သံုးတဲ့သူမွမဟုတ္ပါဘူး၊ ဘယ္ OS ကုိ သံုးတဲ့သူျဖစ္ျဖစ္ command မရိုက္ခ်င္ၾကပါဘူး။ ဒါေပမဲ႔ Linux မွာ Command ကုိ သံုးတာ အလုပ္ကုိတြင္က်ယ္ေစပါတယ္။ ေရြးခ်ယ္စရာေတြမ်ားတယ္။ စိတ္ခ်ရတယ္။

/usr/bin ထဲမွာ command ေပါင္း ၂၁၉၉ နီးပါး ရွိပါတယ္။ /usr/sbin ထဲမွာေတာ့ ၃၈၈ ေလာက္ ရွိပါတယ္ လို႔ (Mandriva Spring 2008) တုန္းက မွတ္ခ်က္ျပဳထားပါတယ္။ အဲဒီ Command ေတြ အကုန္လံုးကုိ မသိေတာင္ အနည္းဆံုး ၁၀ ခုေလာက္ေတာ့ Linux ကုိ ေန႔စဥ္ အသံုးျပဳေနတဲ့ သူေတြ သိသင့္ပါတယ္။

ကြ်န္ေတာ္တို႔ အၿမဲတမ္းအသံုးျပဳေနတဲ့ command ေတြရွိပါတယ္။ (cd,ls,rm,etc… (etc က ေတာ့ command မဟုတ္ဘူးေနာ္)) အဲေလာက္တင္လားဆိုေတာ့ မဟုတ္ေသးပါဘူး။ အရမ္း အသံုး၀င္တဲ့ command ေတြ ရွိပါေသးတယ္။ ဘယ္ linux မွာ ျဖစ္ျဖစ္ အသံုးျပဳလို႔ရပါတယ္။ ၾကည့္ၾကည့္ပါအံုး။

၁၊ top

“top” ကေတာ့ အခုလက္ရွိဘာေတြ လုပ္ေနလည္း၊ ဘယ္ ပရုိဂရမ္ေတြ ဖြင့္ထားလည္း၊ ဘယ္ဟာက RAM ဘယ္ေလာက္သံုးေနလည္း၊ စက္ရဲ႕ RAM က ဘယ္ေလာက္ရွိလည္းဆိုတာေတြအကုန္ ျပေနပါလိမ့္မယ္။ တစ္ခုခု အသစ္ ဖြင့္လိုက္တိုင္းလည္း အဲဒီ list ထဲမွာ ျပေနမွာပဲ ျဖစ္ပါတယ္။

“top” က သင့္ကုိ အခ်ိန္နဲ႔ တစ္ေျပးညီ သင့္စက္ ဘာေတြ လုပ္ေနလည္း ဆိုတာကုိ ျပေပးမွာျဖစ္ပါတယ္။ (#top) ကိုရိုက္လိုက္ရင္ အခု လက္ရွိ ကြန္ျပဴတာက လုပ္ေနတဲ့ အလုပ္ေတြ အကုန္လံုးျပပါလိမ့္မယ္။ root က ဘာေတြ လုပ္ေနလည္း၊ User က ဘာေတြလုပ္ေနလည္း စသည္ျဖင့္။ ဘယ္ user က ဘယ္ ပရုိဂရမ္ကုိ အသံုးျပဳေနလညး္ ဆိုတာကိုလည္း (#top -u username) အားျဖင့္ User တစ္ေယာက္ခ်င္းစီ လုပ္ေဆာင္ခ်က္ေတြကုိလည္း ၾကည့္ႏိုင္ပါတယ္။

GUI မွာေတာ့ System Monitor လို႔ေခၚပါတယ္။ Windows မွာေတာ့ Task Manager ပါ။ GUI မွာေတာ့ အျမဲတမ္း အေရွ႕ဆံုးမွာ focus ျဖစ္ေနပါတယ္။ command မွာေတာ့ minimize လုပ္ထားႏိုင္ပါတယ္။

၂၊ ln

bookmark လုပ္တာပါ။ Network ထဲက Folder ကုိ ျဖစ္ျဖစ္၊ Server က folder တစ္ခုတည္းကုိ User အမ်ားၾကီးက သံုးခ်င္တယ္ဆိုရင္ပဲ ျဖစ္ျဖစ္ ခ်ိတ္ေပးထားႏိုင္ပါတယ္။ Network ထဲမွာဆိုရင္ လံုၿခံဳေရးပိုင္း အေနနဲ႔လည္း ကာကြယ္ျပီးသားျဖစ္ေနပါလိမ့္မယ္။ (ဥပမာ Group တစ္ခုလုပ္ထားျပီး အဲဒီ Group ထဲက user ေတြကုိပဲ အဲဒီ Folder ကို read/write ေပးလုပ္မယ္ဆိုသလိုမ်ိဳးေပါ့) GUI (nautilus) မွာ ေတာ့ Bookmark ဆိုတာပါပါတယ္။ Windows မွာဆိုရင္ Desktop shortcut လုပ္သလိုမ်ိဳးပါ။

၃၊ tar/zip/gzip/unrar/unzip

ဖိုင္ေတြကုိ ၿခံဳ႕လို႔ရမယ္။ ၿခံဳ႕ထားတဲ့ ဖုိင္ေတြကုိ ျဖည္မယ္။ Argument ေတြ ေျပာင္းလိုက္ယံုနဲ႔ အလြယ္တကူ ကိုယ္လုပ္ေစခ်င္တာ လုပ္သြားတဲ့ အတြက္ အလုပ္ကုိ လြယ္ကူျမန္ဆန္ေစပါတယ္။ GUI နဲ႔ဆိုရင္ေတာ့ Right click > Extract here ေပါ့။

၄၊ nano,vi,emacs

command line text editor ပါ။ nano လား၊ vi လား၊ emacs လား၊ အဲဒီစစ္ထဲေတာ့ ကြ်န္ေတာ္မပါခ်င္ပါဘူး။ ႀကိဳက္တာသံုးပါ။ ကြ်န္ေတာ္ကေတာ့ nano သံုးပါတယ္။ ေတာ္ေတာ္မ်ားမ်ားကေတာ့ ေျပာပါတယ္။ nano က အသံုးသိပ္မတည့္ဘူးေပါ့။ လုပ္လို႔ရတယ့္ function နည္းတယ္လို႔ ေျပာၾကပါတယ္။ အဲဒါကပဲ ကြ်န္ေတာ့္အတြက္ေတာ့ အလြန္ရိုးရွင္းေနတာပါ။ Linux စက္တစ္လံုးကုိ Administration လုပ္မယ္ဆိုရင္ေတာ့ command line text editor တစ္ခုခုကုိ မျဖစ္မေန ကိုင္တြယ္ အသံုးျပဳတတ္ေနရပါမယ္။ GUI မွာေတာ့ Gvim ဒါမွမဟုတ္ gedit ရွိပါတယ္။

၅၊ grep

ဒီ command ကေတာ့ လူႀကိဳက္ေတာ္ေတာ္မ်ားပါတယ္။ ဖိုင္တစ္ဖိုင္ကုိ လိုခ်င္သလို ပိုင္းပိုင္း ဖတ္လို႔ရတာပါပဲ။ ဥပမာ httpd.conf ဖိုင္ကုိ ဖတ္မယ္ ဆိုပါဆို႔။ အဲဒီဖိုင္က စာေၾကာင္းေရ ၁၀၀၀ ေက်ာ္ရွိတယ္။ အဲဒီဖိုင္ထဲမွာ ဘယ္ေနရမွာ “AccessFileName .htaccess” ဆိုတာရွိသလည္းသိခ်င္တယ္။

စာေၾကာင္း ၁၅၃ မွာ ရွိပါတယ္ဆိုပါဆို။ ရိုးရိုး ဖတ္မယ္ဆိုရင္ ၁၅၃ ကုိေရာက္ေအာင္ down arrow ကုိ ဖိထားရပါတယ္။ ဖိထားယံုနဲ႔ေတာ့မရပါဘူး၊ လိုက္ဖတ္ေနရအံုးပါမယ္။ grep သံုးၾကည့္ရေအာင္။ grep -n “AccessFileName .htaccess” /etc/apache2/apache2.conf ဒါဆို terminal မွာ “153:AccessFileName .htaccess” ဆိုျပီး တန္းျပပါလိ့မ္မယ္။ လြယ္ဘူးလားဗ်ာ။

GUI မွာ gedit နဲ႔ဖြင့္ျပီး Search လုပ္လို႔ရပါတယ္။

“grep” က တစ္ျခား command ေတြနဲ႔လည္း piping (|) နဲ႔ခံျပီး တြဲသံုးလို႔ရပါေသးတယ္။ ဥပမာ တစ္ခုအေနနဲ႔ “ps”(လက္ရွိဘာေတြ run ေနလည္းဆိုတာၾကည့္တာပါ) နဲ႔တြဲသံုးၾကည့္ရေအာင္။ firefox က အလုပ္ေကာင္းေကာင္းမလုပ္ပဲ hang ေနတယ္ ဆိုပါေတာ့။ firefox ရဲ႕ PID ကုိ ၾကည့္ျပီးေတာ့ firefox ကုိ ပိတ္ပစ္ခ်င္တယ္။ “ps aux” ရိုက္လိုက္ရင္ Run ထားတာေတြ အကုန္ထြက္လာပါလိမ့္မယ္။ အမ်ားၾကီးထဲကမွ firefox ကိုလိုက္ရွာေနမလား ၾကာပါတယ္။ “ps aux|grep firefox” လို႔ေျပာင္းရိုက္လိုက္ပါ။ firefox’s process တစ္ခုတည္း ျမင္ရပါလိမ့္မယ္။

GUI မွာ System monitor ကေန ၾကည့္လို႔ရပါတယ္။

၆၊ chmod

File/folder ေတြကုိ permissions ေျပာင္းတာပါ။ Web tool ေတာ္ေတာ္မ်ားမ်ားမွာ တိက်တဲ့ permissions လုိပါတယ္။ chmod ကုိ မသံုးခင္ w=write,r=read,နဲ႔ x=execute ကုိ အမွတ္ရေနပါ။ ဘယ္ဖိုင္က ဘယ္ permissions ေတြလိုလည္း ေသေသခ်ာခ်ာၾကည့္ပါ။ rw- rw- rw- ဆိုရင္ေတာ့ User, Group and Other User အကုန္လံုး read/write permissions ရေနပါလိမ့္မယ္။ အဆင္မေျပပါ။ Other user အတြက္ အကန္႔အသတ္နဲ႔သာျဖစ္သင့္ပါတယ္။ read only ဒါမွမဟုတ္ execute only. GUI (nautilus) မွာ ေတာ့ right click > properties > Permissions

၇၊ dmesg

old-school လုိ႔ ကြ်န္ေတာ့္ကုိ ေခၚခ်င္ေခၚပါ။ ဒါေပမယ့္ device တစ္ခု Linux စက္မွာ တပ္လိုက္တာနဲ႔ dmesg ကုိ အရင္ဆံုးရိုက္ပါတယ္။ သူက kernel buffer ေတြအားလံုးကုိ ျပပါတယ္။ အေရးၾကီးပါတယ္။ သိသင့္သိထိုက္ တဲ့ information ေတြ ျဖစ္တဲ့ system architecture, gpu, network device, kernel boot options used, RAM totals စသည္ျဖင့္ပါ။

နည္းနည္း trick ေလးလုပ္ၾကည့္ခ်င္လား။ tail ခံျပီး ရိုက္ၾကည့္ရေအာင္။ (dmesg | tail -f) ဒါဆိုရင္ ေနာက္ ဆံုး ေလးငါးေၾကာင္း ျပပါလိမ့္မယ္။ ဒါေပမယ့္ တစ္ခုခု ထူးျခားတိုင္း (စက္ကုိ အလုပ္ေတြမ်ားႀကီး ခိုင္းထားတဲ့အခ်ိန္ ဒါမွမဟုတ္ debugging လုပ္ေနတုန္းအခ်ိန္) အဲဒီ ေလးငါးေၾကာင္းမွာပဲ အသစ္ အသစ္ေတြကုိ ျမင္ေနရပါလိမ့္မယ္။

၈၊ kill/killall

အခုဆိုရင္ Linux kernel က ေတာ္ေတာ့္ကုိ stability ျဖစ္ေနပါျပီ။ kernel န႔ဲ မသက္ဆိုင္တဲ့ တစ္ခ်ိဳ႕ ေဆာ့၀ဲ ေတြက တစ္ခါတစ္ေလ ေၾကာင္တတ္ပါတယ္။ အဲဒီအတြက္ သူ႔ကုိ ဖ်က္ထုတ္ပစ္ဖုိ႔(အဲဒီ ေဆာ့၀ဲကုိ restart ျပန္လုပ္ပစ္ဖို႔ ရပ္ပစ္ျပီး ျပန္စဖို႔) လိုပါတယ္။ အဲဒီအတြက္ အျမန္ဆံုးနည္းလမ္းကေတာ့ “kill” ဒါမွမဟုတ္ “killall” နဲ႔ လုပ္ပစ္တာပါပဲ။ “kill” နဲ႔ “killall” ကြာတာကေတာ့ kill က PID(process ID number) လိုျပီး၊ killer ကေတာ့ ေဆာ့ဝဲ နာမည္လိုပါတယ္။

တစ္ခုလုပ္ၾကည့္ရေအာင္။ ဥပမာ၊ firefox က hang ျဖစ္ေနတယ္ ဆိုပါေတာ့။ firefox ကုိ ရပ္ပစ္ဖို႔အတြက္ kill ကုိ အသံုးျပဳပါမယ္။ kill ကုိ အသံုးျပဳမယ္ဆိုရင္ PID လုိမယ္။ ဘယ္လိုရမလညး္ ဆိုေတာ့ ps aux|grep firefox နဲ႔ ၾကည့္ရပါမယ္။ PID ကို ps နဲ႔မၾကည့္ခ်င္ဘူးဆိုရင္လညး္ killall firefox ဆိုျပီး တန္းရိုက္လို႔ရပါတယ္။ ဒါေပမယ့္ killall က daemons process (Apache,Samba,etc) ေတြကို အလုပ္လုပ္ခ်င္မွလုပ္ပါမယ္။ GUI မွာေတာ့ System monitor ကေန kill process လုပ္လုိ႔ရပါတယ္။

၉၊ man

RTFM “Read the Fine Manual” အဲဒီစကားလံုးကုိ ဘယ္ေလာက္မ်ားမ်ား သင္ေတြ႔ဘူးပါသလဲ။ ကြ်န္ေတာ့္အတြက္ေတာ့ Linux မွာ Manual ဖတ္ေနတာထက္ manpages ကုိ ဖတ္လိုက္တာ ပိုအလုပ္ျဖစ္မယ္လို႔ ထင္ပါတယ္။ “Read the fine Manpages” ေပါ့။ Manpage ေတြက ပံုစံတစ္ခုတည္းန႔ဲ ေရးထားတာပါ။ တစ္ခုကုိ နားလည္ေအာင္ ဖတ္ၾကည့္ျပီးသြားျပီဆိုရင္ ေနာက္ ဘယ္ဟာကုိ ဖတ္ဖတ္ နားလည္လြယ္လာပါလိမ့္မယ္။ command တိုင္းရဲ argument ေတြကလည္း ဆက္စပ္မႈေတြ ရွိေနပါတယ္။

အေပၚဆံုး နွစ္ေၾကာင္းသံုးေၾကာင္းဖတ္လို႔နားမလညး္လည္း ကိစၥမရွိပါဘူး။ ဆက္ၾကည့္သြားပါ၊ detail ကုိ ရွင္းျပထားတာေတြ လညး္ ပါပါတယ္။ Linux command ေတြကို အလုပ္လုပ္ဖို႔အတြက္ အကုန္လံုး အလြတ္က်က္ေနစရာ မလုိပါဘူး။ ဘယ္နားရွိမယ္ဆိုတာပဲ သိယံုနဲ႔ အလုပ္ျဖစ္ပါတယ္။ ဒါေၾကာင့္မို႔ manpages ေတြကုိ ဖတ္တတ္ေအာင္ ၾကိဳးစားပါ။

၁၀၊ mount/umount

removable media ေတြ တပ္မယ္၊ ျဖဳတ္မယ္ဆိုရင္ သံုးပါတယ္။ boot တက္တာနဲ႔ တပ္ဆင္ထားတာေတြကုိေတာ့ /etc/fstab ဖိုင္မွာ ေရးထားပါတယ္။ mount/unmount ကေတာ့ root privileges(super user) လုိပါတယ္။ mount command ကုိ ဘာ arugument မွမထည့္ပဲလည္း ရိုက္ၾကည့္ႏိုင္ပါတယ္။ စက္မွာ ဘယ္ devices ေတြတပ္ထားလည္း ျပလာမွာျဖစ္ပါတယ္။

အထက္ပါ ၁၀ ခုကေတာ့ Linux administration အတြက္ မရွိမျဖစ္လိုတာေတြပါ။ အဲဒါေလးေလာက္ပဲ သိထားတာကိုပဲ ေတာ္ေတာ္ အကူအညီရေနပါျပီ။ အလုပ္လုပ္ရာမွာ လြယ္လြယ္ကူကူ ျမန္ျမန္ဆန္ဆန္ ျဖစ္ေစပါတယ္။ ဒီ ၁၀ ခုတင္လားဆိုေတာ့လည္း မဟုတ္ေသးပါဘူး။ တစ္ေယာက္နဲ႔ တစ္ေယာက္ လုိအပ္ခ်က္ခ်င္းမတူသလိုေပါ့။ liux server ကုိင္ေနတာလား၊ ဒါမွမဟုတ္ Linux နဲ႔ web developement လုပ္ေနတာလား၊ တစ္ကိုယ္ရည္ သံုးပဲလားဆိုတာမွာလည္း ကြဲျပားမႈေတြ ရွိေနပါတယ္။ ဒါေပမယ့္ ကြ်န္ေတာ္ ေန႔တိုင္း အဲဒီ ၁၀ ခုထဲက တစ္၀က္ ေက်ာ္ေက်ာ္ ကုိ အျမဲတမ္း အသံုးျပဳရပါတယ္။

Source: http://www.maukkha.org

No comments:

Post a Comment