دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۰
  • اسفند

جلسه ۱۲ : Shell در یونیکس چیست؟

  • دسته‌بندی‌ها :
جلسه ۱۲ :  Shell در یونیکس چیست؟
    • جزئیات
    • نوع محتواآموزشی

      دوستان و علاقمندان به مباحث آموزش یونیکس (UNIX) ، این آموزش را از سایت پی وی لرن دنبال خواهیم نمود. Shell در یونیکس چیست؟ انواع آن کدام است؟ در این بخش به این مباحث می پردازیم و Shell Script ها و کامنت ها را نیز خواهیم داشت. با ادامه ی کار و آموزش یونیکس از وب سایت آموزشی پی وی لرن همراه باشید.

      Shell در یونیکس چیست؟

      شل ها (Shell ها) یک رابط دستوری بین کاربر و هسته ی سیستم عامل است. ورودی را از شما جمع آوری می کند و برنامه ها را بر اساس آن ورودی اجرا می کند. هنگامی که یک برنامه، اجرا را به پایان رساند ، خروجی آن برنامه نشان داده می شود.

      Shell محیطی است که در آن می توانیم دستورات ، برنامه ها و اسکریپت های shell خود را اجرا کنیم. انواع مختلفی از یک shell وجود دارد ، دقیقاً همان طور که انواع مختلف سیستم های عامل وجود دارد. هر نوع شل مجموعه ای از دستورات و عملکردهای شناخته شده خود را دارد.

      Shell Prompt

      prompt، $ ، که به آن دستور prompt گفته می شود ، توسط شل صادر می شود. زمانی که prompt نمایش داده می شود ، می توانید یک دستور را تایپ کنید.

      شل (Shell) پس از فشار دادن Enter ، ورودی شما را می خواند. این فرمان با نگاه کردن به اولین کلمه ی ورودی شما فرمان شما را اجرا می کند. یک کلمه مجموعه ای از کاراکترهای ناگسستنی است. فضا ها و تب ها کلمات را جدا می کنند.

      در زیر نمونه ای ساده از دستور date آورده شده است که تاریخ و زمان جاری را نمایش می دهد.

      مثال : 

      شما می توانید فرمان prompt خود را با استفاده از متغیر محیط PS1 که در آموزش محیط توضیح داده شده است ، سفارشی سازی کنید.

      در بخش بعدی با انواع شل ها آشنا خواهیم شد.

      انواع Shell

      در یونیکس ، دو نوع اصلی Shell وجود دارد.

      Bourne shell – اگر از شلی از نوع Bourne استفاده می کنید ، کاراکتر $ prompt پیش فرض است.

      C shell – اگر از شلی از نوع C استفاده می کنید ، کاراکتر % پیش فرض است.

      Bourne Shell شاخه های زیر را دارد.

      • (Bourne shell (sh
      • (Korn shell (ksh
      • (Bourne Again shell (bash
      • (POSIX shell (sh

      شل های مختلف از نوع C به صورت زیر دنبال می شوند.

      • (C shell (csh
      • (TENEX/TOPS C shell (tcsh

      شل اصلی یونیکس در اواسط دهه ی ۱۹۷۰ توسط Stephen R. Bourne نوشته شده بود در حالی که او در آزمایشگاه های بل و تی در نیوجرسی بود.

      شل بورن (Bourne shell) اولین شلی (Shell) بود که در سیستم های یونیکس ظاهر شد ، بنابراین از آن به عنوان “the shell” یاد می شود.

      شل بورن (Bourne shell) معمولاً به عنوان bin / sh / در اکثر نسخه های یونیکس نصب می شود. به همین دلیل ، شل مورد نظر برای نوشتن اسکریپت هاست که می تواند در نسخه های مختلف یونیکس استفاده شود.

      در این بخش، ما قصد داریم بیش تر مفاهیم Shell را که مبتنی بر Borne Shell هستند ، پوشش دهیم.

      مبحث Shell در یونیکس چیست؟ را با Shell Script ها ادامه خواهیم داد.

      Shell Script ها

      مفهوم اصلی Shell Script لیستی از دستورات است که به ترتیب اجرا، لیست شده اند. یک Shell Script خوب کامنت هایی خواهد داشت که قبل از آن کامنت ها، علامت # قرار گرفته و کامنت ها مراحل را شرح می دهد.

      تست های شرطی ، مانند مقدار A از مقدار B بیش تر است ، حلقه هایی که به ما امکان می دهند مقادیر انبوهی از داده ها را مرور کنیم ، فایل هایی برای خواندن و ذخیره داده ها ، و متغیرهایی برای خواندن و ذخیره داده ها ، و اسکریپت هایی که ممکن است شامل توابع باشند، وجود دارد.

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

      Shell script ها و توابع هر دو تفسیر می شوند. این بدان معنی است که آن ها کامپایل نشده اند.

      مثال Script

      فرض کنید ما یک اسکریپت test.sh ایجاد می کنیم. توجه داشته باشید که همه اسکریپت ها دارای پسوند sh. هستند. قبل از اضافه کردن هر چیز دیگری به اسکریپت ، باید به سیستم هشدار دهید که یک اسکریپت شل در حال شروع است. این کار با استفاده از ساختار shebang انجام می شود. به عنوان مثال:

      مثال : 

      این دستور به سیستم می گوید که دستورات زیر توسط شل بورن اجرا می شود. این به عنوان shebang نامیده می شود زیرا نماد #، هش نامیده می شود ، و ! نمادی است که bang نامیده می شود.

      برای ایجاد یک اسکریپت حاوی این دستورات ، ابتدا خط shebang را قرار داده و سپس دستورات را اضافه می کنید.

      مثال : 

      همان طور که بیان شد کامنت ها مراحل کار را شرح می دهند و قبل از کامنت ها علامت # را خواهیم داشت. در ادامه به مبحث کامنت های شل می پردازیم.

      کامنت های Shell

      می توانید کامنت های خود را به شرح زیر در اسکریپت تان قرار دهید.

      مثال : 

      محتوای فوق را ذخیره کنید و اسکریپت را اجرا کنید.

      مثال : 

      shell script اکنون آماده اجرا می باشد.

      مثال : 

      پس از اعلان، نتیجه ی زیر را دریافت خواهید کرد.

      مثال : 

      توجه – برای اجرای برنامه موجود در دایرکتوری موجود ، از program_name/. استفاده کنید.

      Extended Shell Script

      اسکریپت های Shell چندین ساختار نیاز دارند که به محیط شل می گویند چه کاری باید انجام شود و چه موقع باید آن را انجام دهد. البته بیش تر اسکریپت ها پیچیده تر از نسخه فوق هستند.

      Shell، یک زبان برنامه نویسی واقعی ، کامل با متغیرها ، ساختارهای کنترل و موارد دیگر است. مهم نیست که یک اسکریپت چه قدر پیچیده باشد ، آن فقط لیستی از دستوراتی است که به صورت متوالی اجرا می شوند.

      اسکریپت زیر از دستور read استفاده می کند که ورودی را از صفحه کلید می گیرد و آن را به عنوان مقدار متغیر PERSON اختصاص می دهد و در آخر آن را در STDOUT چاپ می کند.

      مثال : 

      در این جا نمونه ای از پیاده سازی یک اسکریپت آمده است. به آن ها توجه نمایید.

      مثال : 

      در این جا مبحث Shell در یونیکس چیست؟ را به پایان می رسانیم.

      کلام پایانی

      دوستان عزیز خوش حالیم از این که مباحث آموزش یونیکس را دنبال می کنید. همان طور که مشاهده نمودیم Shell ها یا به شکل رابط خط دستور (Command-line Interface) یا همان CLI و یا به شکل رابط گرافیکی می باشند. بنابراین در این بخش با مفهوم شل و این که Shell در یونیکس چیست؟ و انواع شل ها و کار با آن ها آشنا شدیم. در جلسه ی بعدی با مبحث Shell Variables (متغیرهای شل) در خدمت تون خواهیم بود. با دوره ی آموزش یونیکس از وب سایت آموزشی پی وی لرن همراه و همگام باشید.

      QR:  جلسه ۱۲ :  Shell در یونیکس چیست؟
      به اشتراک بگذارید