Wednesday, March 2, 2011

ලිනක්ස් මුල සිටම 10 කොටස

ලිනක්ස් පාටිශන් සහ ෆෝමැට් ගැන වැඩි දුරටත් ඉදිරියේදි සාකච්චා කරන්න ඕන. ඒත් එකම දේ කතා  කර කර ඉන්න එකත් නීරස නිසා අපි පියවරක් ඉස්සරහට යමු.. අද කතා කරන්න හදන්නේ ඇත්තටම ලිනක්ස් වල කතා නොකරම බැරි වැදගත් මාතෘකාවක් ගැන..shell කියන ජාතිය තමයි අද කතාව, ඇත්තටම ලිනක්ස් යකාව බැදගෙන අපිට ඕන ඕන විදිහට වැඩ කරන්න නම් මෙවා ගැන හොදට දැන ගන්න ඕන.. ඉතිං අපි සරලව තේරුම් ගන්න බලමු මේ shell ගැනත්..

මොනවද මේ shell කියන්නේ ඇත්තටම..?
Shell  කියල කියන්නේ  user  සහ operating system එක අතර අතුරු මුහුනතක් කියල කිව්වොත් හරි.. ඉතිං ඔය කියන එකා පාවිච්චි කරල   users  ලට වගේම programs වලට kernel එකට අණ දෙන්න පුලුවං.. kernel එක ලිනක්ස් වල හදවතනම් ඌව පාලනය කරන්න Shell පාවිච්චි කරල පුලුවන්නම් වැදගත් කම ආයෙ අමුතුවෙන් කියන්න ඕන නෑනේ.. අණ දෙනවා කිව්වම ටිකක් අවුල් වගේ නම් kernel එකට Commands යවනවා කිව්වාම තේරෙයි.. මේක ඉතිං graphical interface තියෙන prog. වලින් වගේම CLI ටැලිපෝං එකේ CLI නෙවෙයි Command line interfaces කියන එව්වයිනුත් කරනවා.. අපි  system එක පාවිච්චි කරද්දි නිතරම වගේ එක එක Prog. වලින්  අපිට නොතේරුනාට සිද්ධවෙන ක්‍රියාවලියක් තමයි ඔය.. මේක මෙහෙම කිව්වට පලවෙනි වතාවට අහන කෙනකුට පොඩ්ඩක් අවුල් වගේ නම් DOS වල command interpreter එක මතක් කරගත්තනම් හරි.. DOS prompt  එක ඕපන් කරන් එක එක කෝඩ් ගහල වැඩ ගන්නවා වගේම ලිනක්ස් වල terminal session  එකක් අරගෙන ඊටත් වඩා වැඩ ගන්න පුලුවං.

කොහොම කොහොම හරි දැං දැං ගොඩක් ලිනක්ස් OS වල Grapical user interface එකටත් වැඩි අවදානයක් යොමු කරල තියෙන නිසා, system එක පාලනය කරන්න පුලුවන් පොඩි පොඩි Utilities දාල් එවන නිසා command පාවිච්චි කරන්නෙ නැතුව පහසුවෙන් වැඩ ටික කරගන්න පුලුවං.. ඒත් ඉතිං ලිනක්ස් යකගෙ බෙල්ල මුලිං අල්ලල වැඩ  පෙන්නන්න නම් Shell සහ commands ගැන දැන ගන්න එක හොදයි..
ඔය කියපු Graphical utilities ජාති Distributions එකින් එකට වෙනස් වෙන්න පුලුවං.. ඒක ඉතිං ලිනක්ස් OS කිහිපයක් ඔට්‍ටු වෙච්ච අය දන්නවා ඇති.. ඒත් ඉතිං commands වල හොඳ කම තමයි ගොඩාක් වෙලාවට එකම  තමයි යෙදෙන්නේ.

අපි මේ ඔට්‍ටු වෙන Shell  මූලික වශයෙන් ජාති දෙකකින් එනවා..
01.Bourne shells
Steve Bourne කියන හාදයා Unix වලට හදාපු ජාතියක් ඒ නිසාම  syntax and conventions ටික  UNIX shell වලට ගොඩාක් සමානයි..sh  කියන එක තමයි ඔරිමජිනල් එක.. ඒත් ඉතිං නිකං ඉන්න බැරි උං එකතුවෙලා ඕක දියුනු කරල හදල තියෙනවා bash shell (Bourne-again shell) කියල ජාතියක්.. (නොතේරුනාට එහෙම කලබල වෙන්න එපා ඉස්සරහට යමු.. එතකොට වංගු දිගෑරිල එයි) ඉතිං ඔය කිව්ව අලුත් ජාතිය තමයි ගොඩක් Linux Distributions වල තියෙන්නෙ.

02.C-shells දෙවෙනි ජාතිය.. මේකෙ  syntax  ගොඩාක් දුරට  C programming language එකේ ඒවට සමානයි.. මෙකත් එක එක්කෙනා දියුනු කරල tcsh, zsh, and ksh වගේ Powerful ඒවා හදල තියෙනවා

