2011-10-14

ලිනක්ස් Shell Programming පාඩම-කොටස 04


කලින් පාඩමේදි file Permissions ගැන කතා කරා මතකයි නෙ.

දැන් බලමු අපි කොහොමද අපි හදාගනිපු file එකක Permissions වෙනස් කරන්නෙ කියල.

මේකට use කරනව chmod කියල Command එකක් ඒක use කරන්නෙ පහල තියෙන විදියට (වරහන් දෙක දාන්නෙ නෑ හරිද? )

chmod {Permisson mode } {file-name}

මේක තව සරල කර ගත්තොත් මෙහෙමයි තියනව my.txt කියල TEXT FILE එකක් මට ඔන ඒකෙ Permissions එක 761 (කලින් උදාහරණ් 2 තියෙන Permission එක) විදියට හදන්න. මම එතකොට කරන්නෙ මෙහෙමයි.(මුලින්ම file එක තියෙන තැනට ටර්මිනල් එකෙන් යන්න ඔන හරිද?)
 
chmod 761 my.txt

දැන් මේ වැඩෙත් කරල බලන්න.
මෙහෙම දීල බලන්න

chmod 000 my.txt

file එක හොල්ලන්නවත් දෙන්නෙ නෑ නේද? R,W,X කිසිම දෙයක් කරන්න අවසරයක් නැති වෙනව.මෙහෙම කරල වැරදිලාවත් ඒ file එකක් ඩිලීට් කරන්න ඔන උනොත්  ආයෙ පර්මිශන් එක වෙනස් කරන්න ඔන නැත්තම් administrator ගෙන් ලොග් වෙන්න ඔන.

chmod -R 755 directory-name 

 කියන Command එකෙන් පුලුවන් directory(ෆොල්ඩර්) එකක permission එක වෙනස් කරන්න.(ඔන්න ෆොල්ඩර් ලොක් කරන්න නියම ක්‍රමයක්)

පුරුදු වෙන්නත් එක්ක එක එක files වල permissions වෙනස් කරල බලන්න(තමන් හදපු ඒවයෙම කරල බලන එක ඇඟට ගුණයි.)

ඔන්න මෙතනින් file permission කතන්දරේ ඉවර වෙනව අපි අයෙ යමු shell වලට.

9.Shell Script

shell script එකක් රන් කරන ආකාරය..

අපි ලියාගනිපු shell Script එකක් ක්‍රම 3 කින් රන් කරවන්න පුලුවන්
1. bash ස්ක්‍රිප්ට් එකේ නම
2. sh ස්ක්‍රිප්ට් එකේ නම
3. ./ස්ක්‍රිප්ට් එකේ නම 

උදාහරණයක් විදියට cake කියල නම තියෙන ස්ක්‍රිප්ට් එක රන් කරන ආකාරය බලමු.
1. bash cake
2. sh cake
3. ./cake 
 
කලින් කියපු 3වන ක්‍රමයෙ ./ කියන කේ අදහස තමයි current directory කියන එක ඒ කියන්නෙ අපි දැනට ඉන්න directory එකේ තියන file එකක් තමයි රන් කරවන්නෙ කියල. (.) ඩොට් එක විතරක් ගත්තොතින් ඒකෙ තේරුම ඩොට් එක විතරක් යොදාගෙන shell එක රන් කෙරෙව්වොතින් shell එකේ copy එකක් හදන්න එපා කියල(ටෙම්පරි හදන්න එපා කියන එක).බලන්න පහල තියෙන එක රන් කරල තියෙන්නෙ ඩොට් එක විතරක් use කරල.

. shellname (. එක හා ශෙල් name එක අතරෙ space එකක් තියෙනව)


ඔන්න දැන් අපි අපේ මුල්ම shell Script එක ලියල රන් කරවන්නයි හදන්නෙ. මුලුන්ම ඔයාලගෙ කැමතිම text editor එකක් අරගෙන පහල තියෙන දේවල් ටික හරියටම ඒ විදියට ලියා ගන්න.මම නම් ගන්නෙ උබුන්ටු වල තියන gedit කියන text editor එක.

$ gedit my
#
# This is My first shell Script
#
clear
echo "mad Terminal"

මේක ලියල කොහෙට හරි save කරගන්න මම නම් save කරේ Desktop එකට.
ඊළඟට permission හදන්න.

chmod 755 my.txt 
 
කියල දෙන්න දැන් ./my.txt කියල දීල script එක රන් කරවන්න.වැරදීමක් උනේ නැත්තම් මේක අවුලක් නැතුව රන් වෙනව.ඊ ළඟට බලමු දැන් ලියපු එකේ තියෙන වැඩ කෑලි මොනවද කියල.

**පුරුදු වෙන්නත් එක්ක මේක හැම ක්‍රමේකටම රන් කරල බලන්න.**

  1. මුලින්ම තියෙන $ gedit my කියන එකෙන් කියෙන්නෙ gedit කියන editor එක start කරවන්න කියල.

  2. මොකක් හරි දෙයක් ලියල ඒක ඉස්සරහින් # කියල දැම්මොත් ඒ ලියපු එක Comment එකක් කියල අපි හදුන්වනව. ඒ ලියපු එකෙන් script එකට කිසිම බලපැමක් නෑ මේව යොදාගෙන අපට පුලුවන් script එක ගැන වැඩි විස්තර ඒක ඇතුලෙම අන්තර් ගත කරල තියන්න.එතකොට පස්සෙ කාලෙක බලන කෙනක්ට උනත් ඒ ගැන තේරුම් ගන්න පුලුවන් ලේසියෙන්ම. නිකමට උඩ ලියපු shell එකේ clear හා echo කියන ඒව ඉස්සරහිනුත්
    # දාල බලන්න එතකොට ඒව රන් වෙන්නෙ නෑ කියල ඔයාලට පෙනෙයි.
  3. clear මේ command එකෙන් වෙන්නෙ terminal එක clear වෙන එක
  4. echo "mad Terminal" මේකෙන් තමයි mad Terminalකියල print වෙන එක වෙන්නෙ echo වලින් පුලුවන් variable value(variable එකක් කියන්නෙ Computer Ram එකේ හදාගන්න මෙමරි space එකක් ) එකක් හරි Message එකක් හරි Screen එකේ print කරවන්න.
අපි කලින් කරපු shell programm එක save කරේ my.txt කියලනෙ සාමාන්‍යයෙන් shell Script එකක් save කරනකොට අගට .sh කියල save කරන්න (my.sh වගේ) එතකොට ඒක අදුරගන්න පුලුවන් ලේසියෙන් මෙතන ඉදන් ඉස්සරහට කරන ඔක්කොම ඒ විදියට save කරන්න.

පුරුදු වෙන්නත් එක්ක ඔයාලත් මේව කරල බලන්න.

01.
#####################################
$ gedit my
#
# This is My 2nd shell Script
# Print multipal Lines using echo
clear
echo "mad Terminal 1"
echo "mad Terminal 2"
echo "mad Terminal 3"

#####################################

02.
####################################################

$ gedit my
#
# This is My 2nd shell Script
# Print multipal Lines using echo
clear
echo "mad Terminal $USER"
echo "mad Terminals date \c" ;date
echo "User info : \c" ; who | wc -l
echo "Calendar"
cal
exit 0

###################################################


03.
#####################################
$ gedit my
#
# This is My 3rd shell Script
# Print Stars using echo
clear
echo "*"
echo "**"
echo "***"
echo "****"
echo "*****"
echo "******"

අවුල් සහගත තත්ව තිබේ නම්  වාර්තා කරන්න.
Post a Comment