بش چیست؟
Bash (مخفف Bourne Again Shell) نسخهای رایگان و بهبود یافته از پوستهی Bourne است که به همراه سیستمعاملهای لینوکس و GNU توزیع میشود. این پوسته شبیه نسخه اصلی است اما ویژگیهای اضافی مانند ویرایش خط فرمان، تکمیل خودکار (autocomplete)، تاریخچه دستورات و قابلیتهای برنامهنویسی پیچیدهتر مانند آرایهها، توابع و حلقهها را نیز در بر دارد. Bash با الهام از پوستهی Korn و پوستهی C ساخته شده و برای تطابق با استاندارد IEEE POSIX طراحی شده است. اسکریپتهای نوشتهشده برای پوستهی Bourne (با نام sh) معمولاً بدون مشکل در Bash نیز اجرا میشوند و به دلیل همین سازگاری بالا، Bash به گزینهی اصلی بسیاری از مدیران سیستم و توسعهدهندگان تبدیل شده است.
Bash تحت مجوز عمومی GNU (GPL) منتشر میشود و برای اغلب نسخههای یونیکس و لینوکس در دسترس است. همچنین نسخههایی از آن برای MS-DOS و ویندوز نیز وجود دارد. نام Bash یک بازی کلامی با نام نویسندهی پوستهی Bourne، یعنی استفن بورن (Stephen Bourne) است. این پوسته یک «مجموعهی کاملتر» از نسخهی پیشین خود محسوب میشود و امکانات پیشرفتهتری را در اختیار کاربران حرفهای قرار میدهد.
شل (Shell) چیست؟
در رایانش، شل به برنامهای گفته میشود که امکان تعامل با اجزای سیستمعامل را فراهم میکند. شل مانند یک واسط بین کاربر و هستهی سیستمعامل عمل میکند. به طور کلی، شل دو نوع دارد:
- شل خط فرمان (CLI): مانند Bash، راهی مؤثر و سریع برای تعامل با سیستمعامل بدون نیاز به رابط گرافیکی است. کاربران حرفهای اغلب CLI را ترجیح میدهند زیرا سرعت بالاتری دارد و قابلیت اتوماسیون وظایف پیچیده را فراهم میسازد.
- شل رابط گرافیکی (GUI): مانند ویندوز و macOS، برای کاربران تازهکار مناسبتر است اما همچنان ابزارهایی برای شبیهسازی شل خط فرمان ارائه میدهد (مانند ترمینال).
Bash محبوبترین شل CLI برای سیستمعاملهای مبتنی بر یونیکس مانند لینوکس است و تقریباً بهصورت پیشفرض در اکثر توزیعهای لینوکسی وجود دارد.
Bash چه کاربردی دارد؟
Bash در زمینههای مختلفی کاربرد دارد، بهویژه در مواقعی که نیاز به پردازش دقیق و سریع دادهها یا فایلها وجود دارد. برخی از کاربردهای مهم آن عبارتاند از:
- مدیریت سیستمها توسط مدیران سیستم: بررسی تنظیمات، بهروزرسانی نرمافزار، نظارت و رفع مشکل، مانیتورینگ وضعیت سیستم، اجرای اسکریپتهای دورهای و تهیه نسخه پشتیبان.
- توسعه نرمافزار توسط برنامهنویسان: اتوماسیون وظایف مانند کامپایل کد، تست واحد، استقرار خودکار، ساخت نرمافزار و پاکسازی پوشههای موقتی.
- مهندسی شبکه: تست، پیکربندی و بهینهسازی عملکرد شبکه، بررسی پورتها، پینگ و اجرای اسکریپتهای مانیتورینگ شبکه.
- تحقیقات علمی و دادهکاوی: اجرای الگوریتمها، مدیریت سیستمهای محاسباتی، پردازش دستهای دادهها و استخراج اطلاعات از لاگها.
- کاربران پیشرفته و علاقهمندان: اجرای دستورات روزانه، شخصیسازی محیط ترمینال، اتوماسیون وظایف و نگهداری سیستم.
Bash هم بهصورت تعاملی (وارد کردن دستورات و مشاهده خروجی) و هم از طریق اسکریپتنویسی مورد استفاده قرار میگیرد. تقریباً هر وظیفهای را میتوان با یک اسکریپت Bash اتوماسیون کرد، از سادهترین کارها تا پیچیدهترین فرآیندها.
Bash چگونه کار میکند؟
در نگاه اول، Bash ممکن است شبیه یک سیستم دستور/پاسخ ساده بهنظر برسد. اما در واقع Bash یک پلتفرم برنامهنویسی تمامعیار است. کاربران میتوانند اسکریپتهایی بنویسند که ورودی بگیرند و خروجی تولید کنند، از دستورات شرطی استفاده کنند و فرآیندهای منطقی پیچیده را پیادهسازی کنند.
مثال: دستور ls
محتویات یک دایرکتوری را فهرست میکند. این دستور دارای پارامترهایی است که نحوه نمایش را تغییر میدهند:
آرگومان | توضیح |
---|---|
-l | نمایش فرمت کامل با مجوزها، مالک، حجم و زمان ساخت |
-a | نمایش همه فایلها از جمله فایلهای مخفی |
-s | نمایش حجم فایلها |
-h | نمایش حجم بهصورت خوانا (KB, MB, GB) |
-R | نمایش بازگشتی همه زیرشاخهها |
دستور ترکیبی:
ls -lashR | grep 'filename.txt'
فقط فایلهایی را نمایش میدهد که نام آنها شامل filename.txt
باشد. این روش به ویژه در پیدا کردن فایلها در ساختارهای پیچیده فایلسیستم بسیار مفید است.
انواع دستورات در Bash
- دستورات ساده: مانند
ls
،cd
،pwd
یاecho
- لولهها (Pipes): انتقال خروجی یک دستور به دستور بعدی با استفاده از
|
- لیستها (Lists): اجرای چندین دستور پشتسرهم با استفاده از
;
یا&&
- دستورات ترکیبی (Compound Commands): شامل حلقهها (for, while)، شرطها (if/else)، توابع و آرایهها برای برنامهنویسی اسکریپتی پیشرفته
ویژگیهای ویژه Bash
- ویرایش خط فرمان: با کلید فلش بالا میتوان به دستورات قبلی دسترسی داشت و آنها را ویرایش کرد.
- تاریخچه دستورات: دستورات قبلی ذخیره میشوند و قابل بازیابی، ویرایش و اجرای مجدد هستند.
- قابلیت اجرای دستورات بهصورت پسزمینه: با استفاده از
&
میتوان دستورات را در پسزمینه اجرا کرد. - تعریف و استفاده از متغیرها: برای ذخیره و استفاده مجدد از دادهها.
- پشتیبانی از اسکریپتهای پیچیده: شامل دریافت آرگومان، خواندن ورودی از کاربر، پردازش فایلها و مدیریت خطاها.
Bash یکی از ابزارهای بنیادی در مدیریت سیستمهای مدرن است. یادگیری آن ممکن است در ابتدا چالشبرانگیز باشد، اما پس از یادگیری، مهارتی ماندگار و ارزشمند خواهد بود. توانایی کنترل سیستم از طریق ترمینال یکی از مهارتهای کلیدی برای متخصصان IT است.
برای یادگیری Bash و شروع اسکریپتنویسی میتوانید از آموزشهای معتبر بهره بگیرید. برای مثال، آموزش ساخت یک اسکریپت Bash که در زمان اجرا آرگومان دریافت میکند، میتواند نقطه شروع خوبی باشد. منابع فارسی و انگلیسی متعددی وجود دارد که بهصورت رایگان قابل استفاده هستند.
📚 منبع: techtarget