انواع شِل (Shell) در لینوکس چیست؟

شِل‌(پوسته) بخش مهمی از هر جلسه(session) کاربر لینوکس است. هر پوسته خواص منحصر به فردی دارد از این رو، موارد زیادی وجود دارد که یک shell برای نیازهای خاص بهتر از دیگری است. در این مطلب بررسی می‌کنیم که شل چیست و چه اهمیتی دارد
 


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

شل (Shell) چه کاربردی دارد؟

شل (Shell) برنامه‌ای است که به عنوان رابط بین کاربر و کرنل عمل می‌کند و به کاربر اجازه می‌‎دهد تا دستوراتی را به کرنل بدهد و از آن پاسخ دریافت کند. از طریق شل می‌توانیم برنامه‌ها و اپلیکیشن‌ها را روی کرنل اجرا کنیم.  توانایی تعامل با کرنل، Shell را به ابزاری قدرتمند تبدیل می‌کند. بدون توانایی تعامل با کرنل، کاربر نمی‌تواند به ابزارهای ارائه شده توسط سیستم عامل دستگاه خود دسترسی داشته باشد. در ادامه شل‌های اصلی موجود برای محیط لینوکس را بررسی می‌کنیم:

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

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

  1. پوسته بورن (sh)

Bourne که در آزمایشگاه های AT&T Bell توسط استیو بورن توسعه یافته است، به عنوان اولین شل یونیکس در نظر گرفته شده و با sh مشخص می‌شود. به دلیل ماهیت جمع و جور و سرعت عمل بالا محبوبیت پیدا کرد.

این همان چیزی است که آن را به شِل پیشفرض سیستم عامل Solaris تبدیل کرده است. همچنین به عنوان شل پیش فرض برای تمام اسکریپت‌های مدیریت سیستم Solaris استفاده می‌شود. 

با این حال، پوسته Bourne دارای چند اشکال عمده است.

  • عملکرد داخلی برای مدیریت عملیات منطقی و حسابی ندارد.
  • برخلاف اکثر انواع مختلف شِل‌ها در لینوکس، پوسته Bourne نمی‌تواند دستورات استفاده شده قبلی را به خاطر بیاورد.
  • فاقد ویژگی‌های جامع برای ارائه یک استفاده تعاملی مناسب است.

نام مسیر کامل برای شِل بورن،  /bin/sh و sbin/sh/ است. به طور پیش فرض، از پرامپت # برای کاربر root و $ برای کاربران غیر root استفاده می‌کند.

  1. پوسته  بَش (bash)

پوسته GNU Bourne-Again که بیشتر به عنوان پوسته Bash شناخته می‌شود، برای سازگاری با پوسته Bourne طراحی شده است و ویژگی‌های مفید از انواع مختلف پوسته‌ها در لینوکس مانند شِل Korn و شِل C را در خود جای داده است.
این به ما امکان می‌دهد برخلاف Bourne به طور خودکار دستورات استفاده شده قبلی را به خاطر بیاوریم و آنها را با کمک کلیدهای جهت دار ویرایش کنیم.
نام مسیر کامل برای پوسته بَش  /bin/bash است. به طور پیش فرض، از دستور bash-VersionNumber# برای کاربر root و bash-VersionNumber$ برای کاربران غیر root استفاده می‌کند.

  1. پوسته سی  (csh)

پوسته C در دانشگاه کالیفرنیا توسط بیل جوی ساخته شد. به عنوان csh مشخص می شود. این برنامه برای شامل ویژگی‌های برنامه نویسی مفید مانند پشتیبانی داخلی برای عملیات حسابی و syntax شبیه به زبان برنامه نویسی C توسعه یافته است.
علاوه بر این، تاریخچه دستوراتی را که در انواع مختلف پوسته‌های لینوکس مانند پوسته Bourne وجود نداشت، در خود جای داد. یکی دیگر از ویژگی های برجسته پوسته C، نام مستعار (aliases) است.

