سیستم عامل یونیکس به عنوان یک سیستم عامل text-mode (بر پایه ی متن) کار می کند و از آنجایی که لینوکس بسیاری از خصوصیات و ویژگی های این سیستم عامل از جمله text-mode بودن را نیز به ارث برده است، بنابراین برای کار کردن با لینوکس لازم است که با ابزارهای command-line (خط فرمان) آشنا باشید.
شل لینوکس چیست؟
بطور کلی برای اجرا شدن یک دستور در سیستم عامل ها ابتدا باید دستور مورد نظر به زبان صفر و یک تبدیل شود تا برای هسته ی سیستم عامل قابل درک باشد و پس از آن این دستور توسط هسته پردازش و در نهایت اجرا شود. پس بنابراین برای برقراری ارتباط ما با هسته ی سیستم عامل به یک واسط نیاز داریم تا دستوری را که توسط کاربر ایجاد شده است را دریافت و آنرا به زبانی قابل فهم برای هسته ترجمه کند.این واسط همان shell (پوسته) میباشد. به عبارت دقیق تر shell ها برنامه هایی هستند که دستورات متنی (text-based) قابل فهم برای بشر را دریافت و آنها را به زبان کرنل (هسته) ترجمه میکنند تا kernel بتواند آنها را تحلیل و پردازش کند .shell های مختلفی وجود دارند اما بصورت پیش فرض لینوکس ها از شلی به نام Bash استفاده می کنند . توجه کنید که هرکدام از انواع shell ها در باطن کار مشابهی انجام می دهند اما در ظاهر دستوراتی با شکل استفاده ی متفاوت را به کار می برند که در زیر به انوا ع آنها اشاره می شود :
(bash(The GNU Bourne Again Shell: بر مبنای Bourne Shell اولیه ی یونیکس هست.در لینوکس Bash معمول ترین شل برای user account ها می باشد.
bsh: ا Bourne Shell ای که در بالا گفته شد با نام bsh نیز شناخته می شود و اغلب در لینوکس استفاده نمی شود اگرچه bsh یک لینک نمادین برای bash می باشد.
tcsh : این شل بر مبنای C shell می باشد و در بعضی توزیع ها از محبوبیت خاصی برخوردار است اما هیچ کدام از توزیع های لینوکسی معروف بصورت پیش فرض از این استفاده نمی کنند. اگرچه از بسیاری جهات شبیه bash می باشد اما در برخی از جزيیات متفاوت است. به عنوان مثال طریقه ی assign کردن متغیرهای محیطی که در bash مورد استفاده قرار می گیرد با tcshمتفاوت است.
Csh ا(C Shell) : بطور معمول از c shell اولیه در لینوکس استفاده نمی شود ولی اگر کاربری با Csh آشنا باشد می تواند با tcsh که جایگزین مناسبی برای Csh است، کار کند.
Ksh ا(The Korn Shell) : برای بهره مند شدن از بهترین ویژگی ها و خصوصیات Bourne Shell و C shell طراحی شده است.
Zsh ا(Z Shell) : از ترکیب Shell اولیه و موارد دیگری که در حال اضافه شدن هستند، بعد از Ksh تکمیل شد.
تا اینجا با تعریف shell و انواع آن بصورت خلاصه آشنا شدید. سوالی که در اینجا مطرح می شود اینست که ما چگونه باید کدها و دستورات خود را در اختیار shell قرار دهیم تا آنها را برای هسته ی سیستم عامل ترجمه کند؟
جواب سوال : خط فرمان (Command-Line ) یا به عبارت بهتر ترمینال می باشد.شما با باز کردن ترمینال امکان تایپ کردن دستورات خود را بصورت متنی پیدا کرده و پس از زدن دکمه ی Enter، این دستورات به shell فرستاده می شود تا آنها را به زبان قابل فهم برای کرنل ترجمه کند و پس از انجام پردازش توسط هسته، جواب دستور را به عنوان خروجی برای ما نمایش می دهد.
برای اینکه بدانید لینوکسی که از آن استفاده می کنید از چه نوع shell هایی پشتیبانی می کند کافی است دستور زیر را در ترمینال سیستم خود وارد نمایید:
cat /etc/shells
دستور cat محتوای فایل shells در دایرکتوری etc/ ر ا نشان می دهد.
کارکردن با shell برای کاربرانی که قبلا از سیستم عامل های text-mode مثل یونیکس استفاده کرده اند کار بسیار ساده ای است،
اگر از لینوکس با محیط متنی استفاده می کنید با لاگین کردن به سیستم مستقیما وارد محیط Terminal می شوید و با وارد کردن command (دستور) مورد نظرمی توانید کار خود را با سیستم عامل شروع کنید.
چنانچه از لینوکس با محیط گرافیکی استفاده می کنید برای رفتن به محیط متنی و کارکردن با ترمینال آن باید بصورت Manual عملیات وارد شدن به
ترمینال را همان گونه که در تصویر زیر نمایش داده می شود اجرا نمایید، به عنوان نمونه در سیستم عامل Ubuntu میتوانید عبارت Terminal را در Dashجستجو کرده یا از کلیدهای ترکیبیCtrl+Alt+T استفاده نمایید.
بعد از بازشدن پنجره ی Terminal میتوانید دستور خود را بصورت کد در محیط ترمینال وارد کنید و منتظر دریافت پاسخ در همین محیط باشید .
دستورات قابل استفاده در محیط ترمینال لینوکس بسیار زیاد بوده ولی نکته ی قابل ذکر اینست که قبل از شروع کار با دستورات، لازم است تا با محیط ترمینال آشنایی کمی پیدا کرده باشید، در بخش های بعدی پرکاربردترین و مهمترین دستورات در این محیط را به شما آموزش خواهیم داد.