بش اسکریپت، فصل اول | کتاب bash2003

[ بخش یک از پنج ]

یک شروع کوتاه


نکته پیش از شروع

این پست یک روایت تاریخی دقیق نیست.
صرفاً یک داستان ساده‌ست برای اینکه بتونیم راحت‌تر بفهمیم شل، ترمینال و بش چی هستن — نه اینکه دقیقاً کی و چطوری وارد دنیای کامپیوتر شدن.

پس دنبال ترتیب زمانی نباش… دنبال فهم بهتر باش :)
بریم سراغ داستان.


bash2003 یک کتاب ساده
bash2003 یک کتاب ساده

درود، این کتاب مقدمه بسیار کوتاهی داره، در این حد که براتون از نام کتاب بگم، نامش رو گذاشتم bash2003 که خب عدد ۲۰۰۳ برمی‌گرده به تاریخ انتشار اولین نسخه از bash یعنی ۰۸/۰۶/۱۹۸۹ که جمع این اعداد به ۲۰۰۳ ختم میشه. [ یه جور ادای احترام به روزی که bash شروع شد. ]


کتاب ۱۰ فصل داره و از سطح ساده و بگینر شروع میشه.

روشی که برای نوشتن پست های کتاب استفاده میکنم. اینه که در هر پست یک موضوع رو کاملا ببندم.

و نگذارمش برای پست بعدی. مفاهیم اول گفته میشن بعد کد ها و سپس مثال و تمرین و ادامه ماجرا ...

هدف این کتاب یادگیری لینوکس از طریق یادگیری بش هست. ( چون فکر میکنم اینطوری پرکتیکال تره! ).

────── 🌀 معرفی bash، ترمینال و شل 🌀 ──────

شل چیست؟

درسته که توی عنوان این بخش نوشتم : معرفی bash، ترمینال و شل ولی برای این که بتونم این اول کاری خوب و مینیمال bash رو معرفی کنم بهتره که قبلش شل یا پوسته رو بشناسیم.

چرا میگم خوب و مینیمال؟
به این خاطر که تا زمانی که باهاش کار نکنیم و خیلی از مفاهیم رو براتون باز نکنم چطور میتونم بیام و یه معرفی کامل بدم؟ اصلا دلیل نوشتن این کتاب آنلاین همینه که بش رو به کتابخونه ذهنمون معرفی کنیم و بتونیم ازش استفاده کنیم و خلاصه باهاش برنامه بنویسیم و در نهایت لینوکس رو هم تا حدود خوبی درک کنیم و بفهمیم!


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

یه چیزی توی مایه های این لعنتی، اگر فیلمش رو ندیدید حتما ببینید! باحاله
یه چیزی توی مایه های این لعنتی، اگر فیلمش رو ندیدید حتما ببینید! باحاله

خلاصه بگم مستقیم داشتی با سخت افزار حرف میزدی.


ظهور سیستم عامل

بعد ها سیستم عامل ها اومدن یه مشت نرم افزار که به ما کمک میکردن تا بتونیم با سخت افزارمون غیر مستقیم صحبت کنیم.

یه جور واسطه بین ما و سخت افزار.

اما در هردوی این سناریو ها یه مشکل وجود داشت : صحبت با کامپیوتر ها هنوز هم سخت بود.

چون به هر حال، تصورشو بکن باز داری با یه نرم افزار و یه مشت صفر و یک صحبت میکنی، پس نیاز بود که یکم بیشتر به دنیای کامپیوتر ها نزدیک بشیم.

شاید خنده دار باشه ولی ایده ای که دانشمندان کامپیوتر داشتند به طرز عجیبی شبیه به این عکس بود :

یارو لباس شیر پوشیده رفته وسط گله شیرها
یارو لباس شیر پوشیده رفته وسط گله شیرها

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

و اینجوری شد که یه رابط جدید خلق شد، شل، یه برنامه که دستورات و حرفای ما رو میگیره و به سیستم عامل میگه که چطوری اجراشون کنه.

shell یا پوسته همون لباس ابر قهرمانی ای هست که باهاش میتونیم با سیستم عاملمون حرف بزنیم.
* فکر میکنم الان دلیل نامگذاری رو تا حدودی درک کرده باشید که چرا اسمش پوسته هست!
- البته این فقط یه داستانه برای درک بیشتر ولی تقریبا همینه!


خب شل ها میتونن گرافیکی باشن مثل دسکتاپ های که هممون داریم اما ما بیشتر با شل های متنی کار داریم مثل bash.

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

برو به فلان قسمت از سیستم

ظهور ترمینال

برگردیم به داستانمون، حالا که خیالمون راحت شده بود و تونسته بودیم یه برنامه برای صحبت با سیستم عامل بسازیم نیاز داشتیم تا یه سری سخت افزار تولید کنیم تا بتونیم به وسیله اونا با shell حرف بزنیم.

این سخت افزار ها ترمینال نام داشتند که اصولا یه کیبورد و یه مانیتور بودند که به کامپیوتر اصلی به وسیله یه مشت سیم و دم و دستگاه متصل بودند!


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

عکس از : ویکی پدیا
عکس از : ویکی پدیا

اما امروزه چی؟

خب الان همه ی ما یک PC یا لپتاپ داریم پس دیگه نیازی به یه ترمینال فیزیکی نداریم (چون هم کیبورد و هم مانیتور داره و هم کامپیوتره!) پس مجبور شدیم اون ترمینال فیزیکی و سخت افزاری رو تبدیل به یه برنامه کنیم چیزی که بهش میگیم شبیه ساز ترمینال یا Terminal Emulator این یه برنامه هست که دقیقا رفتار همون ترمینال های قدیمی رو تقلید میکنه به این شکل که چند تا کاربر میتونن همزمان از طریق ترمینال به سیستم و منابعش دسترسی داشته باشند و به عبارتی ازش استفاده کنن و از طرفی راه ارتباطیمون با شل و در نتیجه سیستم عامل و بازم در نتیجه سخت افزارمون یا همون کامپیوترمون هم حفظ شده!


خلاصه ماجرا :

چیزی که توی این بخش از فصل اول bash2003 میخواستم بهتون بگم اینه :

  • shell : یک رابط بین سیستم عامل و ما هستش. یه برنامه که دستورات ما رو میگیره و برای سیستم عامل ترجمه میکنه.

  • bash : یه نوع شل هست، البته از نوع متنیش و نه گرافیکی.

  • ترمینال : قدیما یه سخت افزار برای استفاده از shell بود چون کامپیوتر ها به شکل امروزی نبودن اما امروزه دیگه نیازی بهشون نیست ولی به دلیل این که باز نیاز داریم تا به shell های متنیمون مثل bash دسترسی داشته باشیم نرم افزار هایی برای emulate (یا همون تقلید کردن ) کار ترمینال ها ساختیم . که بهشون میگیم شبیه ساز ترمینال.

تمرین

هیچی، فقط سعی کنید چند لحظه به تصویر زیر نگاه کنید و سعی کنید یه بار توی ذهنتون داستان شل، بش و ترمینال رو مرور کنید.

داستان بسرا
داستان بسرا

سخن پایانی

امیدوارم که این داستان کوچولو کمک کرده باشه تا مفهوم bash، شل و ترمینال رو فهمیده باشید.
این پست تحت لایسنس CC-BY-SA هست دوستان راحت و آسوده استفاده کنید.

قسمت بعدی فردا ساعت ۱۳:۰۰


بخش بعدی