24 – Commands වල අභ්‍යන්තර ක්‍රියාකාරිත්වය

Command line හි අප විසින් type කරනු ලබන සියලු ම commands, වර්ග (types) 4කට වෙන් කල හැකිය. කිසියම් command එකක් ලබාදුන් විට shell මගින් විධානය ඇගයීමක් (evaluate) සිදු කර එය අයත් වන්නේ කුමන වර්ගයට (type) දැයි නිශ්චය කිරීමෙන් පසු ක්‍රියාත්මක කිරීම සිදුවේ. එයට හේතුව නම් commands අයත්වන type එකට අනුව commands ක්‍රියාත්මක කල යුතු ආකාරය වෙනස් වීමයි. මෙම ඇගයීම් ක්‍රියාවලිය (evaluation) පහත දැක්වෙන අනුපිළිවෙලට සිදු කරනු ලැබේ.

1. Aliases (අන්වර්ථ නාමයන්)

සාමාන්‍යයෙන් command එකක් options සමග ලබාදීමේදී දීර්ඝව type කිරීමට සිදුවේ. Alias මගින් අදාළ command එක සහ options කිහිපය වෙනුවට කෙටි නාමයක් යොදා ගැනීමට අවස්ථාව සලසා දේ. එමගින් වඩා ඉක්මනින් commands ලබාදීම සිදු කළහැකි අතර මතක තබා ගැනීම ද පහසු වේ. දැනටමත් command line හි ක්‍රියාත්මක වන alias බලා ගැනීමට පහත පරිදි alias විධානය පමණක් ලබාදෙන්න.

alias
Display aliases

Alias නිර්මාණය කිරීමට පහත රීතිය යොදාගත හැකිය. අළුතින් alias නිර්මාණයේදී දැනටමත් යොදා ගෙන ඇති alias names යොදා නොගැනීමට වග බලාගත යුතුය. තවද command line හි ඇතුලත් කරන alias සියල්ල terminal එකෙන් ඉවත් වූ පසු මැකී යයි. (ස්ථිර ලෙස alias නිර්මාණය ඉදිරි ලිපියකින් සාකච්චා කරමු.) Alias name ලෙස command එකම යොදා ගැනීමෙන් command එක ලබාදුන් විට alias එක ක්‍රියාත්මක වීම සිදුවේ.

alias mv='mv -i -v'
alias cp='cp -i -v'

සටහන: Alias type කිරීමේදී alias name, = ලකුණ සහ ‘ අතර හිඩැස් නොතැබිය යුතුය.

2. Shell Reserved Words (shell සඳහා ම විශේෂිත වූ වචන)

මේවා shell එක තුළ විශේෂිත අර්ථ දැක්වීම් (special meaning) සහිත වචන සමූහයකි. shell scripts යනුවෙන් හැඳින්වෙන ක්‍රියාත්මක කල හැකි කුඩා ගොණු (files) නිර්මාණයේදී නියමයන් දැක්වීමට (conditional expressions) සහ ගැලීම් පාලනයට (flow control) shell reversed words යොදා ගනී.

උදා: do, while, if, else, case

3. Functions (ශ්‍රිත)

තනි ඒකකයක් ලෙස ක්‍රියාත්මක වන commands කිහිපයක එකතුවක් function එකක් ලෙස හැඳින්වේ.

4. Built-in Commands (shell තුළ අඩංගු විධාන)

මේවා shell තුළම නිර්මිත වන නිසා ගොණු පද්ධතිය තුළ නිරූපණය නොවේ.

උදා: cd, echo, exit, fg, history, pwd, set, type

5. Filesystem Commands (ගොණු පද්ධති විධාන)

මේවා ගොණු පද්ධතිය (file system) තුළ ක්‍රියාත්මක ගොණු (executable files) ලෙස ගබඩා කර ඇත.

උදා: cp, cal, mv, rm, mkdir

සටහන: කිසියම් command එකක් අයත් වන්නේ මින් කුමන වර්ගයට දැයි බලා ගැනීමට type විධානය සමග අදාළ command name ලබා දෙන්න.

type command
type command

Filesystem command එකක් ලබාදුන් විට මුලින් ම shell මගින් එහි අභ්‍යන්තරයේ ගබඩා කර ඇති විචල්‍යයක් (variable) වන PATH වෙත යොමුවීම සිදුවේ. එතුළ පරිශීලකයාට අදාළ ව විධාන (commands) ක්‍රියාත්මක කිරීමේදී විශේෂයෙන් සොයා බැලිය යුතු නාමාවලි (directories) සමූහයක් අනුපිළිවෙලින් දැක්වේ. මේවා එම directory වලට යා යුතු නිරපේක්‍ෂ මාර්ගයන් (absolute paths) වන අතර දැනටමත් එහි අඩංගු තොරතුරු බලාගැනීමට echo command එක භාවිතා කල හැකිය. මෙහිදී PATH යන්න විචල්‍යයක් (variable) ලෙස shell එකට හඳුන්වා දීම සඳහා එයට ඉදිරියෙන් $ සලකුණ type කල යුතුය.

