2011-10-10

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




5.Shell Script කියන්නෙ මොනවද?

කලින් අපි ඉගෙන ගත්තනෙ shell කියන්නෙ මොනවද කියල දැන් බලමු shell Script කියන්නෙ මොනවද කියල. සරලවම කිව්වොත් shell Script කියල කියන්නෙ shell Command එක කට වැඩි ප්‍රමාණයක් අනුපිළිවෙලට ලියල තියෙන file එකකට(series of command කියල හිතමකො ) මේ script එක රන් කරහම ඒක ඇතුලෙ ලියල තියෙන කමාන්ඩ්ස් රන් වීම සිද්ධ වෙනව. මේක වින්ඩෝස් වල තියෙන MS-Dos batch file එකකට සමාන කරන්න පුලුවන් හැබැයි ඊට වඩා ගොඩක් බලවත්.

6.ඇයි අපි මේ shell Script ලියන්නෙ ?

01. user ගෙ inputs මෙ Script මගින් ලබා දෙන්න පුලුවන්.
02. ප්‍රයෝජනවත් විදියට තමන්ගේම Commands නිර්මාණය කරගන්න පුලුවන්.
03. කාලය ඉතුරු කර ගන්න පුලුවන්(එකම දේ නැවත නැවත type කර කර ඉන්නෙ නැතුව)
04. ස්වයංක්‍රීයව යම් දේවල් කරගැණීමට හැකි වීම.
  1. ස්වයංක්‍රීයව පද්ධති කටයුතු පාලනය කරගැනීමට හැකිවීම
ඔන්න ඔය වගේ දේවල් කර ගන්න පුලුවන් නිසා තමයි අපි shell Script ලියන්නෙ.

7.Shell සමග වැඩ පටන් ගැනීම.


                             මෙතන ඉදන් අපි shell වල වැඩ කිඩ පටන් ගන්නයි හදන්නෙ. අපි මේ වැඩ කරන්න use කරන්නෙ බාස් ශෙල් නෑ නෑ bash shell කියන වර්ගය.මෙතන ඉදන් ඉස්සරහට shell ලියන්න ,කියවන්න,රන් කරවන්න එකී මෙකී නොකී ගොඩක් වැඩ කරන්න තමයි හදන්නෙ ඒ නිසා හොදට තේරුම් අරගෙන වැඩේ කරගෙන යන්න.

8.කොහොමද මේ shell Script එකක් ලියන්නෙ ?

මේකට පියවර දෙකක් සපුර ගන්න ඔන.එව තමයි

 1.shell Script එක ලියාගන්න ටෙක්ස්ට් එඩිටර් එකක්-මම නම් මේකට use කරන්නෙ ubuntu වල තියෙන gedit කියන ටෙක්ස්ට් එඩිටර් එක ඔයාල use කරන OS එකේ තියෙන කැමති එකක් තෝර ගන්න.




2.තව දැනගන්න ඔන කොහොමද ලිනක්ස් වල file permissions වෙනස් කරන්නෙ කියල. මොකද ලියන sell script එක රන් කරන්න permissions එක ගන්න ඕන.

දැන් අපි පොඩ්ඩක් මේ linux file permissions ගැන කතා කරමු.

9. Linux file permissions

ලිනක්ස් (ගොඩක් දුරට UNIX System වලත්) වල ප්‍රධාන වශයෙන් user class තුනක් තියෙනව. user class කියල කිව්වෙ භාවිතා කරන පිරිස වෙන් කරල දක්වන්න පුලුවන් බෙදීමක් වගේ දෙයක්.
අපි බලමු මොනවද මේ user classes තුන කියල.

1.User (u)- මේකෙන් කියන්නෙ file එකේ අයිතිකෙනා ගැන(owner) file එක හදපු එක්කෙනා කියල හිතාගන්න.
2.Group (g)-මේකෙන් කියන්නෙ file එක access කරන අය. කෙනෙක් හදපු files වෙන අය use කරන්න පුලුවන්නෙ.
3.Other (o)-මේ කියන්නෙ උඩ කතා කරපු අය හැරුනාම අනිත් අය ගැන.

    ලිනක්ස් file permissions වෙනස් කරල අපට පුලුවන් උඩ ඉන්න තුන් ගොල්ලන්ට කරන්න පුලුවන් දේවල් පාලනය කරන්න.සරලවම ගත්තොත් මෙන්න මෙහෙමයි ඔන්න ඉන්නව file එකක් අයිති කෙනෙක් එයට පුලුවන් එයාගෙ file එක edit කරන්න write කරන්න. execute කරන්න පුලුවන් ජාතියෙ එකක් නම් එහෙමත් කරන්න. (කරන්න පුලුවන් ඔක්කොම ජාති කරන්න).දැන් බලන්න ඒ file එකම access කරන අය ගැන (Group කියන එකේ කස්ටිය) ඒ අයට පුලුවන් file එක execute කරන්නයි write කරන්නයි හැබැයි delete කරන්න බෑ. ඊළඟට Other කියන එකේ කස්ටියට පුලුවන් Read කරන්න විතරයි. උදාහරණයක් විදියට මෙහෙම හිතන්න ඔයාගෙ කම්පියුටරේ guest Account එකක ඉදන් සමහර file open කරන්න delete කරන්න Access කරන්න බෑ නේද ?අන්න ඒ වගේ කතාන්දරයක් තමයි මේකත්.