ලිනක්ස් වල අනික් හැමදේම වගේම shells කියන්නේත් තව එක කෑල්ලක් විතරයි.. ඉතිං තම තමන්ට හොදයි කියල හිතෙන එකක් හරි කිහිපයක් හරි ඉන්ස්ටෝල් කරගෙන වැඩ දන්න කාගෙන්වත් තහනමක් නෑ..

/etc/shells කියන තැන තමයි මෙයාල ඉන්නෙ කියලත් මේ ගන්මන්ම මතක තියාගන්න..

තව ටිකක් ඉස්සරහට ගියොත් මෙයාලට පොඩුවෙච්ච කාරණා ටිකක් තියෙනව..
01.ඔය කොයිකත් kernel එකත් එක්ක interfaces වෙනවා.. ඒත් එයාගෙන් ස්වායක්තයි/ස්වාදීනයි..
02.Users ලට shell's commands පාවිච්චි කරල එයාලවත් customize කරන්න උනත් පුලුවං..
03.Shells User ගෙ අනුදැනුමක් ඇතුව එයා විසින්  interactively  හරි එයාගෙ අනුදැනුමකින් තොරව system. එකෙන් උනත් භාවිතා වෙන්න පුලුවන්
මට හිතෙන්නේ එයාල ගැන දැනට ඇති කියලා.. කොහොම උනත් අපි ඉදිරි ලිපි වලින් එයාල පාවිච්චි කරල commands execute කරන්න ඉගෙන ගනිමු..

කොහොම කොහොම හරි මෙයාල පාවිච්චි කරද්දි මෙන්න මේටික මතක තියාගත්තොත් ඔයාලට පහසුවක් වෙයි..

01.commands ගහන්න ඕන command + switches + options කියන පිලිවෙලට.. (පාවිච්චි කරද්දි තේරෙයි..)
02.screen එක clear කරන්න clear කියන command  එක පාවිච්චි කරන්න..
03.command එකේ බාගයක් ගහල ටැබ් එක ගැහුවම ආසන්නම command එක auto එනවා.. ඒක නෙවෙයි නම් ඕන ආයෙම ටැබ් එක ගහන්න එතකොට ඊලඟ එක එනවා.. CCNA එහෙම කරල Cisco router එක්ක ඔට්‍ටු වුන අයටනම් පුරුදු ඇති.. (දුක් වෙන්න එපා අපිත් එව්වත් එක්ක ඔට්‍ටු වෙමු මේ Blog එකෙන්ම..)
04.මීට කලින් ගහපු command ආයෙ ගහන්න ඕන උනාම ටයිප් කර කර ඉන්න ඕන නෑ.. Arrow keys පාවිච්චි කරල පරන කොමාන්ඩ්ස් ආයේ ගන්න පුලුවං..
දැං දැං ටික ටික අමුතු මාතෘකා තමයි කතා කරන්න වෙලා තියෙන්නේ. මොනව කරන්නද ලිනක්ස් මුල සිටමනේ.. (පුහ්..) හරි කමක් නෑ මේ කියන එව්වා පුලුවන් තරම් හොදට තේරුම් ගන්න බලන්න.. මේ කතන්දර තේරෙන්නත් ටිකක් computer එක්ක ඔට්‍ටු වෙලා තියෙන්න ඕන.. බය වෙන්නත් එපා..විවෘත මනසකින් බලපුවහම නොතේරෙන දෙයක් මේ ලෝකේ නෑ.. මම ගැනත් කිව්වොත් ආඩම්බරයි කියන්න මම කිසිම Computer course එකක් කරල නෑ.. Linux, Windows, Ms Office තියා කිසිම එකක් පංති ගිහින් ඉගෙන ගෙන නෑ.. Linux course එකක් කරන්න නම් ගොඩක් ආසාවෙන් හිටියා ඒත් ලංකාවෙ කරන්න හරියට තැනක් නෑ.. අතේ සල්ලිත් නෑ.. ඉතිං එහෙම කියල අතෑරියෙත් නෑ අතාරින්නෙත් නෑ.. මම දැනට පූර්ණ කාලිනව විද්‍යුත් හා විදුලිසංදේශ ඉංජිනේරු විද්‍යාව හදාරනවා, නිදහස් අධ්‍යාපනයට පිං සිද්ධ වෙන්න ඉංජිනේරු තාක්ශන ආයතනයේ සහ ශ්‍රී ලංකා ඉංජිනේරු ආයතනයේ (IET and IESL).  ඒත් මේවා ඒවයින් ඉගෙන ගත්ත ඒවත් නෙවෙයි.. හරියටම කියන්න බෑ මෙන්න මේකෙන් කියල.. අඩුම තරමේ මේ මෑතක් වෙනකන් මටම කියල Computer එකක් තිබුනෙත් නෑ.. ඕනෑකමයි කැප කිරීමයි තියෙනවනම් මේ ලෝකෙ කරන්න බැරි දෙයක් නෑ..

