رفتن به محتوای اصلی
دیدگاه کلود | ارائه‌کننده سرورهای ابری و اختصاصی
Bash چیست و چگونه محبوب‌ترین شل لینوکس کار می‌کند

Bash چیست و چگونه محبوب‌ترین شل لینوکس کار می‌کند

Bash شل پیش‌فرض لینوکس و یک زبان اسکریپت‌نویسی قدرتمند است که امکان مدیریت سیستم، خودکارسازی وظایف و اجرای دستورات را فراهم می‌کند. با قابلیت‌هایی مثل حلقه‌ها، شرط‌ها، متغیرها و تاریخچه دستورات، Bash ستون اصلی DevOps و مدیریت سرور است و روی لینوکس، macOS و WSL قابل اجراست.


در سیستم‌عامل‌های لینوکس و مبتنی بر یونیکس، ترمینال فقط یک ابزار ساده نیست؛ دروازه‌ای است به کنترل کامل سیستم، انجام کارهای قدرتمند و خودکارسازی هوشمند. در قلب این تجربه، Bash قرار دارد؛ مخفف Bourne Again Shell. Bash شل پیش‌فرض بسیاری از توزیع‌های لینوکس است، تا قبل از macOS Catalina شل پیش‌فرض مک بود و حتی روی ویندوز نیز از طریق WSL اجرا می‌شود.

چه یک کاربر تازه‌کار باشید که می‌خواهد مفاهیم خط فرمان را بفهمد، چه یک مهندس DevOps که پایپ‌لاین‌های production را مدیریت می‌کند، Bash یک ابزار غیرقابل‌جایگزین است. Bash هم یک رابط خط فرمان است، هم یک زبان اسکریپت‌نویسی، و هم بخش اصلی مدیریت سیستم.

در این مقاله به سؤال «Bash چیست؟» پاسخ می‌دهیم و با تاریخچه، قابلیت‌ها، کاربردها و جایگاه آن در دنیای مدرن آشنا می‌شویم. همچنین تفاوت Bash با سایر شل‌ها و استفاده عملی آن از کارهای ساده تا خودکارسازی CI/CD را بررسی می‌کنیم.


Bash چیست؟

Bash یک مفسر خط فرمان و زبان اسکریپت‌نویسی است که به‌عنوان جایگزین آزاد شل قدیمی یونیکس یعنی sh (Bourne Shell) توسعه داده شد. Bash در سال ۱۹۸۹ توسط Brian Fox برای پروژه GNU ساخته شد و امکان تعامل مستقیم با سیستم‌عامل از طریق دستورات متنی را فراهم می‌کند.

برخلاف رابط‌های گرافیکی که به کلیک و آیکن متکی هستند، Bash کاملاً مبتنی بر کیبورد است و اجازه می‌دهد کارها سریع، دقیق و قابل تکرار انجام شوند. اگرچه در ابتدا ممکن است سینتکس آن پیچیده به نظر برسد، اما با درک منطق Bash، کار با آن بسیار روان خواهد شد.

Bash در دو نقش اصلی استفاده می‌شود:

  • شل تعاملی: دستور می‌نویسید و بلافاصله خروجی می‌گیرید

  • زبان اسکریپت‌نویسی: نوشتن فایل‌های .sh برای خودکارسازی وظایف

برخی از قابلیت‌های کلیدی Bash:

  • تاریخچه دستورات و aliasها

  • حلقه‌ها (for، while) و شرط‌ها (if، case)

  • متغیرها و آرایه‌ها

  • محاسبات داخلی

  • مدیریت پردازش‌ها

  • ریدایرکت ورودی و خروجی


مقایسه Bash با سایر شل‌ها

لینوکس و یونیکس از شل‌های مختلفی پشتیبانی می‌کنند. Bash رایج‌ترین آن‌هاست، اما گزینه‌های دیگری نیز وجود دارند:

