بخش ۵ – معرفی انواع Shell‌ها: Bash، Zsh، Fish و مقایسه کامل

""

مقدمه

در بخش قبل یاد گرفتیم که Shell یک برنامه‌ی مفسر دستورات است؛ یعنی بین کاربر و هسته لینوکس قرار می‌گیرد و دستورها را اجرا می‌کند.
حالا می‌خواهیم به سراغ انواع شل‌ها برویم؛ در لینوکس چندین شل معروف وجود دارد که هر کدام ویژگی‌ها، مزایا و معایب خاص خودش را دارد.

در این آموزش با چهار شل مهم آشنا می‌شویم:

  • Bash
  • Zsh
  • Fish
  • Sh (و اشاره به چند شل فرعی دیگر برای تکمیل دید)

۱. Bash (Bourne Again Shell)

تاریخچه

  • ساخته شده در سال ۱۹۸۹ به‌عنوان جایگزین sh (Bourne Shell)
  • اکثر توزیع‌های لینوکس به صورت پیش‌فرض از Bash استفاده می‌کنند
  • از محبوب‌ترین شل‌های دنیای لینوکس و یونیکس است

ویژگی‌ها

  • سازگاری بالا با sh و اسکریپت‌های قدیمی
  • پشتیبانی از History (تاریخچه دستورات)
  • پشتیبانی از Tab Completion (تکمیل خودکار نام‌ها)
  • امکان استفاده از متغیرها، حلقه‌ها، شرط‌ها و توابع
  • پشتیبانی از اسکریپت‌نویسی قدرتمند

مثال‌های عملی

۱. مشاهده نسخه Bash:

bash --version

۲. تاریخچه دستورات:

history

۳. اجرای حلقه ساده:

for i in 1 2 3; do echo "عدد $i"; done

۲. Zsh (Z Shell)

تاریخچه

  • معرفی شده در سال ۱۹۹۰
  • ترکیبی از ویژگی‌های bash، ksh و tcsh
  • قابلیت سفارشی‌سازی بسیار بالا

ویژگی‌ها

  • تکمیل خودکار دستورات پیشرفته‌تر و هوشمندتر از Bash
  • هایلایت کردن گرامر دستورات (Syntax Highlighting)
  • موتور جستجوی قدرتمند در تاریخچه دستورات
  • مناسب برای کاربرانی که زیبایی و عملکرد سریع می‌خواهند
  • پشتیبانی از Plugins و Themes (مثل Oh My Zsh)

نصب Zsh (در Ubuntu/Debian):

sudo apt install zsh

نمونه ویژگی خاص – تکمیل خودکار دایرکتوری‌ها:

اگر حتی یک بخشی از مسیر را بنویسی، Zsh می‌تواند کامل کند:

cd /u/lo<TAB>
# به طور خودکار /usr/local را کامل می‌کند

استفاده از Oh My Zsh برای امکانات بیشتر:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

با این کار ظاهر ترمینال رنگی، آیکون‌دار و هوشمند می‌شود.


۳. Fish (Friendly Interactive Shell)

تاریخچه و هدف

  • ساخته شده در سال ۲۰۰۵
  • طراحی شده برای کاربرپسند بودن و بدون نیاز به پیکربندی پیچیده
  • حتی بدون تغییرات، ظاهری زیبا و امکانات جذاب دارد

ویژگی‌ها

  • Autocomplete بسیار هوشمند بر اساس تاریخچه و مسیرها
  • Syntax Highlighting پیش‌فرض
  • بدون نیاز به تنظیمات زیاد (Plug and Play)
  • پیشنهاد دستور بر اساس تاریخچه مانند جستجوی گوگل
  • اسکریپت‌نویسی ساده‌تر (ولی با تفاوت‌های نحوی نسبت به Bash)

نصب Fish (در Ubuntu/Debian):

sudo apt install fish

نمونه پیشنهادی Live در Fish

وقتی شروع به تایپ ssh کنی، اگر قبلاً جایی وصل شدی، Fish آدرس را حدس می‌زند و پیشنهاد می‌دهد.


۴. Sh (Bourne Shell)

تاریخچه

  • ساخته‌شده توسط Stephen Bourne در دهه ۷۰
  • شل پیش‌فرض سیستم‌عامل یونیکس اصلی
  • بسیار سبک و مناسب اجرای اسکریپت‌های ساده

ویژگی‌ها

  • بدون قابلیت‌های پیشرفته‌ی Bash یا Zsh
  • استفاده در اسکریپت‌نویسی سیستم برای بیشترین سازگاری
  • سرعت بالا

۵. شل‌های دیگری که باید بشناسی

  • Ksh (KornShell) → ترکیبی از sh و ویژگی‌های مدرن
  • Tcsh → نسخه بهبودیافته csh با امکانات تعاملی
  • Dash → بسیار سبک و سریع، مناسب بوت سیستم

۶. مقایسه کلی

ویژگیBashZshFishSh
پیش‌فرض اکثر لینوکس‌ها
قدرت اسکریپت‌نویسیعالیعالیمتوسط (سینتکس متفاوت)پایه‌ای
تکمیل خودکار پیشرفتهمتوسطعالیعالی
سفارشی‌سازی ظاهریمتوسطبسیار زیادخوب
مناسب مبتدی‌هاخوبخوبعالیضعیف
سازگاری با اسکریپت‌هاعالیعالینسبیعالی

۷. تمرین عملی

  1. تشخیص شل فعلی:
echo $SHELL
  1. نصب Zsh و تست آن:
sudo apt install zsh
zsh
  1. نصب Fish و تست:
sudo apt install fish
fish
  1. بازگشت به Bash:
bash
  1. تغییر شل پیش‌فرض:
chsh -s /bin/zsh

۸. تجربه واقعی

یادت باشه:

  • Bash بهترین گزینه برای شروع و یادگیری مفاهیم پایه لینوکس است.
  • Zsh برای کسانی که ظاهر ترمینال زیبا و ویژگی‌های هوشمند می‌خواهند عالی است.
  • Fish برای ساده‌ترین تجربه ممکن مناسب است.
  • Sh برای اجرای اسکریپت‌هایی که در همه سیستم‌ها کار کنند انتخاب خوبی است.

۹. جمع‌بندی

  • شل‌ها برنامه‌هایی هستند که بین کاربر و هسته سیستم قرار می‌گیرند و دستورات را اجرا می‌کنند.
  • Bash، Zsh و Fish سه شل مدرن و پرکاربرد در لینوکس هستند.
  • هر کدام مزایا و محدودیت‌های خود را دارند و می‌توانند بر اساس نیاز تغییر داده شوند.
  • می‌توان شل پیش‌فرض را با دستور chsh تغییر داد.
  • انتخاب شل بیشتر به سبک کاری، نیاز و سلیقه شخصی بستگی دارد.
محمد وب‌سایت

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *