معرفی shell
کاربرانی که با سیستم عامل، سروکار دارند می دانند shell چیست. اما آشنایی با این اصطلاح برای مبتدیان جالب می باشد. به همین دلیل ما در این مطلب به معرفی shell می پردازیم.
آنچه در این مقاله می خوانید:
به طور کلی، به رابط دستوری بین کاربر و هسته سیستم عامل ، shell گفته می شود. shell یک قطعه نرم افزاری است که کمک می کند کاربران بتوانند به طور مستقیم به سیستم عامل، دسترسی یابند. اگر بخواهیم به زبان ساده تر نقش این قطعه نرم افزاری را توضیح دهیم باید اینگونه توضیح دهیم که تمام فعالیت های کاربران در تمام سیستم عامل ها چه ویندوز، چه لینوکس یا سایر سیستم عامل ها ابتدا به زبان دو دویی یا صفر و یک، تبدیل می شود.
سپس پس از برخورد با هسته سیستم عامل و حافظه، اجرا می شود. آن قطعه ای که دستورات کاربران را می گیرد و آن را به زبان سفر و یک تبدیل می کند و سپس، به هسته سیستم عامل منتقل می کند shell است.
تمام دستورات کامپیوتر، در ابتدا به زبان صفر و یک درمی آیند و کامپیوتر این سمبل را می شناسد. بنابراین، برای اینکه کاربران بتوانند با کامپیوتر، ارتباط برقرار کنند باید از این زبان، استفاده کنند. به همین دلیل، قطعه نرم افزاری shell طراحی شد تا بتواند این دستورات را به زبان صفر و یک، تبدیل کند.
با توجه به کاربرد شل، به راحتی می توان فهمید که بدون این قطعه، کار کردن با کامپیوتر، چقدر سخت است. چرا که کاربران، حتماً باید زبان صفر و یک یا سایر زبان های سطح پایین مثل اسمبلی و hex را بلد باشند. از این رو ما در ادامه مطلب به معرفی shell می پردازیم.
معرفی shell و ویژگی های آن
یکی از نکات مهم در مورد شل این است که این قطعه نرم افزاری در سیستم عامل ها مختلف است. مثلاً شل مورد استفاده در لینوکس یا شل ویندوز فرق دارد. به این صورت که شل مورد استفاده در سیستم عامل ویندوز، command.com یا cmd است. اما شل لینوکس، bash می باشد. این شل، عموماً در فایل bin ذخیره می شود.
البته غیر از این شل ها شل های دیگری هم وجود دارد که از جمله آن ها می توان به ksh و freebsd و csh اشاره کرد. این شل ها عموماً در سیستم عامل یونیکس unix system v مورد استفاده قرار می گیرند.
نکته قابل توجه دیگر در مورد شل ها این است که همه آن ها یا یک رابط خط دستوری یا یک رابط گرافیکی هستند. شل، تمام فعالیت های قابل اجرا در سیستم عامل ها را به صورت دستوری به سیستم عامل، القا می کند. البته سیستم عامل ویندوز به دلیل داشتن UI اینگونه نمی باشد. ولی در سیستم عامل هایی مثل لینوکس، برای ارتباط کاربر با سیستم عامل باید از این دستورات استفاده شود. به طور کلی، در سیستم هایی که رابط گرافیکی وجود ندارد از این دستورات استفاده می شود.
البته باید این نکته را یادآوری کنیم به دلیل اینکه شل، هسته دستورات نیست و یک رابط بین سیستم عامل و کاربر است این دستورات را به هسته، منتقل می کند. هسته سیستم عامل یا Kernel، وظیفه مدیریت سیستم را دارد. به همین دلیل، تمام دستورات قابل اجرا باید به این هسته منتقل شوند.
انواع shell مورد استفاده در سیستم عامل
هسته یا Kernel دارای لایه های مختلفی است. هرچه به داخل آن برویم به منابع بیشتری دست خواهیم یافت. این لایه ها را به نام shell یا پوسته می شناسند. این پوسته ها یا شل ها در هر سیستم عاملی، دارای نام و کاربردهای خاص خود هستند که از جمله آن ها می توان به موارد زیر اشاره کرد:
- (Bash (Bourne Again Shell: از این شل هم در سیستم عامل یونیکس هم در لینوکس، استفاده می شود. اما شل Bash مورد استفاده در سیستم عامل یونیکس، بر اساس Bourne Shell و در سیستم عامل لینوکس، User Account می باشد.
- Bsh: این شل یکی از قدیمی ترین شل های مورد استفاده در سیستم عامل ها است که به آن Bourne Shell می گویند.
- (Csh (C Shell: این نوع شل برای آن دسته از کاربرانی که مسلط به زبان برنامه نویسی c هستند بهترین گزینه می باشد. چرا که سینتکس کدهای آن تقریباً به مانند زبان c است. البته این شل، شباهت زیادی به tcsh هم دارد. این شباهت، کمک بزرگی به کاربرانی که از لینوکس استفاده می کنند می نماید. چرا که از شل csh نمی توان در سیستم عامل لینوکس، استفاده کرد. لذا افرادی که با شل csh آشنا هستند می توانند از شل tcsh بهره گرفته و از آن در سیستم عامل لینوکس، استفاده کنند.
- Tcsh: این شل بر اساس C shell یا csh می باشد. از طرف دیگر، شباهت زیادی به شل bash دارد و فقط برخی از جزئیات آن ها متفاوت می باشد. نکته قابل توجه در مورد این شل این است که ورژن رایگان شل Csh است.
- (Ksh (The korn Shell: این شل را به گونه ای طراحی کرده اند که دارای بهترین ویژگی های Bourne shell و C shell است.
- (Zsh (Z Shell: این شل، بعد از Ksh طراحی و تکمیل شد.
انواع shell
همانطور که اشاره نمودیم شل ها یک رابط بین سیستم عامل و کلاینت هستند. در برخی مواقع، این رابط، دستوری است اما در سیستم عامل های جدید به صورت گرافیکی می باشد. در حال حاضر، شل ها انواع مختلفی دارند که عبارتند از:
- شل مستقیم یا direct shell: همانطور که از نام این شل، مشخص است اتصال آن به صورت مستقیم می باشد. این نوع شل، نسبت به فایروال ها حساس است و برای باز کردن پورت نیاز به برنامه های امنیتی دارد. از دیگر ویژگی های شل مستقیم می توان به باز کردن راحت پورت های آن اشاره کرد.
- شل معکوس یا reverse shell: دسترسی به این شل به صورت معکوس، انجام می گیرد. بنابراین با این شل می توان، فایروال را دور زد.
ویژگی های شل خوب چیست؟
با توجه به اینکه، شل های متنوعی وجود دارد یک شل خوب باید قابلیت پشتیبانی از Netstat، Gcc، Lynx، telnet، dig، ftp و Finger را داشته باشد.
آشنایی با انواع shell با مجموعه پی بی ایکس شاپ
در صورت داشتن هرگونه سوالی در مورد shell و انواع آن می توانید با کارشناسان متخصص مجموعه معتبر پی بی ایکس شاپ تماس بگیرید.
دیدگاه شما درباره این مقاله چیست ؟