මම මේ දේවල් කිව්වෙ මගෙ පම්පෝරියට නෙවෙයි මේ මාතෘකා නොතේරුනා කියල වැඩේ අතාරින එක එපා කියන්න..( මේ දේවල් වලට අලුත් අයට විතරයි අදාල) තව දෙයක් කියන්න ඕන ලිනක්ස් විතරක්ම අල්ලගෙන මේ බ්ලොග් එක පුරවන්න මගෙ අදහසක් නෑ.. මේ එක්කම තව ආස හිතෙන මාතෘකා ටිකකටත් අත ගහන්නයි කල්පනාව..

හරි අතුරු කතා ඇති.. ලිනක්ස් ගැන කතා කරද්දි තව ගොඩක් වැදගත් මාතෘකාවකට බහිමු..
File Paths..
වින්ඩෝස් වල වගේ නෙවෙයි මේක ටිකක් අමුතු දෙයක්.. මොකක්ද මේ Path එකක් කියන්නේ.. තේරෙන විදිහට කිව්වොත් මොකක් හරි object එකක් file or folder or whatever  file system එකේ තියෙන තැන තමයි..
එතකොට තවත් වැදගත් දෙයක් තමයි මේ PATH variable කියල කියන්නෙත්.. PATH variable එක තමයි command execute කරද්දි directories list එක ගබඩා කරගෙන ඉදල  absolute or relative path භවිතා නොකර path එක දෙන්නෙ..( බර වැඩිද මන්දා)

මේකම්නම් අනිවා තේරෙනවා.. Working Directory ඒ කියන්නෙ අපි terminal එකේ හරි මොකේ හරි කොමාන්ඩ් ගහද්දි දැනට අපි ඉන්න directory එක කියන එක..
මතක තියගන්න pwd කියන කොමාන්ඩ් එකෙන් ඒක බලා ගන්න පුලුවං.. ලිනක්ස් වලනම් ඉන්නේ බල බලා ඉන්නෙ නැතුව දැංම terminal එකක් ඇරල ඕක ගහල බලන්න..
මොනව මොනව  කිව්වත් වින්ඩොස් වල වගේ නෙවෙයි ලිනක්ස් වල path ජාති දෙකක් තියෙනවා..

01Absolute path ඒ කියන්නේ root (/)  ගේ ඉදලම මොකක් හරි file or directory එකකට තියෙන ෆුල් පාත් එක..
උදාහරනයක් විදිහට hdw1 කියල මොකක් හරි device එකක් තියෙනවා කියල හිතමු.. /dev/tty1 කියන්නේ එයාගෙ Absolute path එක.. තව උදාහරනයක් කිව්වොත් /usr/X11R6/lib  කියල කියන්නෙ X Windows components තියෙන  libraries  සෙට් එකේ  Absolute path එක..

02.Relative path
අපේ current location එකට සාපේක්ශව directory tree  එකේ අපි ඉන්න තැන.. තේරුනේ නෑනේ.. මටත් කියන්න තේරෙන්නේ නෑ.. හික්.. උදාහරනයකින් තේරුම් ගන්න බලමු.. හිතන්න අපි දැං ඉන්නේ  /usr/X11R6/lib කියන එකේ කියලා එතකොට ඒකෙ තියෙනවනම් test කියල ෆයිල් එකක් එයාගෙ පාත් එකේ perent directory එක විදිහට ගන්නේ  /usr/X11R6/lib කියන එක මිසක් rootගෙ ඉදල එන මුලු පාත් එකම නෙවෙයි.. මේකෙ වාසිය තමයි working directry  එක විදිහට root ගෙ ඉදලම නොගන්න නිසා virus, trojens ලට root එකටම ක්‍රියා කරන්න බැරි වෙන එක.. කොටින්ම මෙහෙම දෙයක් තියෙනවා ඒ ආරක්ශක පියවරක් විදිහට කියල මතක තිය ගත්තනම් ඇති..

නරක දෙයක් කිව්වනම් සමාවෙන්න ඕන මම මේ හැමදේම කියන්න උත්සාහ කරන්නේ ලිපි පෙල අස්ම්පූර්න විදිහට පෙල ගැහෙන එක වලක්වන්න ඕන ඕන අයට අමතර කාරනා අයින් කරල අවශ්‍යයම ටික තේරුම් ගත්තට මගෙනම් තරහක් නෑ.. ට්‍රයි කරල බලන්න,,

5 comments:

  1. හොද ආටිකල් එකක් මමත් ලිනක්ස් ගැන තනියම හොය හොය ඉන්නේ

    ReplyDelete
  2. දිගටම ලියන්ඩෝ . අපි බලනෝ

    ReplyDelete
  3. මරෙ මරු මාරම...වැදගත්....ජයවෙවා........

    ReplyDelete
  4. මරු ඩිගටම කරගෙන යන්න, I love LINUX

    ReplyDelete
  5. niyami.api wage ubuntu walata aluth ayata wedagath tikak withara bara wedi e unath ataarinne ne.digatama liyanna mithraya

    ReplyDelete