انجمن کاربران لینوکس ایران - تکنوتاکس سابق

نسخه ي کامل: linux shells
شما در حال مشاهده نسخه ي متني اين صفحه هستيد. مشاهده نسخه کامل تر با قالب بندي صحيح
LINUX
SHELLS

محمد پیری



کامپیوترها زبان صفرها و یک ها ، زبان باینری (binary) را می¬فهمند . که خواندن و نوشتن آن برای انسان دشوار است . در سیستم¬ عامل¬ها برنامه ای به نام پوسته (shell) وجود دارد که دستورالعمل¬های ما را ( اغلب به زبان انگلیسی ) می¬گیرد و اگر دستورالعمل صحیح باشد آن را به هسته (kernel) انتقال می¬دهد . shell برنامه¬ی کابر است ، یا محیط آن برای تعامل با کاربر ارائه شده است . shell یک مفسر زبان دستور است که دستورهای خوانده شده از دستگاه ورودی (keyboard) یا از یک فایل را اجرا می¬کند . shell قسمتی از هسته¬ی سیستم نیست ، بلکه از هسته جهت اجرای برنامه¬ها استفاده می¬کند . پوسته¬ی پیش فرض در اکثر سیستم¬ها ، پوسته¬ی bash می¬باشد .

Shellهای متعددی در linux در دسترس هستند ، از قبیل :

BASH ( Bourne-Again SHell ) Brian Fox and Chet Ramey Free Software Foundation Most common shell in Linux. It's Freeware shell.
CSH (C SHell) Bill Joy University of California (For BSD) The C shell's syntax and usage are very similar to
the C programming language.
KSH (Korn SHell) David Korn AT & T Bell Labs --
TCSH See the man page.
Type $ man tcsh -- TCSH is an enhanced but completely compatible version of the Berkeley UNIX C shell (CSH).

برای یافتن تمام پوسته¬های دردسترس در سیستم خود دستور زیر را اجرا می¬کنیم :
$ cat /etc/shells
برای یافتن پوسته¬ی کنونی سیستم خود دستور زیر را اجرا می¬کنیم :
$ echo $SHELL
برای تغییر موقت پوسته به پوسته¬ی دیگر , برای مثال پوسته¬ی sh ، دستور زیر را اجرا می¬کنیم :
$ /bin/sh
و همین طور می¬توانیم به راحتی به حالت قبل برگردانیم :
$ /bin/bash
برای تغییر دائمی پوسته (مثلا به پوسته¬ی sh) دستور زیر را اجرا می¬کنیم :
$ chsh -s /bin/sh
تمام پوسته¬ها کار یکسانی انجام می¬دهند اما هرکدام گرامر دستوری متفاوتی را می¬فهمند و کارکردهای متفاوتی ارائه می¬دهند .

13 نوع پوسته :
Sh : پوسته¬ی bourne یا sh ، پوسته¬ی پیش فرض unix نسخه¬ی 7 بود و جایگزین پوسته¬ی Thompson شد . این پوسته به عنوان یکی از پوسته¬های پیش فرض معروف باقی مانده است . برنامه¬ی دودویی این پوسته در اکثر سیستم¬های unix در مسیر /bin/sh قرار دارد

ash : پوسته¬ی Almquist ( معمولا با عنوان¬های A shell یا ash شناخته می¬شود ) . این پوسته سریع ، کوچک و ؟سازگار است و طراحی شد تا در توزیع¬های بعدی BSD جایگزین پوسته¬ی sh شود . در اصل ویژگی ویرایش خطی و دستوری را نداشت چون Almquist احساس کرد که این¬ها باید به terminal driver منتقل شوند . نسخه¬های کنونی modeهای emacs و vi را دارند .

dash : پوسته¬ی Debian Almquist یک پوسته¬ی posix-compliant است . خیلی از bash کوچکتر است . فضای حافظه¬ی کمی نیاز دارد اما همچنین ویژگی¬های کمتری هم دارد .
dash مستقیما یکی از نسل¬های نسخه¬ی NetBSD پوسته¬ی ash است . dash سریع¬تر از bash ، scriptها را اجرا می¬کند و به کتابخانه¬های کمتری وابسته است . It is believed to be more reliable in case of upgrade problems or disk failures.

bash : یک پوسته¬ی unix است که برای پروژه GNU نوشته شده است . bash مخفف Bourne-again shell است . bash پوسته¬ی پیش فرض بسیاری از سیستم¬های linux , همچنین mac os x می¬باشد و می¬تواند روی بسیاری از سیستم عامل¬های unix-like اجرا شود .

fish : این اسم مخفف friendly interactive shell می¬باشد . این پوسته روی استفاده¬ی تعاملی و متقابل و آسان بودن کار با برنامه تمرکز می¬کند . هدف از طراحی fish این است که کاربر یک سری ویژگی¬های قدرتمند جهت فهمیدن ، به یاد آوردن و استفاده¬ی آسان از برنامه ، در اختیار داشته باشد .

ksh : پوسته¬ی korn (korn shell) با نسل قبل خود ، پوسته¬ی sh سازگار است و همچنین خیلی از ویژگی¬های پوسته¬ی C را دارد . مزیت اصلی ksh نسبت به پوسته¬های قبل ، استفاده¬ی آن به عنوان زبان برنامه¬نویسی می¬باشد .
csh : پوسته¬ی C در اصل از پوسته¬ی Thompson ، که نسل قبل از پوسته¬ی sh است ، گرفته شده است . گرامر آن بعد آمدن زبان برنامه¬نویسی c ، شکل گرفت . این پوسته ویژگی¬های پیشرفته-تری نسبت به پوسته¬ی sh دارد . این پوسته در اصل امروزه به طور گسترده¬ای استفاده نمی¬شود و توسط پوسته¬های دیگری مثل tcsh ، که بر مبنای csh است ، جایگزین شده است .

tcsh : این پوسته بر مبنای csh و سازگار با آن پدید آمده است . در اصل همان csh است به همراه ویژگی¬هایی مثل filename completion, command-line editing و تعدادی کمی ویژگی¬های دیگر .

es : پوسته¬ی es یک مفسر خط فرمان است که از یک scripting language استفاده می¬کند . این پوسته قصد دارد که یک زبان برنامه نویسی کاربردی کامل ارائه دهد .
rc : rc مفسر خط فرمان برای unix نسخه¬ی 10 ، plan9 و سیستم عامل Inferno می¬باشد . این پوسته شبیه پوسته¬ی sh است اما تا حدی ساده¬تر است .

scsh : Scsh is a POSIX API layered on top of the Scheme programming language (currently only a Scheme 48 implementation exists, but others are planned) in a manner to make the most of scheme’s capability for scripting. It is limited to 32-bit platforms.

sash : Stand-alone shell برای بازیابی حالت¬های خاص خرابی سیستم استفاده می¬شود . دستورهای sash تمام کتابخانه¬هایش به صورت ثابت وصل شده¬اند ، برخلاف اکثر پوسته¬های دیگر ، دستورهای استاندارد unix ، بر کتابخانه¬های خارجی مبتنی نیستند .

zsh : پوسته¬ی z ، یک پوسته¬ی unix است که می¬تواند به عنوان یک پوسته¬ی interactive login و هم به عنوان یک مفسر فرمان قدرتمند برای shell scripting استفاده شود . این پوسته می¬تواند گسترش یافته¬ی پوسته¬ی sh ، با یک سری پیشرفت¬های بزرگ شامل تعدادی از ویژگی-های بسیار مفید پوسته¬های bash, ksh, tcsh تصور شود .