31 – Shell පිළිබඳව වඩාත් ගැඹුරින් (1 කොටස)

Linux විධාන පෙළ (command line) පිලිබඳ මූලික පාඩම් මාලා වලදී අප පසුවට සාකච්චා කිරීමට කල් තැබූ Shell පරිසරය (environment) සම්බන්ධ ඉතා වැදගත් කරුණු කිහිපයක් මින් ඉදිරියට සොයා බලමු. මේ යටතේ විචල්‍යයන් (variables) බලා ගැනීම (display), වෙනස් කිරීම සහ විධාන (commands) සඳහා අන්වර්ථ නාමයන් (aliases) නිර්මාණය කරන ආකාරය පිළිබඳව සාකච්චා කෙරේ.

විචල්‍යයන් (variables) යනු මොනවාද?

Shell පරිසරය තුළ සහ මෙහෙයුම් පද්ධතිය සමග වැඩ කිරීමට නිතර අවශ්‍ය වන තොරතුරු (තාවකාලික හෝ ස්ථිර) ගබඩා කිරීමට විචල්‍යයන් (variables) යොදාගනී. විචල්‍යයක් (variable) ප්‍රධාන කොටස් දෙකකින් සමන්විත වේ. එනම්, විචල්‍ය නාමය (variable name) සහ අගය (value) යනුවෙනි. මෙහෙයුම් පද්ධතිය සහ Shell මගින් සම්මත වශයෙන් variables විශාල සංඛ්‍යාවක විවිධ තොරතුරු ගබඩා කර ඇත. ක්‍රමලේඛ (programs) ක්‍රියාත්මක වීමේදී බොහෝවිට එම variables වල ගබඩා කර ඇති තොරතුරු භාවිතා කරනු ලබයි.

Variables ප්‍රධාන වශයෙන් කොටස් දෙකකි. එනම්, පාරිසරික විචල්‍යයන් (environment variables) සහ shell variables යනුවෙනි. අප මේ දක්වාම අධ්‍යයනය සිදුකරගෙන යනු ලබන, Bash shell මගින් ගබඩා කර ඇති තොරතුරු shell variables තුළ අඩංගු වන අතර අනෙක් සියලු තොරතුරු environment variables ලෙස හඳුනාගත හැකිය. කෙසේ නමුත් Bash shell භාවිතයේදී මේවා අතර වෙනසක් දැකගැනීමට ඉතාමත් අපහසුය. අමතර වශයෙන් shell මගින් විධාන (commands) සඳහා අන්වර්ථ නාමයන් (aliases) සහ කුඩා කාර්යයන් ඉටුකර ගැනීමට අවශ්‍ය ශ්‍රිතයන්ද (functions) දරා සිටී.

විචල්‍යයන් (variables) බලා ගැනීම

මේ සඳහා set සහ printenv යන විධාන (commands) යොදාගත හැකිය. set command මගින් shell සහ environment variables යන දෙකොටසම බලාගත හැකි අතර printenv මගින් environment variables පමණක් දර්ශනය කෙරේ. Variables විශාල ප්‍රමාණයක් ඇති නිසා ඉහත commands සමග less command යොදාගත් විට පහසුවෙන් පිටුවෙන් පිටුව තොරතුරු බලාගැනීමට හැකිය. මෙහිදී ඊලඟ (next) පිටුවට යාමට spacebar සහ පෙර (previous/back) පිටුවට යාමට b යොදාගනී. set සහ printenv commands මගින් පෙන්වන තොරතුරු වලින් කොටසක් පහත රූප සටහනේ දැක්වේ.

set and printenv commands
set and printenv commands

තනි විචල්‍යයක (variable) අගය (value) බලාගැනීමට printenv සමග variable name ලබාදිය හැකිය. විකල්ප වශයෙන් echo command මගින් ද variable හි අගය බලාගැනීමට පිළිවන. echo command භාවිතයේදී variable name ඉදිරියෙන් $ සලකුණ ලබාදිය යුතුය.

printenv & echo command
printenv & echo command

Shell තුළ යොදාගන්නා අන්වර්ථ නාමයන්හි (aliases) ලැයිස්තුවක් බලාගැනීමට alias command පමණක් තනිව ලබාදෙන්න.

view aliases
view aliases

Shell තුළ නිතර භාවිතා වන variables කිහිපයක් පහත විස්තර කර දක්වා ඇත.

DISPLAY - රූපක පරිසරයක් (Graphical environment) සහිත ව මෙහෙයුම් පද්ධතිය දියත් කර ඇත්නම් එහි නම මෙහි දැක්වේ.
සාමාන්‍යයෙන් මෙහි අගය ලෙස :0 දැක්වෙන අතර එය මුලින්ම ආරම්භ කල රූපක පරිසරයේ අංකයයි.
EDITOR - පාඨ සංස්කරණය (text editing) සඳහා යොදාගන්නා සම්මත ක්‍රමලේඛය (program) දැක්වේ.*
SHELL - Shell එකෙහි නම ඇතුලත් වේ.
HOME - Shell භාවිතා කරන පරිශීලකයාගේ (user) නිවස්න ගොණු කවරයේ (home directory) පෙත (path) මෙහි ඇතුලත්ය.
LANG - Shell තුළ යොදාගන්නා භාෂාව (language) මෙමගින් දක්වයි.
OLD_PWD - නාමාවලි අතර මාරුවීමේදී කලින් සිටි නාමාවලිය (previous working directory) තාවකාලිකව මෙහි ගබඩාවිම ස්වයංක්‍රීයව 
සිදුවේ.
PAGER - කිසියම් ප්‍රතිදානයක් (output) පිටුවෙන් පිටුව දැක්වීමට යොදාගන්නා සම්මත ක්‍රමලේඛය (program) දැක්වේ.*
PATH - Shell මගින් commands ක්‍රියාත්මක කිරීමේදී ක්‍රමලේඛ (programs) සොයාබැලිය යුතු නාමාවලි ලැයිස්තුව මෙහි අනුපිළිවෙලින් 
දක්වා ඇත.
PS1 (Prompt String 1) -  Shell තුළ විධාන ප්‍රේරකය (command prompt) දර්ශනය වියයුතු ආකාරය දක්වා ඇත. අපට අවශ්‍ය 
පරිදි prompt එක දර්ශනය කර ගැනීමට මෙහි විවිධ වෙනස්කම් කල හැකිය.
PWD - දැනට සිටින නාමාවලිය මෙහි ස්වයංක්‍රීය ලෙස ගබඩාවිම සිදුවේ.
TERM - Shell වෙත පිවිසීමට ඉඩ සලසන terminal එකෙහි නාමය දක්වයි.
TZ (TimeZone) - පරිගණකයේ වෙලාව දැක්වීමේදී පාදක වන වේලා කලාපය (timezone) මෙමගින් දැක්වේ.*
USER - Shell භාවිතා කරන පරිශීලක නාමය දැක්වේ.

