پیش‌نویس:اسکریپت نویسی لینوکس

معرفی ویرایش

امروزه لینوکس یکی از محبوب ترین سیستم عامل­های موجود می باشد. این سیستم عامل در ابزارهای متعددی همانند تلفن های همراه، ابزارهای صنعتی، کامپیوترهای خانگی و ... استفاده می شود.

 
سیستم عامل داس

لینوکس نسل گرافیکی سیستم عامل یونیکس می باشد همانند ویندوز که در واقع نسل گرافیکی سیستم عامل DOS بود. یونیکس اولین بار توسط دنیس ریچی Dennis Ritchie، کن تامسون  Ken Thompson، داگلاس مکیلروی Douglas McIlroy و جو اوسانا  Joe Ossanna توسعه داده شد. این سیستم عامل سیستم عامل مبتنی بر خط فرمان بود به این معنا که کنترل سیستم عامل و اجرای برنامه از طریق دستورات که در خط فرمان صادر می شد، صورت می گرفت، همانند سیستم عامل داس. اما قابلیت بسیار مهمی که در این سیستم عامل وجود داشت فعال بودن سیستم عامل در زمان اجرای برنامه ها بود. به عبارت دیگر سیستم عامل داس سیستم عامل تک فرآیند Single Process بود یعنی در زمان اجرای یک فرآیند سیستم عامل هیچ گونه دخالتی در کنترل منابع همانند حافظه، پردازشگر و ... نداشت و فرآیند در حال اجرا می توانست تمامی منابع را مصرف کرده و حتی باعث خرابی Crash کل سیستم گردد. اما در سیستم عامل یونیکس، سیستم عامل همواره فعال بوده و  اجرای فرآیند را کنترل می نمود و در نتیجه همزمان امکان اجرای چندین فرایند وجود داشت لذا این سیستم عامل یک سیستم عامل  چند فرایندی Multi Process بود.

در سیستم عامل یونیکس می توانستید اجرای یک فرایند را به پشت صحنه Back Ground ارسال کنید و مجدد خط فرمان را در اختیار بگیرید و یا حتی چندین خط فرمان در اختیار داشته باشید. در واقع خود خط فرمان نیز یک فرایند بود که سیستم عامل اجرا می نمود پس شما می توانستید با استفاده از دکمه­ها Alt+F1  الی Alt+F12 خط فرمان های مختلف را فراخوانی کنید و در هر کدام دستورات مختلفی را صادر کنید.

این قابلیت باعث شد سیستم عامل یونیکس سیستم عامل بسیار قدرتمندی باشد اما امکان اجرای آن، در آن زمان، بر روی سیستم های شخصی PC (Personal Computer) وجود نداشت.

 
شل اسکریپت لینوکس

در کنار مزیت چند فرایندی، خط فرمان یونیکس از مفسر interpreter بسیار قوی برخوردار بود که می توانستید مجموعه ای از دستورات خط فرمان را در یک فایل نوشته و به صورت یک فرمان در خط فرمان اجرا نمود. به این قابلیت در یونیکس Bash Script Programming گفته می­شد شبیه قابلیت Batch File در سیستم عامل داس. تفاوت بسیار مهم آن با Batch File های در داس این بود که در داس شما معمولا فقط دنباله ای از دستورات را می نوشتید و برای کنترل روند اجرا همانند دستورات شرطی، حلقه های، فراخوانی توابع و ... امکاناتی در اختیار نداشتید، البته در نسخه های اولیه داس، و در صورت نیاز باید با هنر خود و استفاده از دستورات غیر متعارفی مانند برچسب گذاری label این امکانات را شبیه سازی می­کردید که خود باعث ناخوانایی شدید در برنامه نوشته شده می­گریدد.

اما در آن سمت در یونیکس به همان شکل زبان­های برنامه نویسی امکان استفاده از دستورات کنترل روند برنامه همانند شرط­ها، حلقه ها و فراخوانی توابع را در خود داشت و علاوه بر آن به راحتی می توانستید خروجی دستورات را به عنوان ورودی به دستور بعدی ارسال کنید که به آن لوله ­گذاری piping گفته می شد.

این قابلیت­ها باعث شد که مدیران سیستم ها به شدت به Bash Script نویسی علاقمند شوند و بسیاری از روال های مدیریتی خود را در قالب این فایل­ها برنامه نویسی کرده و در کنار آن استفاده از سرویس برنامه ­ریزی فرایندها Crontab قدرت خارق العاده ای به مدیران سیستم اعطا نمود

این قابلیت در سیستم عامل لینوکس حفظ شد و امروزه مهارت در Bash Scriptنویسی یکی از الزامات هر مدیر سیستم و حتی توسعه گرها و برنامه نویس­های سیستم عامل لینوکس گردیده است.