نمایش نتایج: از شماره 1 تا 1 , از مجموع 1

موضوع: آموزش خط فرمان گنو - پوسته (shell) چیست؟

  1. #1
    عضو جدید shovaleye آواتار ها
    تاریخ عضویت
    Aug 2011
    نوشته ها
    35
    تشکر تشکر کرده 
    75
    تشکر تشکر شده 
    36
    تشکر شده در
    27 پست

    57 آموزش خط فرمان گنو - پوسته (shell) چیست؟





    ۱ - پوسته :
    به احتمال زیاد تا کنون بیشتر یا فقط با محیط های با رابط گرافیکی (GUI) کار کرده اید ، اما رابط کاربر دیگری که لینوکس و سایر سیستم عامل های شبه یونیکس یا برپایه ی یونیکس آن را دارند رابط خط فرمان یا Command Line Interface است که به اختصار CLI می نامند.
    قدرت حقیقی لینوکس و یونیکس در این رابط نهفته است و این رابط خط فرمان است که به مدت ۳۰ سال است که یونیکس را به عنوان قدرت مند ترین سیستم عامل مطرح کرد و اکنون این قدرت نهفته در تمام سیستم های شبیه یا برپایه ی یونیکس مانند لینوکس وجود دارد. زمانی می توان با یک سیستم عامل راحت تر کار کرد که امکان کار با خط فرمان در آن فراهم شده باشد و در لینوکس این مهم صورت گرفته.
    پوسته یا شل(shell) یک رابط است با ظاهری مانند آنچه در MS-DOS آن را دیده اید .



    البته در اصل پوسته (shell) یک رابط است میان انسان و هسته ی سیستم عامل که زبان انسان ها را به زبان ماشین تبدیل می کند تا هسته (Kernel) سیستم عامل آن را بفهمد . می تواندر یک تجسم غیر رسمی گفت که میزکار های ویندوز(windows) و مکینتاش (Macintosh OS) نیز یک پوسته ی گرافیکی هستند که رابط میان انسان و هسته ی این سیستم عامل هاست و زبان انسان را به زبان ماشین که برای هسته قابل فهم باشد ترجمه می کند.

    می توانید این رابطه را در شکل شماره ی (۱) ببینید.





    پوسته - هسته - سخت افزار

    شکل شماره ی ۱

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

    ۲ – انواع پوسته :

    در این بخش به معرفی چند نمونمه ی معروف پوسته های مختلف خواهیم پرداخت البته در لینوکس می توان از تمام این پوسته ها استفاده کرد و در اغلب توزیع های کامل تمام این پوسته ها یافت می شوند اما پوسته ی پیش فرض اغلب

    ( اغلب نه تمام لینوکس ها ) پوسته ی bash می باشد ،

    دلیل این انتخاب قدرت و به روز بودن این پوسته و علاوه بر این ها انتشار این پوسته بر اساس مجوز GNU/GPL می باشد .

    ما در این جا به ترتیب پوسته های Bourn shell و C shell و Korn shell و Bourn again shell و tch shell را مورد بررسی قرار خواهیم داد.

    ۱−۲ Bourne Shell یا sh

    در اصل این پوسته در ازمایشگاه های بل توسط استیون بورن ( Stiven Bourne) برای سیستم عامل AT&T UNIX نوشته شد البته در لینوکس از این پوسته چندان استفاده نمی شود و در سایر نسخه های یونیکس مانند FreeBSD نیز این پوسته با یک نسخه به نام POSIX جایگزین شده .

    POSIX از ویرایشگر خط فرمان ، تاریخچه ی خط فرمان (که نه در sh بود نه در سایرCLI ها مانند DOS) و همین طور اسامی مستعار یا aliase ها به طور پیش فرض پشتیبانی می کرد.

    ۲−۲ C shell یاCsh

    این پوسته که اغلب در BSD ها استفاده می شود توسط گروه توسعه دهندگان نرم افزار دانشگاه برکلی که از محدودیت های Bourne shell به ستوه آمده بودند ایجاد شد. دلیل نام گذاری این پوسته به C گرامر یا Syntax این پوسته است که به زبان برنامه نویسی C بسیار شباهت دارد و این موضوع خود باعث دشواری در نوشتن برنامه های پوسته یا Shell Programs می شود .

    (این برنامه ها درون خود پوسته اجرا می شوند برای اجرا حتما به پوسته یا شل مخصوص به خود احتیاج دارند در واقع پوسته این برنامه ها را تفسیر می کند.)

    در این پوسته سیستم کنترل فعالیت هایا Job Controling و تاریخچه ی خط فرمان به صورت پیشرفته و کامل تر وجود دارد . البته در حال حاضر در FreeBSD نسخه های پیشرفته Csh با tcsh جایگزین شده که tcsh را در قسمت های بعد مورد بررسی قرار داده ایم. البته در لینوکس می توان ار هر دوی این پوسته ها استفاده کرد.

    ۳−۲ Korn shell یا ksh یاpdksh

    شرکت AT&T پوسته ی ksh را در سال ۱۹۸۶ منتشر کرد ، این پوسته که توسط دیوید کورن (David Korn)نوشته شد ، پاسخی بود برای انتشار C shell .این پوسته مانند C shell از کنترل فعالیت (Job Controlling) ، تاریخچه ی خط فرمان (Command line History) و اسامی مستعار پشتیبانی می کرد و نسبت به Bourne shell بسیار کاربر پسند تر بود .در این نسخه برنامه نویسی نیز بسیار راحتر شده بود و همین طور ابزار های آن نیز بسیار بیشتر شده بودند.
    pdksh نیز یک Korn shell است با این تفاوت که یک نسخه ی Public domain می باشد که از pd ابتدای آن نیز می توان متوجه این موضوع شد.

    ۴−۲ Bourne Again shell یاbash

    بش یا Bourne again shell یک پوسته ی سازگار و شبیه (ونه برپایه ی ) sh یا Bourne shell است که توسط توسعه دهندگان بنیاد نرم افزار آزاد ( FSF ) توسعه داده شد .

    همان طور که قبلا هم اشاره کردیم bash پوسته ی پیش فرض اغلب لینوکس ها است. این پوسته شبیه به پوسته ی ksh است با ابزار ها و قابلیت های بیشتر . از جمله غابلیت های جدید این پوسته راهنمای درونی یا Built-in Help آن است همین طور ویرایش مستقیم خط فرمان یا Intuitive Command Line Editing و یا ویرایش تاریخچه ی خط فرمان و جستجو با کلید های جهت دار یا Arrow keys و یا متغییر های محیطی ( Environment Variables) بسیار زیاد آن .البته این پوسته در نسخه های تجاری یونیکس موجود نیست و دلیل آن هم مجوز بسیار عالی GNU/GPL است .

    ۵−۲ tcsh shell

    این پوسته یک پوسته ی پیشرفته بر اساس پوسته ی C shell است .کلمه ی t در ابتدای نام آن اول نام سیستم عامل TENEX است که بر روی DEC PDP-10 اجرا می شود. در این پوسته به C shell قابلیت های بیشتری اضافه شده مانند ویرایش تاریخچه به سبک bash و یا پرسش های قبل اعمال تغییرات ماند پرسش قبل از پاک کردن یک شاخه( Folder ).البته همان طور که قبلا اشاره کردم FreeBSD های پیشرفته از این پوسته به عنوان پوسته ی پیش فرض استفاده می کنند.

    ۳ – کدام پوسته :

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

    از آن جایی که کار با bash بسیار آسان است و مانند کار کردن برنامه نویسی برای آن نیز راحت تر است اغلب لینوکس کار ها این پوسته را می پسندند و بنابراین اغلب اسکریپت ها ی موجود در برنامه های نصب مربوط به لینوکس هم از بر اساس این پوسته نوشته می شوند ، بنابر این برای آنکه بتوانید از کار کردن با پوسته ی خط فرمان لذت ببرید و به راحتی از دستوراتی که در سایت ها و مستندات مختلف می بینید استفاده کنید بهتر است از bash استفاده کنید .

    البته دلیل دیگر برای استفتده از bash همانا مجوز آن یعنی GNU/GPL است کهبرای کاربران لینوکس قوت قلبیست که از پوسته ای که تحت مجوز بنیاد نرم افزار آزاد منتشر شده است استفاده کنند.
    البته در نهایت این تصمیم با شماست که از کدام پوسته استفاده کنید و ما فقط یک پیشنهاد به شما دادیم و البته تمام مطالب این سایت بر اساس پوسته ی bash ارائه شده است.
    لازم به ذکر است که برای تعویض پوسته در صورتی که پوسته در کامپیوتر شما نصب باشد کافیست نام پوسته را تایپ کنید مثلا برای رفتن به bash از csh کافیست تا در مقابل اعلان فرمان تایپ کنیدbash تا از این پس با پوسته ی bash کار کنید.

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

    اون شلی که در ویندوز استفاده میشه command.com هست (همون cmd رو میگم) و شلی که در سیستم عامل لینوکس به کار گرفته میشه شله bash هست که در پوشه bin ذخیره شده . و البته شل های دیگری هم وجود دارن مثله ksh (freebsd) و csh که در سیستم عامل unix system v استفاده میشه .

    یک شل خوب چه ویژگی هایی داره ؟؟؟

    اگه نظره منو بخاین من شل لینوکس رو بیشتر خاطرشو میخام تا ویندوز (البته این نظر رو از لحاظ هکری میگم )

    چون که شل لینوکس از کامپایلر و دیباگر و … خیلی خوبی بهرمند هست و این چیزی هست که در ویندوز نیست مثلا کامپایلر gcc در لینوکس قابلیت خیلی زیادی داره و در ضمن در عین قدیمی بودن خیلی هم قوی هست !!

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

    Netstat برای دیدن سوکت ها .

    Gcc برای کامپایل کردن زبان c

    Lynx یکی از browser های خیلی معتبر و عالی

    telnet برای ارتباط به پورت ها و ….

    dig این یکی رو کمتر شلی داره یا این که پولیه !!!

    ftp برای تبادل اطلاعات !

    Finger این یکی هم اطلاعات رو از کاربر میگیره .

    به نقل از سپیا بلاگ





  2. تعداد تشکر ها از shovaleye به دلیل پست مفید


  3. # ADS




     

اطلاعات موضوع

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

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. آموزش کامل Shell Programing
    توسط irhost.net در انجمن سایر لینوکس ها
    پاسخ ها: 3
    آخرين نوشته: December 25th, 2016, 12:35
  2. کتاب آموزشی Linux Command Line and Shell Scripting Bible, 2nd Edition
    توسط shafiee در انجمن مباحث و منابع آموزشی
    پاسخ ها: 2
    آخرين نوشته: August 19th, 2013, 12:07
  3. پوسته چیست؟(What's shell)
    توسط Sohan Roh در انجمن شبکه های لینوکسی
    پاسخ ها: 0
    آخرين نوشته: June 8th, 2013, 23:37
  4. کتاب اموزش shell scripting
    توسط alieblice در انجمن مباحث دیگر
    پاسخ ها: 0
    آخرين نوشته: September 24th, 2012, 23:01
  5. Secure Shell چیست؟
    توسط irlogo در انجمن مباحث و منابع آموزشی
    پاسخ ها: 1
    آخرين نوشته: October 18th, 2008, 22:45

مجوز های ارسال و ویرایش

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