ما را دنبال کنید:
image

برنامه نویسی شل در لینوکس چیست؟

برنامه نویسی شل در لینوکس چیست؟

معرفی سیستم عامل لینوکس

از آنجایی که معرفی کامل سیستم عامل لینوکس در جزوه های مربوط به لینوکس لایتک ارایه شده است در این بخش تنها به مرور اجمالی از این سیستم عامل اکتفا می کنیم.

  • پایدار (Stable)
  • مقاوم ((Robust
  • ایمن (Secure)
  • کارایی بالا (High performance)

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

  • سیستم عامل شخصی (Personal work)
  • وب سرور (Web Server)
  • محیطی برای برنامه نویسی (Software Development Workstation)
  • سرویس ­دهنده گروهی (Workgroup Server)
  • مراکز داده  (Data Center)
  • و بسیاری موارد دیگر ...

استفاده کرد.

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

 

 ساختار پایه سیستم عامل لینوکس

 

هسته لینوکس (Kernel) چیست؟

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

قابلیت­های کرنل :

  • I/O Management
  • Process Management
  • Device Management
  • File Management
  • Memory Management

به بیان دیگر، هر application یا برنامه کاربردی بر روی سیستم عامل برای ارتباط با سخت­افزار نیازمند رابطی است که این رابط را کرنل برقرار می­کند. زمانی که کامپیوتر شما راه­اندازی می­شود و نیازمند استفاده از تکنولوژی موجود سخت ­افزاری هستیم این ارتباط توسط هسته سیستم ­عامل برقرار می­شود. به این گونه که بر روی سخت افزار،  Device Driverقرار می­گیرد که این تکنولوژی سخت­ افزار به خوبی شناخته می­شود و بر روی Device Driver نیز Kernel قرار دارد و در مرحله بعد بر روی Kernel نیز utility و ابزارهای دیگر  قرار گرفته ­اند.

برای برقراری ارتباط با سخت­ افزار روشهای مختلفی وجود دارد که یکی از آنها GUI یا محیط گرافیکی و دیگری محیط Text  می­باشد که در این آموزش با محیط text بیشتر کار می­کنیم. برای این کار، دستوراتی به Shell ارسال ­می­شود و Shell آنها را تجزیه و تحلیل می کند و با استفاده از امکانات موجود خلاصه ­ای از فرآیندها وارد سخت ­افزار می­شود و سخت­ افزار را به کار می­گیرد.

 

Shell را می­توان معادل گارسن یک رستوران در نظر گرفت که درخواست­هایی به آن فرد ارایه می­شود و گارسن با استفاده از روشهایی، سرویس مورد نظر ما را آماده می­کند و در اختیار کاربر قرار می­دهد.

 

 

نمایی از ساختار هسته لینوکس

 

شل به شما رابطي به سيستم يونيكس و لينوكس ايجاد مي كند. ورودي را از شما مي گيرد و برنامه ها را براساس آن ورودي اجرا مي كند. هنگامي كه برنامه اي اجرا را پايان مي دهد، خروجي برنامه را نشان خواهد داد. 

شل محيطي است كه مي توان در آن دستورات، برنامه ها و اسكريپت هاي شل را اجرا كرد. انواع مختلفي از شل وجود دارد، درست همانند اينكه انواع مختلفي سيستم عامل وجود دارد. هر نوع از شل داراي مجموعه دستورات و توابع سازماندهي شده خود مي باشد. 

shell Prompt

prompt علامت $ كه پرامپت دستور نام دارد توسط شل ارايه مي شود. هنگامي كه پرامپت نشان داده مي شود، مي توان يك دستور را تايپ كرد. 

اين شل ورودي شما را پس از فشردن كليد Enter مي خواند. شل دستوري كه مي خواهيد اجرا كنيد را با توجه به اولين كلمه ورودي شما تعيين مي كند. گفتني است يك كلمه مجموعه اي پشت سر هم از كاراكترها مي باشد. Spacesها و تب ها كلمات را از يكديگر جدا مي سازند. 

 

مثال زير، دستور date است كه تاريخ و ساعت جاري را نشان مي دهد: 

 

date$

Thu Jun 25 08:30:19 MST 2009

 

مي توان پرامپت دستور خود را با استفاده از متغير محيطي PS1 سفارشي سازي كرد كه در فصل مربوط به محيط ها تشريح مي شود. 

انواع شل

در لينوكس دو نوع اصلي شل وجود دارد: 

  • Bourne shell: اگر از شل نوع Bourne استفاده مي كنيد، پرامپت پيش فرض كاراكتر $ است. 
  • 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 هنگامي كه در آزمايشگاه AT&T Bell  در نيوجرسي بود نوشته شد. 

شل Bourne اولين شلي بود كه در سيستمهاي يونيكسي ظاهر شد، بنابراين، به آن "the shell" گفته مي شود. يعني وقتي مي گوييم شل منظور همان Bourne shell است. 

Bourne shell معمولا تحت عنوان /bin/sh بر روي نسخه هاي مختلف يونيكس و لينوكس نصب مي شود. به همين خاطر، مي توان شل را براي نوشتن اسكريپت ها جهت استفاده بر روي انواع مختلف لينوكس استفاده كرد. 

در اين مجموعه آموزشي قصد داريم تا اكثر مفاهيم شل براساس Borne Shel را پوشش دهيم. 

ویدئوهای آموزشی شل اسکریپت مهندس حاجی غلامعلی و مهندس وهاب شالچیان 

34 ساعت ویدئوهای کلاسی لایتک 

با امکان شرکت در آزمون و دریافت گواهینامه

Shell Scripts

مفهوم اصلي شل اسكريپت ليستي از دستورات است كه به ترتيب اجرا ليست مي شوند. يك شل اسكريپت مناسب داراي دستوراتي است كه با استفاده از علامت # مراحل را توضيح مي دهد. 

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

 

شل اسكريپت ها و توابع هر دو تفسير مي شوند. بدين معناست كه آنها كامپايل نمي شوند. 

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

 

مثال اسكريپت: 

فرض كنيد كه اسكريپت test.sh را ايجاد مي كنيم. توجه دشاته باشيد كه تمامي اسكريپت ها داراي پسوند .sh  مي باشند. پيش از افزودن هرچيزي به اسكريپت خود، نياز است تا به سيستم اعلام كنيم كه يك شل اسكريپت آغاز مي شود. اين امر با استفاده از ساختار تعبيه شده انجام مي شود. به عنوان مثال: 

bin/sh/!#

اين به سيستم مي گويد كه دستوراتي كه در ارامه مي آيند توسط Bourne shell اجرا مي شود. اين يك shebang  نام دارد زيرا نماد # يك هش نام دارد و نماد ! يك بنگ نام دارد. 

براي ايجاد يك اسگريپت با سه دستور، در اولين خط shebang را قرار مي دهيم و سپس دستورات را اضافه مي كنيم: 

bin/bash/!#

pwd

ls

تفاوت شل اسکریپت با سایر زبانهای برنامه نویسی

در سایر زبان­های برنامه­ نویسی، دستورات به زبان ماشین ترجمه می­شوند.  به عبارت دیگر، این زبان­ها دارای کامپایلر هستند اما در شل اسکریپت، دستورات یک به یک توسط مفسر تفسیر می­شوند. زبان­های برنامه نویسی با کامپایل کردن برنامه نوشته شده، باعث افزایش سرعت می­شوند، البته این تبدیل به زبان ماشین معایبی نیز دربرخواهد داشت که از آن جمله می­توان به ناسازگاری با انواع سیستم­ها اشاره کرد. چرا که کدی که برای سیستم 64 بیتی کامپایل می­شود با کد سیستم 32 بیتی متفاوت می­باشد. اما در شل اسکریپت، چون دستورات تفسیر می­شوند، در هر سیستمی قابلیت اجرا وجود دارد.

 

ویدئوهای آموزشی شل اسکریپت مهندس حاجی غلامعلی و مهندس وهاب شالچیان 

34 ساعت ویدئوهای کلاسی لایتک 

با امکان شرکت در آزمون و دریافت گواهینامه