ප්රශ්නය: මගේ ලිනක්ස් සේවාදායකය bash Shellshock දෝෂයට ගොදුරු විය හැකිද නැද්ද යන්න පරීක්ෂා කරන්නේ කෙසේද සහ Shellshock සූරාකෑමෙන් මගේ Linux සේවාදායකය ආරක්ෂා කරන්නේ කෙසේද යන්න දැන ගැනීමට මම කැමතියි.
2014 සැප්තැම්බර් 24 වන දින, ආරක්ෂක පර්යේෂකයෙකු වන Stephane Chazelas විසින් "Shellshock" (එනම් "Bashdoor" හෝ "Bash bug") යන අන්වර්ථ නාමයෙන් හඳුන්වන bash අවදානමක් සොයා ගන්නා ලදී. මෙම දෝෂය ප්රයෝජනයට ගන්නේ නම්, කවචය ඇමතීමට පෙර විශේෂයෙන් සකස් කරන ලද පරිසර විචල්යයන් තුළ ක්රියාකාරී අර්ථ දැක්වීම් අපනයනය කිරීමෙන් දුරස්ථ ප්රහාරකයෙකුට අත
වැඩිදුර කියවන්න →ඔබ bash හි shell script එකක වැඩ කරන විට, ඔබට යම් ගොනුවක් නාමාවලියක තිබේද (හෝ නොපවතියි) පරීක්ෂා කිරීමට අවශ්ය අවස්ථා තිබේ, පසුව කොන්දේසිය මත පදනම්ව ක්රියාවක් කරන්න. . bash හි, bash තුළ ගොනුවක් තිබේද නැද්ද යන්න පරීක්ෂා කිරීමට ක්රම කිහිපයක් තිබේ. පහතින් මම මෙම භාවිත අවස්ථාව සඳහා bash shell script උදාහරණ කිහිපයක් පෙන්වමි.
ගොනුවක් තිබේදැයි පරීක්ෂා කිරීමට පහසුම ක්රමය වන්නේ test විධානය භාවිතා කිරීමයි. -f
නිසැකව ම bash ස්ක්රිප්ටින් හි වඩාත්ම ප්රයෝජනවත් අංගය වන්නේ ලූප් පාලනයයි. bash වැනි ඕනෑම අනිවාර්ය ක්රමලේඛන භාෂාවක, පුනරාවර්තන කාර්යයන් සිදු කිරීම සඳහා කොන්දේසි සහිත ප්රකාශයන් සමඟ ලූප් ප්රකාශ බහුලව භාවිතා වේ. bash නම්, විවිධ ආකාරයේ loop ප්රකාශ තුනක් තිබේ: for, while සහ to. මෙම සෑම ලූප් ප්රකාශයක්ම තරමක් වෙනස් තත්වයන් යටතේ ප්රයෝජනවත් වේ.
මෙම නිබන්ධනයේදී, මම bash shell scripts තුළ for, අතරතුර සහ තුරැ භාවිතා කරන්නේ කෙසේද යන්න පැහැදිලි කරමි. , සහ
වැඩිදුර කියවන්න →විධාන රේඛා වික්රමාන්විතයෙකු ලෙස, ඔබ නැවත නැවතත් එකම දිගු විධානයන් පුනරුච්චාරණය කරනු ඇත. ඔබ සැම විටම එකම යන්ත්රයට ඇතුල් වන්නේ නම්, ඔබ සෑම විටම එකම විධානයන් එකට සම්බන්ධ කරන්නේ නම්, හෝ ඔබ එකම ධජ සහිත වැඩසටහනක් නිරතුරුව ක්රියාත්මක කරන්නේ නම්, ඔබ එකම ක්රියාවන් නැවත නැවත කිරීමට ගත කරන ඔබේ ජීවිතයේ වටිනා තත්පර ඉතිරි කර ගැනීමට ඔබට අවශ්ය විය හැකිය. ඉවරයි.
එය සාක්ෂාත් කර ගැනීම සඳහා විසඳුම වන්නේ අන්වර්ථයක් භාවිතා කිරීමයි. ඔබ දන්නා පරිදි, අන්වර්ථයක් යනු විශේෂිත විධානයක් මතක තබා ගැනීමට සහ එයට නව නමක් ලබා දෙන ලෙස ඔබේ කවචයට පැවසීමේ ක්රමයකි: අන්වර්ථයක්. කෙසේ වෙතත්, තර්ක සම්මත කිරීමට හෝ පාලනය
වැඩිදුර කියවන්න →ඔබට විවිධ හේතූන් මත ලිනක්ස් සේවාදායකයක TCP/UDP සොකට් එකක් විවෘත කිරීමට අවශ්ය යැයි සිතමු. උදාහරණයක් ලෙස, ඔබට නිශ්චිත ලිපිනයක්/වරායක් වෙත ළඟා විය හැකිද යන්න පරීක්ෂා කිරීමට අවශ්ය වේ. නැතහොත් ඔබට දුරස්ථ වෙබ් පිටුවක් ලබා ගැනීමට හෝ පරීක්ෂා කිරීම සඳහා විවේක API එකක් ඉල්ලා සිටීමට අවශ්ය වේ. නැතහොත් ඔබට දුරස්ථ IRC සේවාදායකයකට සම්බන්ධ වීමට අවශ්යයි. කෙසේ වෙතත්, ඔබ සිටින ලිනක්ස් සේවාදායකය ඉතා සීමා සහිත නම් කුමක් කළ යුතුද? එම සේවාදායකයේ, netcat, curl හෝ wget වැනි සම්මත මෙවලම් කිසිවක් නොතිබිය හැකි අතර, ඔබට bash shell පමණි.
වැඩිදුර කියවන්න →ඕනෑම ක්රමලේඛන භාෂාවක, ශබ්දකෝෂයක් යනු වස්තු සමූහයක් ගබඩා කළ හැකි මූලික දත්ත ව්යුහයන්ගෙන් එකකි. ශබ්දකෝෂයක, වස්තු ගබඩා කරනු ලබන්නේ <යතුර, අගය> යුගල ලෙසය. එනම්, ශබ්දකෝෂයක යතුරු කට්ටලයක් ගබඩා කර ඇති අතර, සෑම යතුරක්ම එයට සම්බන්ධ අගයක් ඇත. ඔබට ශබ්දකෝෂයක් එහි අනුරූප යතුර භාවිතා කිරීමෙන් අගයක් ඇතුළු කිරීමට, ලබා ගැනීමට හෝ යාවත්කාලීන කිරීමට හැකිය. ශබ්ද කෝෂ දත්ත ව්යුහය ඒවායේ යතුරු මත පදනම්ව අගයන් වේගයෙන් ලබා ගැනීම සඳහා ප්රශස්ත කර ඇත, එබැවින් එය බොහෝ විට හැෂ් වගු සමඟ ක්රියාත්මක වේ. විවිධ ක්රමලේඛන භාෂාවල, ශබ්දකෝෂයක් බොහෝ විට විවිධ නම් වලින් හඳුන්වනු ලැබේ, එනම් ආශ්රිත අරාව, හෑෂ්මැප්, හෝ සිතියම වැනි ය.
වැඩිදුර කියවන්න →එදිනෙදා shell scripting jobs හි එක් පොදු කාර්යයක් වන්නේ ගොනුවකින් පේළියෙන් දත්ත කියවීම, දත්ත විග්රහ කිරීම සහ එය සැකසීමයි. ආදාන ගොනුව සාමාන්ය පෙළ ගොනුවක් (උදා: ලඝු-සටහන් හෝ වින්යාස ගොනු) විය හැක, එහිදී එක් එක් පේළිය සුදු අවකාශ මගින් වෙන් කරන ලද ක්ෂේත්ර කිහිපයක් අඩංගු වේ, නැතහොත් එක් එක් පේළිය තුළ පරිසීමක-වෙන් වූ අගයන් සමඟින් සංයුති කර ඇති CSV ගොනුවකි. bash වලදී, ඔබට ගොනුවකින් තීරු පහසුවෙන් කියවා ඒවා වැඩිදුර සැකසීම සඳහා වෙනම විචල්යයන් තුළ ගබඩා කළ හැකිය. මෙම නිබන්ධනයේදී, මට උදාහරණ සමඟින් නිරූපණය කිරීමට ඉඩ දෙන්නබැෂ් හි තීරු විචල්යවලට කියවන ෂෙල් ස්ක්රිප්ට් එකක් ඔබට ලිවිය හැකි ආකාරය
වැඩිදුර කියවන්න →ඔබ බාෂ් ස්ක්රිප්ට් එකක් ලියන විට, සමහර විට ඔබට ස්ක්රිප්ට් එක තුළ ඉක්මනින් අංක ක්රච් කිරීමට අවශ්ය විය හැක. උදාහරණයක් ලෙස, ඔබ සමඟ වැඩ කරන දත්ත ඒකකයක් පරිවර්තනය කිරීමට, බෙදුණු අගයක් ආසන්නතම පූර්ණ සංඛ්යාවට වට කිරීමට, කවුන්ටරයක් සරල ලූපවල වැඩි කිරීමට, යනාදී ලෙස ඔබට අවශ්ය වේ. සෑම ක්රමලේඛන භාෂාවකටම පොදු දත්ත වර්ගවලට එරෙහිව මූලික අංක ගණිත මෙහෙයුම් සඳහා සහය ඇත. . කෙසේ වෙතත්, bash යනු සාමාන්ය අරමුණු ක්රමලේඛන භාෂාවක් නොව, විධාන රේඛා පරිවර්තකයක් වන බැවින්, එය අංක ගණිත මෙහෙයුම් සඳහා සීමිත සහයක් සහිතව පැමිණේ.
මෙම නිබන්ධනයේදී, මම බෂ් ෂෙල් ස්ක්රිප්ට් එකක පූර්ණ සංඛ්යා හෝ පාවෙන ලක්ෂ්ය ගණිත ක්රි
වැඩිදුර කියවන්න →අන් අය සමඟ බෙදා ගැනීමට පෙර ඔබේ shell script එක තුළට ද්විමය ගොනුවක් ඇතුළත් කිරීමට අවශ්ය තත්ත්වයකට ඔබ කවදා හෝ මුහුණ දී තිබේද? ඔබට එය කිරීමට අවශ්ය වන්නේ ඇයි? උදාහරණයක් ලෙස, ඔබ Linux භාවිතා කරන්නන්ට සහය දක්වන ඔබේ සමාගමේ IT දෙපාර්තමේන්තුවක sysadmin කෙනෙක්. ඔබ සපයන shell script එකක් ධාවනය කිරීමෙන් පරිශීලකයින්ට සමාගමේ VPN මෘදුකාංගය ස්ථාපනය කිරීමට සහ ඔවුන්ගේ වැඩ කරන පරිගණකයේ අවශ්ය සියල්ල වින්යාස කිරීමට ඔබට අවශ්ය වේ. මෙම අවස්ථාවේදී, ඔබ සියල්ල අඩංගු තාරබෝලයක් නිර්මාණය කරයි (උදා., ස්ථාපනය කිරීමට VPN මෘදුකාංගය, XML පැතිකඩක් සහ /etc තුළ තැන්පත් කළ යුතු වින්යාස ගොනු), සහ තාර ගොනුව ස්ථාපනයක එ
වැඩිදුර කියවන්න →බාෂ් ස්ක්රිප්ට් එකක් ස්වාධීනව ධාවනය වන්නේ කලාතුරකිනි. ඒ වෙනුවට, ඔබ බොහෝ විට එහි ධාවන කාල හැසිරීම වෙනස් කිරීම සඳහා විධාන රේඛාවෙන් විධාන රේඛාවෙන් තර්ක එකක් හෝ කිහිපයක් ලබා දෙයි. ස්ක්රිප්ටය පසුව සපයන ලද තර්ක කියවා, ඒ අනුව ඒවා විග්රහ කර සකසයි. වඩාත් දියුණු අවස්ථාවන්හිදී, ඔබට විධාන රේඛා විකල්ප ඔබගේ ස්ක්රිප්ට් වෙත යැවීමට අවශ්ය විය හැකිය (උදා: "-h" හෝ "-f my.txt") ස්ක්රිප්ට් වල පෙරනිමි සැකසුම් ප්රශස්ත ලෙස වෙනස් කිරීමට. මෙම නිබන්ධනය තුළ අපි ඔබට විධාන රේඛා තර්ක සමත් වන්නේ කෙසේද සහ ඔබට bash shell script එකක විධාන රේඛා විකල්ප හැසිරවිය හැකි ආකාරය සොයා බලමු.