2011-10-07

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



4.මොනවද මේ Linux Shell කියන්නෙ
 
                                                   ඔයාල දන්නවනෙ කම්පුටෙර්ට තේරෙන්නෙ දෙකේ පාදයේ සංඛ්‍යා විතරයි කියල. ඒ නිසා කම්පියුටරේ එක්ක ගනුදෙනු කරන්න binary language එක දැන ගන්න ඕනනෙ. ඒ කාලෙ අය නම් ඔය language එක මගින් වැඩ අරගෙන තිබුන. ඒ උනත් ඒක පට්ට අමාරුයි.ඒකෙන් ලියන්නයි කියවන්නයි ගියහම පිස්සු හැදෙනව.ඉතින් මේ නිසා කම්පියුටර් OS එක ඇතුලෙ ඉන්න shell කියල එකෙක් (Program එකක් කියල මතක තියගන්න )භාවිතා කර ගත්ත වැඩ කරව ගන්න. ඉතින් අපි මේ shell කියන කෙනාට ඉංග්‍රිසියෙන් දෙන Command එයා කම්පුටර් එකට තේරෙන විදියට හදල ඒව කර්නල් ලොක්කට දෙනව. Shell එකක් කියන්නෙ User ගෙ program එකක් හරි User ගෙ අන්තර් ක්‍රියාවකට හරි සහය සලසල දෙන එකක් කියල කියන්න පුලුවන්.සරලවම කියනව නම් අපි keyboard එකෙන් දෙන (standard input device එකකින්) Commands හරි, මොකක් හරි file එකක තියන Commands ක්‍රියාවට නංවන්න කර්නල් එකට යවන කෙනා shell එකක්  කියල හදුන්වන්න පුලුවන්.
                                                  
                                                    මතක තියාගන්න ඔන shell කියන්නෙ කර්නල් එකේ Part එකක් නෙවෙයි ඒක කරන්නෙ කර්නල් එක use කරල Commands රන් කරවන එක කියල.

Shell වර්ග කිහිපයක්ම තියනව Linux වල අපි බලමු ඒ මොනවද කියල.

1.BASH ( Bourne-Again SHell )
Developed කරල තියෙන්නෙ-Brian Fox and Chet Ramey කියන අය.
Where -Free Software Foundation
මේ වර්ගය තමයි නොමිලේ ලබාදෙන පොදු Shell වර්ගය.

2.CSH (C Shell)
Developed කරල තියෙන්නෙ-Bill Joy කියන කෙනා
Where -University of California (For BSD)
මේක syntax එක ගොඩක් දුරට C භාෂාවට සමානයි.

3.KSH (Korn Shell)
Developed කරල තියෙන්නෙ-David Korn කියන කෙනා
Where -AT & T Bell Labs


                                         මම හිතනව ඔයාල මොකක් හරි ලිනක්ස් ඩිස්ට්ට්‍රෝ එකක් තෝරගෙන ඒක කම්පියුටර් එකේ ඉන්ස්ටෝල් කරගෙන ඇති කියල. නැත්තම් අපට ප්‍රායෝගිකව මේ වැඩේ කරගෙන යන්න අමාරුයි. මොකද shell programming කරන තරමට තමයි පුලුවන් වෙන්නෙ. අපි shell කමාන්ඩ් රන් කරවන්න යොදා ගන්නෙ Terminal කියන එක. මේක නිකන් හරියට වින්ඩෝස් වල තියෙන කමාන්ඩ් ප්‍රොම්ට් වගේ එකක්. බලන්න පහල තියෙන පින්තුරෙ දිහා.

ඔයාල ටර්මිනල් එක ඔපන් කර ගමන් ඉන්නෙ home කියන ෆොල්ඩර් එක ඇතුලෙ තමන්ගෙ user Account එක නමින් තියන folder එකේ. (පොඩ්ඩක් ලිනක්ස් වල file system එක අධ්‍යනය කරන්න-පහල රූපෙ තියෙනව)



අපට cd / කියන කමාන්ඩ් එක මගින් නිතරම file System එකේ මුලට එන්න පුලුවන්. (root එකට) ටර්මිනල් එක භාවිතා කරනකොට මූලිකවම අවශ්‍ය වෙන කමාන්ඩ් කිහිපයක් මම දැන් දෙන්නම්.
1. cd  -ඩිරෙක්ටරි එකකින් එකකට මාරු වීමට.
    උදා - home ඩිරෙක්ටරි එකේ ඉදන් cd Desktop කියල type කරල එන්ටර් කරහම Desktop කියන ඩිරෙක්ටරි එකට යනව
2. cd .. -පසුපස තියෙන ඩිරෙක්ටරි එකට මාරු වීමට.
   
    Desktop ඩිරෙක්ටරි එකේ ඉදන් cd .. කියල type කරල එන්ටර් කරහම home කියන ඩිරෙක්ටරි එකට යනව.

3. ls - දැන්ට ඉන්න ඩිරෙක්ටරි එක ඇතුලෙ තියෙන සියලුම folders හා files බලා ගන්න පුලුවන්.



