Shell چیست؟

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

و در واقع Shell یک قطعه نرم افزاریست که به کاربر اجازه دسترسی مستقیم به سیستم عامل را میدهد.

دستورات در کامپیوتر به صورت 0و1 شناخته می شوند، اما اگر ما بخواهیم برای ارتباط با کامپیوتر و اعلام دستورات به آن از کد 0و1 یا زبان اسمبلی استفاده کنیم بسیار دشوار خواهد بود. در نتیجه Shell ها به وجود آمده اند که با دریافت دستوراتی مشخص آن ها را برای کامپیوتر ترجمه نمایند.

Shell ها یا به صورت رابط خط دستور (Command-line Interface (CLI و یا به صورت رابط گرافیکی (Graphical User Interface (GUI می باشند.

در سیستم عامل ویندوز Shell مورد استفاده Command Prompt یا همان  CMD می باشد. و در سیستم عامل Linux ، انواع Shell های مختلفی به نام های Bash و CSH و CTSH و K Shell و …  وجود دارند که در مقاله ی انواع Shell به صورت مفصل به آن ها خواهیم پرداخت. همچنین سیستم عامل Unix ، (یونیکس) نیز از سیستم عامل هایی است که بر مینای دستورات Shell کار می کنند.

در مقاله های دیگر به دستورات یا کامندهای پرکاربرد لینوکس اشاره شده است که می توانید مشاهده نمایید.

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

Kernel یا هسته در واقع مرکز مدیریت یک سیستم عامل است که تمامی دستورات برای اجرا شدن از طریق این مرکز مدیریت صادر می شوند. تمامی اجزای سیستم عامل وابسته به این هسته است Kernel بصورت لایه بندی شده کار می کند و هر چقدر به درون این لایه بیشتر وارد شویم به منابع و دسترسی های بیشتری دسترسی پیدا خواهیم کرد اما نکته اینجاست که این لایه ها یا پوسته ها را ما به عنوان Shell یا پوسته می شناسیم. Shell ها در واقع رابط کاربری ما برای دستور دادن به کرنل سیستم عامل هستند و شما از طریق این رابط ها می توانید با سیستم عامل ارتباط برقرار کنید.