شلتوضیحاستفاده تعاملیاسکریپت‌نویسی
shشل اصلی یونیکسسازگاری قدیمیاسکریپت‌های POSIX ساده
bashنسخه پیشرفته shاستفاده عمومیاتوماسیون و اسکریپت‌های production
zshشل پیشرفته و قابل شخصی‌سازیکاربران حرفه‌ایاسکریپت‌های پیچیده
fishشل مدرن و کاربرپسندمبتدی‌هامحدود و غیر POSIX
dashشل سبک و سریعحداقلیاسکریپت‌های راه‌اندازی سیستم

آیا Bash همان ترمینال است؟

خیر. Bash و ترمینال یکی نیستند، اما با هم کار می‌کنند.

  • ترمینال: محیط متنی مثل GNOME Terminal یا Windows Terminal

  • شل: برنامه‌ای که داخل ترمینال اجرا می‌شود (مثل Bash)

به‌صورت ساده:

ترمینال صحنه است و Bash بازیگری که دستورات را اجرا می‌کند.


قابلیت‌های کلیدی Bash

۱. تاریخچه دستورات

history | grep apt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

۲. تکمیل خودکار (Tab Completion)

با فشردن کلید Tab مسیرها و دستورات کامل می‌شوند.

۳. متغیرها

2 خط
greeting="Hello"
echo "$greeting, world!"
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

۴. حلقه‌ها و شرط‌ها

3 خط
for file in *.log; do
  echo "Processing $file"
done
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

۵. اسکریپت‌نویسی

3 خط
#!/bin/bash
echo "System uptime:"
uptime
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

۶. مدیریت سیگنال‌ها

trap "echo 'Script terminated!'" SIGINT
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

چرا از Bash استفاده کنیم؟

  • قابل‌حمل: اجرا روی لینوکس، macOS، WSL

  • سریع و سبک

  • خودکارسازی: حذف کارهای تکراری

  • مناسب DevOps: پایپ‌لاین‌ها و deployment

  • خوانا و قابل نگهداری


نمونه کاربردهای سریع Bash

به‌روزرسانی سیستم

sudo apt update && sudo apt upgrade -y
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

بکاپ زمان‌بندی‌شده

tar -czvf /backup/home_$(date +%F).tar.gz /home/user
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

فشرده‌سازی لاگ‌ها

find /var/log -type f -name "*.log" -mtime +7 -exec gzip {} \;
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

دیپلوی از راه دور

rsync -avz /app user@remote:/var/www/app
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

اولین اسکریپت Bash شما

2 خط
#!/bin/bash
echo "Welcome to Bash!"
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
2 خط
chmod +x hello.sh
./hello.sh
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

برای امنیت بیشتر اسکریپت‌ها از set -euo pipefail استفاده کنید.


Bash در DevOps و اتوماسیون

Bash ستون فقرات بسیاری از فرآیندهای CI/CD است:

  • Build و تست

  • Deployment از طریق SSH یا Docker

  • مدیریت زیرساخت با ابزارهای Cloud

نمونه در GitHub Actions:

3 خط
- run: |
    chmod +x deploy.sh
    ./deploy.sh
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

خطاهای رایج Bash و راه‌حل‌ها

خطاعلتراه‌حل
command not foundدستور وجود نداردنصب یا بررسی PATH
permission deniedفایل اجرایی نیستchmod +x
bad interpreterline ending ویندوزیتبدیل به Unix
infinite loopخطای منطقیافزودن شرط خروج
unbound variableمتغیر تعریف نشدهمقدار پیش‌فرض

جمع‌بندی

Bash همچنان یکی از مهم‌ترین مهارت‌ها در دنیای لینوکس، مدیریت سرور و DevOps است. ترکیب قدرت، سادگی و قابلیت حمل، آن را به ابزاری ایده‌آل برای مدیریت سیستم، خودکارسازی و استقرار تبدیل کرده است.

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

این آموزش برای استفاده در وب‌سایت دیدگاه بازنویسی و بومی‌سازی شده است.