වැදගත් කරුණු ටිකක්.
1.ටර්මිනල් එකේ මුකුත් ටයිප් කරන්නෙ නැතුව Tab key එක දෙතුන් පාරක් Press කරහම Display all 3651 possibilities? (y or n)  කියන පණිවිඩය පෙන්නනව. ඔයාල y ට්‍යිප් කරල එන්ටර් කරොත් බලාගන්න පුලුවන් තියන ඔක්කොම කමාන්ඩ් ටික.
2.ඕනම කමාන්ඩ්,ඩිරෙක්ටරි හෝ file එකක නමෙන් කොටසක් ටයිප් කරල tab key එක Pressකරහම ඒකෙ ඉතුරු ටික auto ටයිප් වෙනව.(එහෙම එකක් ඇත්තටම තියෙනව නම් විතරයි)
3. ctrl+c මගින් පුලුවන් කර කර ඉන්න වැඩක් එක පාරටම අත්හිටුවන්න (close කරන්න) .
4.අනිත් වැදගත් කරුණ තමයි කැපිටල් සිම්පල් මාරු කර ගන්නෙ නැතුව ටයිප් කරන්න ඔන.(කමාන්ඩ්,ඩිරෙක්ටරි හා ගොනු).
5. up down arrow keys භාවිතා කරල අපට පුලුවන් කලින් ටයිප් කරපු කමාන්ඩ් අරගන්න.



                                      ටර්මිනල් එකේ කර්සර් එක බිලින්ක් වෙවී තියෙන තැනට වම් පැත්තෙන් ඔයලට $ සලකුණ දැක ගන්න ලැබෙයි.ඒකෙන් අදහස් කරන්නෙ ඔයා දැන ලොග් වෙලා ඉන්නෙ gest එකවුන්ට් එකකින් කියල. Administer Account එකකින් ලොග් උනහම දැකගන්න ලැබෙන්නෙ # සලකුණAdminister ගෙන් ලොග් වෙන්න මේක බලන්න. su කියන කමාන්ඩ් එකෙන් පුලුවන් ඇඩ්මින් වෙත මාරු වෙන්න.gest එකවුන්ට් එකේම ඉදන් වැඩ කරන එක වඩා හොදයි.



දැන අපි බලමු අපේ කම්පුටර් එකේ තියෙන්නෙ මොන ජාතියෙ Shell ද කියල. Terminal එක open කරල මෙන්න මෙ කමාන්ඩ් එක type කරන්න එතකොට දැනට කම්පියුටරේ තියන ඔක්කොම shell වර්ග ටික පෙන්නනව.
කමාන්ඩ් එක – cat /etc/shells


උඩ පින්තූරෙ තියෙන්නෙ මගේ කම්පියුටරේ තියෙන shell වර්ග ටික. මෙතන මම කලින් කිව්වට වඩා ගොඩක් වර්ග තියෙනව මේ හැම එකකින්ම වගේ කෙරෙන්නෙ ගොඩක් දුරට එක සමාන දේවල් ඒත් එක එක shell වල syntax එක වෙනස් වෙනව ඒ වගේම තියෙන functions එහෙමත් වෙනස් වෙන්න පුලුවන්.

ඔයාල දන්නවනෙ MS-Dos ගැන ඒකෙත් තියෙනව COMMAND.COM කියල shell එකක් ඒකත් යොදාගන්නෙ මේ වගේ වැඩ වලටම තමයි.ඒත් මතක තියාගන්න ඕන linux වල තියන shells ලගින් වත් ඒක තියන්න බැරි බව. ලිනක්ස් වල තියන shells වලින් එයිට වඩා ගොඩක් දේවල් කරන්න පුලුවන් බව.

Shell ගැන ආයෙමත් කිවිවොත් shell කරන්නෙ user තමන්ට කරගන්න ඔන කියල ලබාදෙන Commands මෙහෙයුම් පද්ධතියට (os එකට ) ලබා දෙන එක.මම හිතනව ඔයාලට දැන් shell කියන්නෙ මොනවද ඒවයින් වෙන්නෙ මොකද්ද කියල යම් තරමක තේරුමක් ලැබෙන්න ඇති කියල .මම දැන් තව command එකක් දෙනව ඒකෙන් පුලුවන් දැනට ඔයාගෙ කම්පියුටර් එකේ සාමාන්‍ය භාවිතයේ පවතින shell එක (current shell) මොකද්ද කියල බලා ගන්න.

මෙන්න Command එක - echo $SHELL 

ඊළඟ කොටසින් හමුවෙමු........
Share:

4 comments:

Anonymous said...

Ela Ela.What is SSH? . I'm using it. I think it is also a shell.

Anonymous said...

Please remove the word verifications

The Stunny said...

ssh කියල කියන්නෙ Secure Shell කියන එක.අපි හිතමු අපි shell එකක් remotely Access කරනව කියල ඒ කිව්වෙ shell එක තියෙන්නෙ එක කම්පියුර් එකක අපි ඒක use කරන්නෙ තව කම්පියුටර් එකක ඉදගෙන (මේ කම්පියුටර් දෙක සම්බන්ධ වෙන්නෙ network කේබල් එකකින් කියල හිතන්න) දැන් පොඩි security අව්ලක් ඇතිවෙනව මොකද කවුරු හරි තක්කඩියෙකුට පුලුවන් එක එක වැඩ දාල මේ network එක හරහා යන දේවල් බලන්න.අපි හිතමු අපි remotely ශෙල් එකකට අපේ e-mail එක හා password එක ලබා දෙනව කියල command line එක හරහා එතකොට තක්කඩියන්ට බලන්න පුලුවන් වෙනව ඒව.ඒ වගේ දේවල් නොවෙන්න network එක හරහා යවන දත්ත encrypt(කියව ගන්න බැරි විදියට වෙනස් කරල) යවනව.ඔන්න ඔය වගේ දේවල් කරන්න තමයි secure shell use කරන්නෙ.මම සරලව කිව්වට මේක ටිකක් ලොකු කතාවක් මේ shell පාඩම් මාලවෙන් පස්සේ ssh ගැනත් පාඩම් ටිකක් දාන්නම්.

Anonymous said...

Thanx