28 – Command line හි ප්‍රසාරණය (expansion) (1 කොටස)

ගොණු සහ නාමාවලි කළමනාකරණය (File & directory management) යටතේ අප සාකච්චා කල තුරුම්පු (wild cards) භාවිතයේදී shell මගින් ඒවා අර්ථ දක්වන ආකාරය සොයා බලමු. වෙනත් මෙහෙයුම් පද්ධති මෙන් නොව Linux හි සැඟවුණු ක්‍රියාවලීන් නොමැති නිසා අපට ඉතා පහසුවෙන් shell මගින් කෙරෙන කාර්යය හොඳින් අධ්‍යයනය කල හැකිය. සාමාන්‍යයෙන් command line හි කිසියම් වචනයක් ඇතුළත් කල පසු shell මගින් අදාළ වචනය කිනම් වර්ගයකට (type) අයත්දැයි අනුමාන කිරීමක් සිදු කරයි. මෙහිදී වචනයේ අඩංගු වන wild cards වෙනස් ආකාරයකට අර්ථ දැක්වේ. ඒ අනුව wild cards මගින් නිරුපණය වන දෑ (වචන/රටාවන්/කෙටිමං) shell මගින් ප්‍රසාරණය (expand) කිරීමෙන් පසු commands ක්‍රියාත්මක වීම සිදුවේ. Commands බොහෝ ගණනක් wild cards වලට අනුකූලතාවය දක්වන නිසා මෙමගින් ඉටුවන මෙහෙය අතිමහත් ය.

අප යොදාගන්නා wild card සංකේතය (symbol) අනුව shell මගින් ප්‍රසාරණය සිදු කරන ආකාරය වෙනස්වේ. ඒ එකිනෙකක් පිළිබඳව පිළිවෙලින් සොයා බලමු.

Path (පෙත) ප්‍රසාරණය

කිසියම් අක්‍ෂරයක් (character) හෝ අක්‍ෂර පංතියක් (character class) සමග * (තරු සලකුණ – asterisk) ඇතුලත් කල විට එය file/directory path එකක් ලෙස shell මගින් හදුනාගනී. ඊට ගැළපෙන directories/files කිහිපයක් ඇත්නම් ඒවා පිළිවෙලින් දැක්වෙන අතර * පිහිටි ස්ථානය අනුව අර්ථ දැක්වීම වෙනස් ය. Wild card යොදා ඇතිවිට Tab key එබීමෙන් ලැයිස්තුවේ මුල් නිවේශිතය (first entry) පූරණය වීම සිදුවේ. Path expansion සඳහා උදාහරණ කිහිපයක් පහත දැක්වේ. එහි wild card යොදා ඇති ආකාරය අනුව ප්‍රසාරණය වෙනස් වන ආකාරය හොඳින් නිරීක්ෂණය කරන්න. Wild card එකට ගැළපෙන directory වල අන්තර්ගතය පෙන්වනු ලැබේ.

path-expansion
Path expansion

සටහන: ප්‍රසාරණ ක්‍රියාවලියේදී සැඟවුණු ගොණු/නාමාවලි (hidden files/directories) පෙන්වීම සිදු නොවේ. මේ නිසා ඒවා දැක ගැනීමට විශේෂිත ක්‍රමයකට wild cards ලබාදීම කල යුතුය. Linux ගොණු පද්ධතියෙහි සැඟවුණු files/directories . (period) එකකින් ආරම්භ වන නිසා .* ආකාරයට wild card ලබාදුන් විට අමතර වශයෙන් . (current working directory) සහ .. (parent directory) ද දිස්වේ. මෙහිදී wild card ලබාදිය යුතු නිවැරදි ආකාරය පහත දැක්වේ.

ls .[!.]*
අදහස: . එකකින් ආරම්භ වන දෙවැනි සංකේතය . නොවන (!) සියලුම (*) files/directories.
correc-use
wild card correct usage

වඩාත් පහසු ක්‍රමයක් ලෙස ls -A ලෙස command එක හදුන්වා දිය හැකි නමුත් මෙහිදී hidden files/directories ඇතුළුව සියලුම files/directories දර්ශනය වේ.

incorrect-wild-cards
wild card incorrect usage

~ (Tilde) ප්‍රසාරණය

~ තනිව යොදාගත් විට දැනට shell එක භාවිතා කරන පරිශීලකගේ නිවස්න ගොණු කවරයේ නාමය  (current user’s home directory) ද ~ ට පසුව පරිශීලක නාමය සමග යොදාගත් විට ඊට ගැළපෙන පරිශීලකයාගේ නිවස්න ගොණු  කවරයේ නාමය ද නිරුපණය වේ. කෙටිමගක් ලෙස ~ සමග පරිශීලක නාමයේ මුල් අකුරු කිහිපය ඇතුලත් කර Tab key එබීම කල හැකිය.

tilde-expansion
~ expansion

අංක ගණිතමය (Arithmetic) ප්‍රසාරණය

Shell එකෙහි ඉතා ප්‍රයෝජනවත් හැකියාවක් ලෙස සරළ ගණනය කිරීම් සඳහා යොදාගැනීමට හැකිවීම පෙන්වාදීමට පිළිවන. මෙහිදී අපට ගණනය කිරීමක් සිදු කිරීමට අවශ්‍ය බව shell එකට දැන්වීම සඳහා $((expression)) ලෙස $ සහ (()) තුළ අවශ්‍ය ගණිතමය ප්‍රකාශනය (mathematical expression) දැක්වීම සිදු කරයි. එකක් තුළ එකක් වශයෙන් ප්‍රකාශන කිහිපයක් යොදාගන්නේ නම් $(()) ද ඒ හා සමාන ව යොදාගැනීම හෝ () මගින් ඛාණ්ඩ කිරීම (grouping) කල හැකිය.

