دوستان و علاقمندان به مباحث آموزش یونیکس (UNIX) ، این آموزش را از سایت پی وی لرن دنبال خواهیم نمود. Shell در یونیکس چیست؟ انواع آن کدام است؟ در این بخش به این مباحث می پردازیم و Shell Script ها و کامنت ها را نیز خواهیم داشت. با ادامه ی کار و آموزش یونیکس از وب سایت آموزشی پی وی لرن همراه باشید.
شل ها (Shell ها) یک رابط دستوری بین کاربر و هسته ی سیستم عامل است. ورودی را از شما جمع آوری می کند و برنامه ها را بر اساس آن ورودی اجرا می کند. هنگامی که یک برنامه، اجرا را به پایان رساند ، خروجی آن برنامه نشان داده می شود.
Shell محیطی است که در آن می توانیم دستورات ، برنامه ها و اسکریپت های shell خود را اجرا کنیم. انواع مختلفی از یک shell وجود دارد ، دقیقاً همان طور که انواع مختلف سیستم های عامل وجود دارد. هر نوع شل مجموعه ای از دستورات و عملکردهای شناخته شده خود را دارد.
prompt، $ ، که به آن دستور prompt گفته می شود ، توسط شل صادر می شود. زمانی که prompt نمایش داده می شود ، می توانید یک دستور را تایپ کنید.
شل (Shell) پس از فشار دادن Enter ، ورودی شما را می خواند. این فرمان با نگاه کردن به اولین کلمه ی ورودی شما فرمان شما را اجرا می کند. یک کلمه مجموعه ای از کاراکترهای ناگسستنی است. فضا ها و تب ها کلمات را جدا می کنند.
در زیر نمونه ای ساده از دستور date آورده شده است که تاریخ و زمان جاری را نمایش می دهد.
1 2 | $date Thu Jun 25 08:30:19 MST 2009 |
شما می توانید فرمان prompt خود را با استفاده از متغیر محیط PS1 که در آموزش محیط توضیح داده شده است ، سفارشی سازی کنید.
در بخش بعدی با انواع شل ها آشنا خواهیم شد.
در یونیکس ، دو نوع اصلی Shell وجود دارد.
Bourne shell – اگر از شلی از نوع Bourne استفاده می کنید ، کاراکتر $ prompt پیش فرض است.
C shell – اگر از شلی از نوع C استفاده می کنید ، کاراکتر % پیش فرض است.
Bourne Shell شاخه های زیر را دارد.
شل های مختلف از نوع C به صورت زیر دنبال می شوند.
شل اصلی یونیکس در اواسط دهه ی ۱۹۷۰ توسط Stephen R. Bourne نوشته شده بود در حالی که او در آزمایشگاه های بل و تی در نیوجرسی بود.
شل بورن (Bourne shell) اولین شلی (Shell) بود که در سیستم های یونیکس ظاهر شد ، بنابراین از آن به عنوان “the shell” یاد می شود.
شل بورن (Bourne shell) معمولاً به عنوان bin / sh / در اکثر نسخه های یونیکس نصب می شود. به همین دلیل ، شل مورد نظر برای نوشتن اسکریپت هاست که می تواند در نسخه های مختلف یونیکس استفاده شود.
در این بخش، ما قصد داریم بیش تر مفاهیم Shell را که مبتنی بر Borne Shell هستند ، پوشش دهیم.
مبحث Shell در یونیکس چیست؟ را با Shell Script ها ادامه خواهیم داد.
مفهوم اصلی Shell Script لیستی از دستورات است که به ترتیب اجرا، لیست شده اند. یک Shell Script خوب کامنت هایی خواهد داشت که قبل از آن کامنت ها، علامت # قرار گرفته و کامنت ها مراحل را شرح می دهد.
تست های شرطی ، مانند مقدار A از مقدار B بیش تر است ، حلقه هایی که به ما امکان می دهند مقادیر انبوهی از داده ها را مرور کنیم ، فایل هایی برای خواندن و ذخیره داده ها ، و متغیرهایی برای خواندن و ذخیره داده ها ، و اسکریپت هایی که ممکن است شامل توابع باشند، وجود دارد.
ما در بخش های بعدی قصد داریم بسیاری از اسکریپت ها را بنویسیم. این یک فایل متنی ساده است که در آن ما تمام دستورات و چندین ساختار مورد نیاز دیگر را قرار می دهیم که به محیط شل می گویند چه کاری انجام شود و چه زمانی این کار انجام شود.
Shell script ها و توابع هر دو تفسیر می شوند. این بدان معنی است که آن ها کامپایل نشده اند.
فرض کنید ما یک اسکریپت test.sh ایجاد می کنیم. توجه داشته باشید که همه اسکریپت ها دارای پسوند sh. هستند. قبل از اضافه کردن هر چیز دیگری به اسکریپت ، باید به سیستم هشدار دهید که یک اسکریپت شل در حال شروع است. این کار با استفاده از ساختار shebang انجام می شود. به عنوان مثال:
1 | #!/bin/sh |
این دستور به سیستم می گوید که دستورات زیر توسط شل بورن اجرا می شود. این به عنوان shebang نامیده می شود زیرا نماد #، هش نامیده می شود ، و ! نمادی است که bang نامیده می شود.
برای ایجاد یک اسکریپت حاوی این دستورات ، ابتدا خط shebang را قرار داده و سپس دستورات را اضافه می کنید.
1 2 3 | #!/bin/bash pwd ls |
همان طور که بیان شد کامنت ها مراحل کار را شرح می دهند و قبل از کامنت ها علامت # را خواهیم داشت. در ادامه به مبحث کامنت های شل می پردازیم.
می توانید کامنت های خود را به شرح زیر در اسکریپت تان قرار دهید.
1 2 3 4 5 6 7 | #!/bin/bash # Author : Zara Ali # Copyright (c) Tutorialspoint.com # Script follows here: pwd ls |
محتوای فوق را ذخیره کنید و اسکریپت را اجرا کنید.
1 | $chmod +x test.sh |
shell script اکنون آماده اجرا می باشد.
1 | $./test.sh |
پس از اعلان، نتیجه ی زیر را دریافت خواهید کرد.
1 2 3 | /home/amrood index.htm unix-basic_utilities.htm unix-directories.htm test.sh unix-communication.htm unix-environment.htm |
توجه – برای اجرای برنامه موجود در دایرکتوری موجود ، از program_name/. استفاده کنید.
اسکریپت های Shell چندین ساختار نیاز دارند که به محیط شل می گویند چه کاری باید انجام شود و چه موقع باید آن را انجام دهد. البته بیش تر اسکریپت ها پیچیده تر از نسخه فوق هستند.
Shell، یک زبان برنامه نویسی واقعی ، کامل با متغیرها ، ساختارهای کنترل و موارد دیگر است. مهم نیست که یک اسکریپت چه قدر پیچیده باشد ، آن فقط لیستی از دستوراتی است که به صورت متوالی اجرا می شوند.
اسکریپت زیر از دستور read استفاده می کند که ورودی را از صفحه کلید می گیرد و آن را به عنوان مقدار متغیر PERSON اختصاص می دهد و در آخر آن را در STDOUT چاپ می کند.
1 2 3 4 5 6 7 8 9 | #!/bin/sh # Author : Zara Ali # Copyright (c) Tutorialspoint.com # Script follows here: echo "What is your name?" read PERSON echo "Hello, $PERSON" |
در این جا نمونه ای از پیاده سازی یک اسکریپت آمده است. به آن ها توجه نمایید.
1 2 3 4 5 | $./test.sh What is your name? Zara Ali Hello, Zara Ali $ |
در این جا مبحث Shell در یونیکس چیست؟ را به پایان می رسانیم.
دوستان عزیز خوش حالیم از این که مباحث آموزش یونیکس را دنبال می کنید. همان طور که مشاهده نمودیم Shell ها یا به شکل رابط خط دستور (Command-line Interface) یا همان CLI و یا به شکل رابط گرافیکی می باشند. بنابراین در این بخش با مفهوم شل و این که Shell در یونیکس چیست؟ و انواع شل ها و کار با آن ها آشنا شدیم. در جلسه ی بعدی با مبحث Shell Variables (متغیرهای شل) در خدمت تون خواهیم بود. با دوره ی آموزش یونیکس از وب سایت آموزشی پی وی لرن همراه و همگام باشید.