අපට පුලුවන් ලිනක්ස් වල තියෙන file එකක මේ permissions වෙනස් කරන්න ඒ කියන්නෙ කලින් කියපු තුන් ගොල්ලන්ට තියෙන වරප්‍රසාද වෙනස් කරන්න පුලුවන්.දැන් බලමු කොහොමද ඒව කරන්නෙ කියල.

අපිට file එකකට කරන්න පුලුවන් ප්‍රධාන දේවල් තුනක් තියෙනව ඒව තම

01.Read (r)
02.Write (w)
03.Execute (x)

වරහන් ඇතුලෙ තියෙන අකුරු වලින් කියන්නෙ කෙටි යෙදුම් කියල මතක තියා ගන්නකො.

File permissions mode තුනක් තියෙනව. ඒව තමයි

1.Linux Read mode permissions- file එකක් හරි directory එකක් හරි Read කරන්න දෙන අවසරය

2.Write mode permissions- file එකක් හරි directory එකක් හරි Write කරන්න දෙන අවසරය.

3.Execute mode permissions-file එකක් හරි directory එකක් හරි Execute කරන්න දෙන අවසරය.


ඔක්ටල් නම්බර් කතාවකුත් තියෙනව මේවත් එක්ක ඒකත් බලලම ඉම්මුකො

ඔක්ටල් කතාව මේකයි
අපි කලින් file එකකට කරන්න පුලුවන් දේවල් තුනක් ගැන කතා කරානෙ r,w,x කියල ඒ r,w,x ඔක්ටල් වලින් ඉදිරිපත් කරගන්න ඒවට මේ අගයන් දාගන්න

r =4
w=2
x =1

දැන් ඉතින් දැනගන්න ඕන 4 කිව්වොත් read , 2 කිව්වොත් write, 1 කිව්වොත් execute කියල.හරියට r , w , x වලට කෙටි නම් දැම්ම වගේ


අපි දැන් බලමු Linux Read Write අවස්ථාව ඔක්ටල් වලින් කොහොමද කියල

0+r+w+e =0+4+2+0 = 6 

**මේ තියන ගණිත කර්මෙ දැක්කහම බය වෙන්න එපා කරල තියෙන්නෙ read හා write වලට අපි දාගණිපු කෙටි නම් වල අගයන් එකතු කරපු එක. විතරයි.මුලට 0 දාගත්තෙ පාලුවට කියල හිතන්නකො.execute වලට 0 ආවෙ file එක execute කරන්න අවසර දෙන්නෙ නැති නිසා. **

පේනව නේද Read & Write අවස්ථාවෙ ඔක්ටල් අගය = 6

ඊළඟට බලමු read & execute අවස්ථාව

0+r+w+e = 0+4+0+1 =5

Read & execute අවස්ථාවෙ ඔක්ටල් අගය = 5

දැන් Read, Write & execute අවස්ථාව

0+r+w+e = 0+4+2+1 = 7

Read, Write & execute අවස්ථාවෙ ඔක්ටල් අගය = 7

ඔක්ටල් වල තියෙන්නෙ 0 ඉදල 7 වෙනකම් ඉලක්කම් ටික නෙ ඒ නිසා 7 න් එහා යන්නෙ නෑ කියලත් මතක තියා ගන්න.

කලින් කිව්ව permissions mode යොදාගෙන පොඩි වැඩක් කරල බලමු දැන්

ඔන්න හිතන්න මෙහෙම තියනව file එකක් ඒකෙ user(u) Read,Write & execute කියන permissions 3 නම දෙන්න ඔන. Group(g) ට දෙන්න ඔන Read & Write permissions දෙක Other (o) ට දෙන්න ඔන execute permissions එක විතරක් එතකොට මෙන්න මේ විදියට තමයි ගණනය කරන්න ඔන.

User = 0+r+w+x = 0+4+2+1 = 7
Group= 0+r+w+x = 0+4+2+0 = 6
Others = 0+r+w+x = 0+0+0+1 = 1

මේවගේම තවත් එකකුත් බලමු දැන්
file එකක Read,Write & execute කියන permissions u,g,o කියන තුන්ගොල්ලොන්ටම දෙන්න ඕන එකට ගණනය කිරීම කරන්න ඕන මෙහෙමයි.

User = 0+r+w+x = 0+4+2+1 = 7
Group= 0+r+w+x = 0+4+2+1 = 7
Others = 0+r+w+x = 0+4+2+1 = 7

මම හිතිනව ඔයාලට මම කියපු දේ තේරෙන්න ඇති කියල මේ විදියට අපට ඕන Permission එකක් හදා ගන්න පුලුවන්.
 

file Permissions හදා ගන්න හැටි next පාඩමෙන් කියන්නම්.
Share:

2 comments:

Anonymous said...

සිරා මචන්. ඇත්තටම ගොඩක් වැදගත්. ඉතුරු ටිකත් ඉකමනට දාපන්.

Anonymous said...

waiting for the next post.