සටහන: සාමාන්‍ය commands සමග arithmetic expansion යොදාගැනීම ඉතා විරළ ය. කෙසේ නමුත් අපගේ අධ්‍යයනය පහසු කර ගැනීම සඳහා arithmetic expansion සමග යොදාගන්නා සුවිශේෂ command එකක් පිලිබඳ මූලික හැඳින්වීමක් පහත දැක්වේ.

echo command

echo command මගින් එයට ලබාදෙන පාඨමය ආදාන (text input) සම්මත ප්‍රතිදානයෙහි (stdout – standard output) පෙන්වීම සිදු කරයි. මේ සමග wild cards වුවද යොදාගත හැකි අතර ඒවා පෙර දැක්වූ ආකාරයටම ක්‍රියාකරයි.

echo-command
echo command

Arithmetic expansion සඳහා යොදාගත හැකි ගණිත කර්ම සංකේත (operators) සහ ඒවා යොදාගන්නා ආකාරය පිලිබඳ උදාහරණ පහත දැක්වේ.

 සංකේතය  ගණිත කර්මය  උදාහරණය
+  එකතු කිරීම (add)  3 + 2 → 5
 අඩු කිරීම (subtract)  5 – 2 → 3
*  වැඩි කිරීම (multiply)  4 * 3 → 12
/  බෙදීම (divide)  16 / 4 → 4
% (පුර්ණ සංඛ්‍යා ලෙස) බෙදූ විට ඉතිරිය (modulus/remainder)  11 % 6 → 5
**  දර්ශකය/බලයකට නැංවීම (exponent)  2 ** 3 → 8
atithmetic-expansion
Arithmetic expansion

සඟල වරහන් {} (braces) ප්‍රසාරණය

ඉතා නම්‍යශීලි ලෙස කිසියම් රටාවකට අනුව යෙදෙන අකුරු/වචන හෝ ඉලක්කම් (characters/words or numbers) නිර්මාණය කිරීමට ප්‍රයෝජනවත් අංගයක් ලෙස shell හි ඇති සඟල වරහන් – {} ප්‍රසාරණය කිරීමේ හැකියාව පෙන්වා දීමට පිළිවන. මෙය command line හි ඇති වටිනාකම වඩාත් තීව්ර ලෙස පෙන්වන හොඳම නිදසුනකි.

මෙහිදී {} තුළ අප ඇතුලත් කරන අකුරු/වචන හෝ ඉලක්කම් (characters/words or numbers) විචලනයන් (variations) ලෙස හා ඉන් පිටත ඇති සියල්ල ස්ථාවර කොටස් (fixed portions) ලෙස shell මගින් හඳුනා ගනී. {} තුල අපට විචලනය සිදුවිය යුතු අගයන් (values) දැක්වීම හෝ පරාසයන් (ranges) දැක්වීම කල හැකිය. මේ සඳහා පිළිවෙලින් , (comma) සහ .. (double dots/periods) යොදාගනී. අගයන් (values) දැක්වීමේදී ඒවා යොදාගත යුතු අනුපිලිවෙළින් ම ඇතුලත් කල යුතුය. තවද පරාසයන් (ranges) සඳහා ආරම්භක (start) සහ අවසාන (end) අගයන් .. සමග දැක්විය යුතුය. සාමාන්‍යයෙන් අකුරු/ඉලක්කම් (characters/numbers) පරාසයක් දැක්වූ විට විචලනය (variation) සිදු වන්නේ අනුයාත අගයන් අතර වෙනස (step value) 1 වන පරිදි ය. සම්මත විචලනය වෙනස් කිරීමට පරාසයේ අගට .. සමග අවශ්‍ය අගය (step value) ලබාදිය හැකිය. පරාසයේ ආරම්භක අගයට වඩා අවසාන අගය වැඩි නම් ආරෝහණ (ascending) ශ්‍රේණියක් (series) ද අවසාන අගය කුඩා නම් අවරෝහණ (descending) ශ්‍රේණියක් ද නිර්මාණය වේ. අගයන් දෙක සමාන නම් පරාසයක් නිර්මාණය නොවේ. අවශ්‍ය නම් {} කිහිප වතාවක් වුවද යොදාගෙන සංකීර්ණ රටා නිර්මාණය කර ගැනීමට පිළිවන. {} යොදාගන්නා උදාහරණ විශාල සංඛ්‍යාවක් මෙහි දක්වා ඇත. ඒවා හොඳින් අධ්‍යයනය කිරීමෙන් ක්‍රියාකාරිත්වය පිලිබඳ දැනුවත් වීම ඉතා වැදගත් ය.

වැදගත්: අගයන් දැක්වීමේදී ඒවා අතර හිස්තැන් නොතැබීමට වගබලාගත යුතුය.

barce-values-expansion
Values expansion
brace-expansion-ranges
Ranges expansion

One thought on “28 – Command line හි ප්‍රසාරණය (expansion) (1 කොටස)

  1. […] tr සඳහා input ලෙස ලබාදිය හැකිය. echo command භාවිතය Command line හි ප්‍රසාරණය ලිපියේ පළවිය. tr සමග විශේෂිත අකුරු […]

    කැමතියි

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

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 ගිණුම හරහා ය. පිට වන්න /  වෙනස් කරන්න )