* සමහර distributions වල අඩංගු නොවේ.

Shell පරිසරය නිර්මාණය වන ආකාරය

Variables වල ගබඩා වන තාවකාලික තොරතුරු හැර අනෙක් තොරතුරු සෑම විටම කුඩා පාඨ ගොණු (text files) වල සුරක්‍ෂිත (save) කර තැබීම Linux මෙහෙයුම් පද්ධතිය සහ shell මගින් සිදු කරනු ලබයි. මේ නිසා අපට ඒවායේ ඇතුලත් වන තොරතුරු පහසුවෙන් බලා ගැනීමට පිළිවන. කිසියම් පරිශීලකයෙකු මෙහෙයුම් පද්ධතියට ඇතුළුවීමත් සමග ම පසුබිමින් Bash shell ආරම්භ වන අතර පිලිවෙලින් පෙර සඳහන් කල ආරම්භක ගොණු (startup files) කියවීමෙන් පසු ඒවායේ ඇති තොරතුරු යොදාගෙන variables වල අගයන් ගබඩා කිරීම සිදුවේ. Variables වල ගබඩා වන තොරතුරු හැරුණුවිට shell එකෙහි සැකසුම් (settings) ද මෙම ආරම්භක ගොණු වල ඇතුලත් වේ.

අප shell එකට පිවිසීමේදී අමතර වශයෙන් ගොණු කිහිපයක ඇති තොරතුරු shell මගින් කියවීම සිදු කරයි. මෙහිදී shell එකට පිවිසීම ප්‍රධාන වශයෙන් ක්‍රම දෙකකට සිදුකල හැකිය. මින් පළමු ක්‍රමයේදී පරිශීලක නාමය (username) සහ නිවැරදි මුරපදය (password) ලබාදීමෙන් පසු shell එකට ඇතුළුවිය (login) හැකි අතර දෙවැනි ක්‍රමයේදී රූපක අතුරු මුහුණත (Graphical User Interface – GUI) හරහා terminal යොදාගෙන ස්වයංක්‍රිය ලෙස shell තුළට ඇතුළුවිය හැකිය. අප Command line පිලිබඳ මූලික පාඩම් වලදී සඳහන් කල අතථ්‍ය (virtual) terminal භාවිතා කිරීමේදී පළමු ක්‍රමය යොදාගනී. මේ එක් එක් ක්‍රමයේදී අමතර වශයෙන් භාවිතා කරනු ලබන ගොණු පිලිබඳ විස්තර පහත දැක්වේ.

1 ක්‍රමය

/etc/profile - සියලුම පරිශීලකයන් (all users) සඳහා අදාළ වන සැකසුම් (settings) අඩංගු කර ඇත.
∼/.bash_profile - පරිශීලකයාගේ පුද්ගලික සැකසුම් අඩංගු වන අතර /etc/profile හි ඇති සැකසුම් යටපත් (override) කල හැකිය.
∼/.bash_login - ඉහත .bash_profile ගොණුව සොයාගත නොහැකි නම් විකල්ප ලෙස මෙම ගොණුව යොදාගනී.
∼/.profile - .bash_profile හෝ .bash_login යන ගොණු එකක්වත් නොපවතී නම් අවසාන තුරුම්පුව වශයෙන් මෙම ගොණුව 
යොදාගැනීම සිදුවේ. Ubuntu වැනි Debian නිකුතුව (distribution) මත පදනම් වූ Linux මෙහෙයුම් පද්ධති සම්මත ලෙස මෙය
භාවිතා කරනු ලබයි.

2 ක්‍රමය

/etc/bash.bashrc - සියලුම පරිශීලකයන් (all users) සඳහා අදාළ වන සැකසුම් (settings) අඩංගු කර ඇත.
∼/.bashrc - පරිශීලකයාගේ පුද්ගලික සැකසුම් අඩංගු වන අතර /etc/bash.bashrc හි ඇති සැකසුම් යටපත් (override) කල හැකිය.

සටහන: ඉහත ~ මගින් පරිශීලකයාගේ නිවස්න ගොණු කවරය (home directory) නිරුපණය වේ. සාමාන්‍යයෙන් . (period/dot) එකකින් ආරම්භ වන ගොණු සහ නාමාවලි (files & directories) සැඟව ඇති නිසා ls command සමග -a විකල්පය (option) ලබාදීමෙන් ඒවා බලාගත හැකිය.

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

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