نام مسیر کامل برای آن  /bin/csh است. به طور پیش‌فرض، از نام میزبان اعلان# برای کاربر root و نام میزبان% برای کاربران غیر root استفاده می‌کند.

  1. پوسته کورن (ksh)

پوسته Korn در آزمایشگاه AT&T Bell توسط دیوید کورن برای بهبود پوسته Bourne توسعه یافت. به عنوان ksh مشخص می‌شود. پوسته Korn ابر مجموعه‌ای (superset) از پوسته Bourne است.
علاوه بر پشتیبانی از هر چیزی که توسط پوسته Bourne پشتیبانی می‌شود، قابلیت‌های جدیدی را در اختیار کاربران قرار می‌دهد. این امکان پشتیبانی داخلی از عملیات حسابی را فراهم می‌کند در حالی که ویژگ‌ های تعاملی مشابه پوسته C را ارائه می‌دهد.
پوسته Korn اسکریپت های ساخته شده برای پوسته Bourne را اجرا می‌کند، در حالی که دستکاری رشته، آرایه و توابع مشابه زبان برنامه نویسی C را ارائه می‌دهد. همچنین از اسکریپت‌هایی که برای پوسته C نوشته شده‌اند پشتیبانی می‌کند. علاوه بر این، از بسیاری از انواع مختلف پوسته‌ها در لینوکس، از جمله پوسته C، سریع‌تر است.

نام مسیر کامل برای پوسته کورن /bin/ksh است. به طور پیش فرض، از دستور # برای کاربر root و $ برای کاربران غیر root استفاده می‌کند.

  1. پوسته زی (zsh)

Z Shell یا zsh یک پسوند پوسته sh با هزاران پیشرفت برای سفارشی‌سازی است. اگر پوسته‌ای مدرن می‌خواهید که تمام ویژگی‌های گفته شده،  بیشتر را داشته باشد، پوسته zsh همان چیزی است که به دنبال آن هستید.

برخی از ویژگی‌های قابل توجه پوسته z عبارتند از:

  • تولید نام فایل بر اساس شرایط داده شده
  • پشتیبانی از پلاگین ها و تم
  • فهرست توابع داخلی
  • تکمیل فرمان
  • و خیلی بیشتر…
  1. پوسته فیش(Fish )

پوسته ماهی یک پوسته کاربر پسند است که در سال 2005 ساخته شد. برخلاف رقبای خود، ماهی بر اساس پوسته Bourne یا پوسته C نیست.

برخی از ویژگی‌های قابل توجه پوسته fish عبارتند از:

  • پیشنهادات خودکار
  • دارای تنظیمات مبتنی بر وب است
  • از فناوری ترمینال 256 پشتیبانی می کند
  • اختصارات تکمیل جدول
  • Wait for command که منتظر فرآیندهای پس زمینه است
  • از متغیرها نیز می‌توان به عنوان دستور استفاده کرد

خرید سرور اختصاصی با امکان نصب انواع سیستم عامل‌ها و مجازی‌سازی به انتخاب مشتریان عزیز ارائه خواهد شد.
سرور اختصاصی سفارشی ایران کانفیگ دلخواه مشتری، همراه با نصب سیستم عامل و Raid رایگان و امکان ارائه پورت 10Gbps و 1Gbps

جمع بندی 

شل‌ها، قوی ترین ابزار موجود برای کاربران لینوکس هستند. بدون پوسته، غیرممکن است که شخص از ویژگی‌ها و عملکردهای ارائه شده توسط کرنل نصب شده بر روی سیستم خود استفاده کند.
در این مطلب ما فقط رایج ترین انواع پوسته‌های مورد استفاده در لینوکس را معرفی کردیم، پوسته‌های بسیار دیگری نیز وجود دارند که ارزش بررسی را دارند.
امیدواریم این آموزش توانسته باشد به شما در درک مفهوم  شِل و ویژگی‌های انواع مختلف آن در لینوکس کمک کند. اگر پرسش یا پیشنهادی دارید، در نظرات زیر با ما در میان بگذارید.