PATH variable
PATH variable

ඉහත PATH variable හි දැක්වෙන directories ඇගයීම සිදු වන්නේ අග සිට මුලට ය. උදාහරණයක් ලෙස ඉහත දැක්වූ රූප සටහනට අනුව අනුපිළිවෙල පහත පරිදි වේ.

/usr/lib/jvm/java-8-oracle/jre/bin → /usr/lib/jvm/java-8-oracle/db/bin → ... → /usr/bin → ...

සමහර Linux නිකුතු (distributions) වල පරිශීලකයාගේ bin directory එකෙහි path එක අවසානයට දක්වා ඇත. ඔබ නිර්මාණය කරන ක්‍රමලේඛ (programs) absolute paths නොමැතිව නම පමණක් type කර ක්‍රියාත්මක කිරීමට අවශ්‍ය නම් ඔබගේ bin directory එකේ අදාළ ගොණුව රඳවා තබන්න. වෙනත් අයට ද ඔබගේ ක්‍රමලේඛය ක්‍රියාත්මක කිරීමට අවශ්‍ය නම් /usr/local/bin directory තුළ ගොණුව රඳවා තැබිය හැකිය. මෙහිදී එම ස්ථානයට ගොණුව copy කිරීමට පරිපාලක ගිණුමේ (root) මුරපදය ලබාදිය යුතුය. පෙර සඳහන් කල පරිදි paths සෙවීම දැනට සිටින directory එකෙන් ආරම්භ නොවන නිසා දැනට සිටින directory එකෙහි ඇති ගොණුවක් ක්‍රියාත්මක (execute) කිරීමට ./program_name රීතිය (syntax) යොදාගත හැකිය.

execute from current directory
execute from current directory

ඉහත දැක්වූ පරිදි Filesystem commands සියල්ල ම PATH variable හි ඇතුළත් directories අනුපිළිවෙලින්  සොයා බැලෙන නිසා එකම නමින් commands කිහිපයක් paths කිහිපයක ඇති විට සැබවින් ම ක්‍රියාත්මක වන්නේ කිනම් path එකේ ඇති command එකදැයි දැන ගැනීම අපහසුය.

මුලින් ම command (හෝ ඕනෑම file/directory එකක්) පිහිටි ස්ථාන දැන ගැනීමට locate command එක යොදාගත හැකිය. මෙහිදී command එක පිහිටි ස්ථාන, උපකාරක අත්පොත් (help manuals) සහ මේ හා සමාන නමින් ඇති වෙනත් commands පිහිටි ස්ථාන ද දැකගත හැකිය.

locate command
locate command

සටහන: locate command මගින් ඇත්ත වශයෙන් ම සෙවීම කරනු ලබන්නේ file system එකට අදාළ ව මෙහෙයුම් පද්ධතිය මගින් සූචිගත (index) කරන ලද දත්ත සමුදායක් (database) තුලයි. මෙහෙයුම් පද්ධතිය මගින් මෙම දත්ත සමුදාය කලින් කල යාවත්කාලීන (update) කිරීම සිදු කරන අතර අලුතින් නිර්මාණය කල files/directories එම database එකට ඇතුළත් වීමට කලක් ගතවේ. මේ නිසා locate command මගින් එලෙස අලුතින් නිර්මාණය කරන ලද files/directories මගහැරී යාමට පිළිවන.

දෙවනුව, අප commands ලබාදුන් විට  මින් සත්‍ය වශයෙන් ම  ක්‍රියාත්මක වන්නේ කුමක්දැයි බලා ගැනීමට which command යොදාගත හැකිය. Commands පමණක් නොව ඕනෑම ක්‍රමලේඛයක (program) නමක් ලබාදී එහි ක්‍රියාත්මක ගොණුව (executable file) පිහිටි ස්ථානය දැන ගැනීමට which command උපකාරී වේ.

which command
which command

ප්‍රතිචාරයක් ලබාදෙන්න

Fill in your details below or click an icon to log in:

WordPress.com Logo

ඔබ අදහස් දක්වන්නේ ඔබේ WordPress.com ගිණුම හරහා ය. පිට වන්න /  වෙනස් කරන්න )

Google photo

ඔබ අදහස් දක්වන්නේ ඔබේ Google ගිණුම හරහා ය. පිට වන්න /  වෙනස් කරන්න )

Twitter picture

ඔබ අදහස් දක්වන්නේ ඔබේ Twitter ගිණුම හරහා ය. පිට වන්න /  වෙනස් කරන්න )

Facebook photo

ඔබ අදහස් දක්වන්නේ ඔබේ Facebook ගිණුම හරහා ය. පිට වන්න /  වෙනස් කරන්න )