مقدمه‌ای بر Bash

Terminal یکی از اون چیزهاییه که وقتی برای اولین بار از ویندوز مهاجرت میکنی به لینوکس یا مک، حسابی هیجان‌انگیز به نظر میرسه. وقتی میبینی که هر مشکلی رو میتونی با چند تا دستور توی Terminal حل کنی و کارای باحالی مثل ادیت عکس رو بدون نیاز به هر نوع نرم‌افزار گرافیکی‌ای تنها با چند دستور انجام بدی حسابی هیجان زده میشی و پیش خودت میگی  Terminal عجب چیز باحالیه.

bash

اما چیزی که باید بدونیم اینه که ترمینال از خودش هیچ چیزی نداره. در واقع ترمینال صرفا یه محیط متنی  (Text-based) ایجاد میکنه تا Shell Program بتونه که دستورات لازم رو از کاربر بگیره و خروجی مناسب رو به کاربر نشون بده.

اجازه بدید یکم برگردیم به قبل. ظاهرا قدیمتر کامپیوترها ابزارهای خیلی باارزش و گرونی بودند که برای اتصال و استفاده ازشون باید از ابزاری به نام Termial استفاده میکردند. ترمینال یه سخت‌افزار بود که آدم‌ها از طریق اون به کامپیوترها وصل میشدند و ازشون استفاده میکردند (شما هم یاد ترمینال تو ماتریکس افتادید؟). نرم‌افزاری که ما این روزها به اسم ترمینال تو کامپیوترمون میشناسیم هدفش اینه که اون فضا رو برای ما شبیه‌سازی کنه.

خب گفتیم که ترمینال‌ یک محیط متنی ایجاد میکنه تا Shell Program بتونه توش ورودی بگیره و خروجی نشون بده. اما Shell Program چیه؟

Shell Programها ‌نرم‌افزارهایی هستند که کارشون اینه که از ما دستور بگیرند و اجرا کنند. shell خودش کار به جز چند کار محدود، کار خاصی انجام نمیده که تنها کارش اینه که نرم‌افزارهای دیگه رو اجرا کنه و خروجیشون رو به ما نشون بده.  shellهای مختلفی وجود داره که معروفترینشون bash است. به طور معمول وقتی که تو لینوکس یا مک ترمینال رو باز میکنید، ترمینال به طور پیشفرض bash رو اجرا میکنه و از این به بعد هرچیزی که تایپ کنید دستوری برای bash تلقی میشه.

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

گفتیم که bash برای پیدا کردن برنامه‌ای که ما دستور اجرا شدنش رو بهش دادیم تو دایرکتوری‌های پیش‌فرضی جست‌و‌جو میکنه. اما این دایرکتوری‌ها کدومند و کجا تنظیم شدند؟ این دایرکتوری ها تو متغیر PATH لیست شدند. برای اینکه لیست اینها رو ببینید میتونید این دستور رو اجرا کنید: echo $PATH . و برای اینکه بفهمید یک نرم‌افزار مثل ls تو کدوم دایرکتوری قرار گرفته میتونید این دستور رو اجرا کنید: type ls .

نرم‌افزارهای آزاد خیلی خیلی زیادی وجود داره که بتونیم با استفاده از bash اونها رو روی کامپیوترمون اجرا کنیم و کارهای معرکه‌ای باهاشون انجام بدیم. اکثر این نرم‌افزارها که عموما متن باز و آزاد هستند از طریق پکیج منجرها قابل دسترسی و دانلودند. پکیج منجر خودش یک نرم‌افزار متنیه که کار نصب باقی نرم‌افزارها رو برامون حسابی راحت میکنه. تقریبا تمام نسخه‌های لینوکس با یک یا چند پکیج‌منجر که از قبل رو سیستم‌عامل نصب شده عرضه میشن. برای مثلا  apt-get روی اوبونتو و  Yum روی CentOS . اما مک به طور پیشفرض پکیج‌منجر نداره و باید خودتون نصب کنید. برای مثال من روش نصب پکیج‌منجر homebrew رو اینجا توضیح دادم. 

وقتی رو کامپیوترتون پکیج‌منجر داشته باشید زندگی خیلی راحت میشه. حالا میتونید با یک دستور هر نرم‌افزاری که میخواید رو نصب کنید. پیکج‌منجر خودش اون نرم‌افزار و تمام dependencyهاش رو دانلود میکنه و براتون نصب میکنه. برای مثال من برای نصب wget که یک نرم‌افزار معرکه برای دانلوده تنها کافیه این دستور رو تو مک‌بوکم وارد کنم : brew install wget . و بعد دانلود و نصب شدنش رو تماشا کنم.

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

اگر علاقمندید راجب bash خیلی بیشتر بخونید،‌ این سایت به شدت توصیه میشه. 

2 پاسخ به “مقدمه‌ای بر Bash”

  1. مهدی گفت:

    قلمت خوب و صمیمانه است ، آفرین

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

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

android application Google I/O HomeBrew ImageMagick Material Design mobile PogressBar RecyclerView splash TEDxKish ux آموزش اندروید الوین تافلر اندروید اپلیکیشن برنامه نویسی برنامه نویسی اندروید برنامه‌نویسی برنامه‌نویسی اندروید تداکس کیش تعمیر تغییر سایز عکس با ترمینال خلاصه کتاب دانش داده دانشگاه دانشگاه ایده‌آل دزد دیتا ساینس رشته مهندسی کامپیوتر ریکامندرسیستم سیستم‌های توصیه‌گر فری‌لنس لپتاپ متریال دیزاین معرفی کتاب موج سوم نوار پیشرفت همایش هوش مصنوعی ُجزیره کیش کار کسب و کار یادگیری عمیق یادگیری ماشین