۸.۲۹.۱۳۸۷

شل چیست؟

قبل از شروع کار بگم که شل به معنای پوسته هست . و معمولا با علامت مخفف .sh نشون میدن .
شاید تا به حال شماکلمه شل (shell) رو زیاد شنیده باشید ولی نمیدونید که اصلا یعنی چی ؟؟؟
ببینید دوستان شما هر کاری توی ویندوز یا توی هر سیستم عاملی (لینوکس , سلاریس و ..) که انجام میدید به صورت زبان دو دویی در میاد یا همون صفر و یک در میاد بعد به هسته سیستم عامل میخوره بعد به حافظه و بعد اجرا میشه مثلا فرض کنید که میرید توی cmd و میزنید dir خوب معلوم هست که این دستور محتویات یک دایرکتوری رو نشون میشه در واقع این دستور ابتدا به صورت صفر و یک در میاد و بعد اجرا میشه .
اون چیزی که دستورات شما رو میگیره و تبدیل به صفر و یک میکنه و اون رو به سمت کرنل سیستم عامل میفرسته همون شل (shell) هست !!!
حالا فرض کنید که اصلا چیزی در سیستم های عامل به اسمه شل وجود نداره اونوقت می فهمید که چه قدر کار با کامپیوتر دردسر ساز و سخت بود . مثلا برای اجرای همین دستور dir باید مقادیر زیادی از صفر و یک رو میزدید یا زبان های سطح پایین مثله اسمبلی و hex رو بلد بودید !!! .
اما یه نکته خیلی مهمی که در شل ها حائز اهمیت هست فرق اون ها هست مثلا شلری که در ویندوز استفاده میشه فرق میکنه با شلره سیستم عامل لینوکس .
اون شلی که در ویندوز استفاده میشه command.com هست (همون cmd رو میگم) و شلی که در سیستم عامل لینوکس به کار گرفته میشه شله bash هست که در پوشه bin ذخیره شده . و البته شل های دیگری هم وجود دارن مثله ksh (freebsd) و csh که در سیستم عامل unix system v استفاده میشه .

یک شل خوب چه ویژگی هایی داره ؟؟؟
اگه نظره منو بخاین من شل لینوکس رو بیشتر خاطرشو میخام تا ویندوز (البته این نظر رو از لحاظ هکری میگم )
چون که شل لینوکس از کامپایلر و دیباگر و ... خیلی خوبی بهرمند هست و این چیزی هست که در ویندوز نیست مثلا کامپایلر gcc در لینوکس قابلیت خیلی زیادی داره و در ضمن در عین قدیمی بودن خیلی هم قوی هست !!
کلا یه شل خوب باید برنامه های زیر رو ساپورت کنه ::
Netstat برای دیدن سوکت ها .
Gcc برای کامپایل کردن زبان c
Lynx یکی از browser های خیلی معتبر و عالی
telnet برای ارتباط به پورت ها و ....
dig این یکی رو کمتر شلی داره یا این که پولیه !!!
ftp برای تبادل اطلاعات !
Finger این یکی هم اطلاعات رو از کاربر میگیره .

چگونه میتونیم یه شل لینوکسی در ویندوز داشته باشیم ؟؟؟
شما میتونید برای این کار از برنامه cygwin استفاده کنید . اون رو نصب کنید و بعد دستورات خودتون رو مثلا ls – la رو اجرا کنید !!! خیلی برنامه عجیبی هست و میتونید همه اون برنامه هایی که در لینوکس فقط قابل اجرا هستن رو اجرا کنید مثلا اون برنامه هایی که با پسونده .sh هستن . البته اگه یه نسخه کامل از این برنامه رو گیر اوردین یکی هم برای من بفرسیتید !!
البته بعضی از isp ها خیلی لازج بازی در میارن و یعضی وقت ها اکانت شل رو به مشتری هاشون میدن برای اطلاعات بیشتر به isp خودتون تماس بگیرید بعد ازشون بپرسید .
و بسیاری از راه های دیگه هم هست که این جا , جای توضیح اون ها نیست .

ایا باید با زبان شل ها رو بلد باشم ؟؟؟
در جواب باید بگم که یاد گرفتن زبان شل هایی مثله command.com یا bash از نون شب هم واجب تره !
البته شل bash به خاطر امکانات بیشتری که داره کار باهاش هم سخت تره و همچینین دستورات و فرامین بیشتری رو در خود جا داده .
بدیهی هست که دستورات شل ها مختلف هست مثلا در command.com از دستور ver برای دیدن مشخصات سیستم عامل بکار میره ولی همین دستور در لینوکس و در شلر اون که bash هست دستور uname –a استفاده میشه .
ولی در اکثر جا ها خیلی با هم فرق ندارن مثلا دستورات در لینوکس و سلاریس تقریبا یکی هست !!

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

منبع:hackfa

هیچ نظری موجود نیست:

http://up.iranblog.com/images/0z5dgraxwa4j49a5ts77.gif http://up.iranblog.com/images/gv83ah5giec9g8jkopmc.gif