کالج اورست : اولین و مجهزترین آموزشگاه تخصصی کامپیوتر ، شبکه و برنامه نویسی در کرج با بیش از 16000 فارغ التحصیل (تاسیس 1388 )
«شل» (Shell) برنامهای در لینوکس و یونیکس است، که میتوانید در آن دستوراتی را جهت اجرا توسط سیستم وارد کنید. هنگامی که پنجره ترمینال را در لینوکس باز میکنید، در واقع برنامه شل اجرا میشود، که یک رابط کاربری را برای وارد کردن دستورات در اختیار شما قرار میدهد. این رابط کاربری را معمولا با عنوان «خط فرمان» نیز میشناسند. وقتی دستوری را در این خط فرمان وارد میکنید، توسط شل اجرا شده و نتیجه در صفحه نمایش داده میشود.
علاوه بر اینکه میتوانید دستورات را به صورت تعاملی وارد کرده و اجرا کنید، شل این قابلیت را دارد که دستورات از قبل ذخیره شده در فایلها را اجرا کند. این نوع از اجرا را «اسکریپتنویسی شل» مینامند و ما در این نوشته قصد داریم مفاهیم پایه آن را توضیح دهیم.
تاریخچۀ شل
از همان ابتدای شروع پروژه یونیکس در سال 1970، برنامه شل وجود داشت؛ آن را با نام V6 Shell میشناختند و توسط شخصی به نام «کن تامسون» (Ken Thomson) نوشته شده بود. در سال 1977، «بورن شل» (Bourne Shell) توسعه این برنامه را ادامه داد و تا امروز که به شل پیشفرض برای اکانتهای root در لینوکس درآمده، این نسخه همچنان به قوت خود باقی است. گفتنی است نسخهی یاد شده از شل قابلیت اسکریپتنویسی را محقق کرد که در طول سالهای زیاد مفید بودن آن غیرقابل انکار بوده است.
توسعههای بعدی شل در سال 1980 سبب شد که نسخههای جانبی خیلی محبوبی از آن منتشر شود. دو نمونه از محبوبترین این نسخهها C-Shell و Korn Shell بودند. هر یک از این شلها سینتکس مختص خود را داشتند که در برخی موارد با شل اصلی تفاوتهای بنیادی داشت.
امروزه یکی از محبوبترین شلها، Bash Shell است. Bash مخفف شدۀ عبارت Bourne-Again-Shell است و یک نسخه بسیار پیشرفتهتر از شل توسعه داده شده توسط Bourne است. در این مقاله، از این شل برای آموزش استفاده خواهیم کرد.
اجرای یک اسکریپت شل
اجرای اسکریپت شل بسیار ساده است. تنها کافی است مسیر اسکریپت را به عنوان یک آرگومان به شل بفرستید.
خودکار کردن کارها
اولین مزیت استفاده از اسکریپتنویسی شل خودکارسازی کارهایی است که مکرراً اجرا میشوند. به عنوان مثال، فرض کنید شما یک کار مشخص را هر روز در سیستم خود انجام میدهید. اگر برای این کار مجبورید هر روز در لینوکس خود دستورات متعددی را اجرا کنید، میتوانید به راحتی این دستورات را در یک فایل ذخیره کنید و به عنوان یک اسکریپت شل اجرا نمایید. مثالهایی را در ادامه میبینید:
آرشیو و آپلود کردن یک فایل یا پوشه به صورت روزانه در فضای ذخیرهسازی ابری مانند S3.
فشردهسازی فایلهای log که هر روز در حال گسترش هستند.
استخراج قیمت سهام، تجزیه و تحلیل دادههای استخراج شده و فرستادن ایمیل یا پیامک در صورت رسیدن به یک وضعیت مشخص.
ترکیب دستورات چندگانه
یکی دیگر از مزایای اسکریپتنویسی شل این است که میتوان مجموعهای به هم پیوسته از دستورات را در یک دستور واحد ترکیب کرد؛ امری که در برخی موارد میتواند بسیار کاربردی باشد. بدون شک به خاطر سپردن یک دستور خیلی راحتتر از چند دستور است. همچنین نیازی نیست ترتیب اجرای آنها را به یاد داشته باشید.
یک مثال خوب برای روشنتر شدن موضوع، میتواند مجموعه دستورات به هم پیوسته بوت شدن خود سیستم عامل لینوکس باشد. یکی از مراحل بوت شدن این است که سیستم عامل تعدادی دستور را برای اینکه سیستم در یک حالت پایدار قرار گیرد اجرا میکند. این دستورات در واقع اسکریپتهای شل هستند که در پوشه etc قرار دارند. اگر به یکی از این اسکریپتها نگاهی بیاندازید، خواهید دید که برای بالا آمدن یا بوت شدن یک سیستم کدهای خیلی پیچیدهای اجرا میشوند و بدون استفاده از اسکریپت شل این کار بسیار سخت است.
امتیازات استفاده از Shell script چیست ؟
Shell یک رابط برای سیستم یونیکس در اختیار شما قرار میدهد.
دریافت ورودیها
اجرای برنامهها بر اساس ورودیهای دریافتی
نمایش خروجی برنامه در زمان پایان اجرای آن
-
Lpic – 1
Basic Script Building
Using Structured Commands
More Structured Commands
Handling User Input
Presenting Data
Script Control
Creating Functions
Writing Scripts for Graphical Desktops
Introducing sed and gawk
Regular Expressions
Advanced sed
Advanced gawk
Working with Alternative Shells
Writing Simple Script Utilities
Producing Scripts for Database, Web, and E-Mail
Creating Fun Little Shell Scripts