در سیستم عامل یونیکس و سیستم عاملهای شبیه یونیکس مانند لینوکس، از برنامهی شل یا پوسته، به عنوان مفسر فرمان، استفاده میشود. شل، برنامهای است که، دستورات را، از طریق کیبرد از کاربر گرفته و برای اجرا، به سیستم عامل تحویل می میدهد. در ابتدا، این روش، تنها روش ارتباط کاربر با سیستم بود. بعدا، رابط گرافیکی کاربر، نیز به آن اضافه گردید.
شل، دارای قابلیت نوشتن اسکریپت برای اجرای مجموعهای از دستورات و برنامهها میباشد. در سیستم عامل لینوکس، چندین شل، برای انتخاب، وجود دارد. از شلهای لینوکس، میتوان به bash, ksh ,zsh ,sh و tcsh، اشاره نمود. در بیشتر توزیع های لینوکس بهصورت پیشفرض، شل bash، مورد استفاده قرار میگیرد.
ترمینال
شبیهساز ترمینال، یک پنجره در محیط گرافیکی میباشد که از طریق آن با شل، ارتباط برقرار میشود. انواع مختلف ترمینال، جهت استفاده وجود دارند که میتوان به kvt, Xterm ,gnome-terminal ,Konsole و eterm اشاره نمود. با توجه به نوع محیط گرافیکی که استفاده می کنیم، ترمینالهای پیشفرض نیز با هم متفاوت است. مثلا در محیط گرافیکی GNOME، از ترمینال gnome-terminal و در محیط گرافیکی KDE، از ترمینال konsol، به طور پیشفرض استفاده میشود. اما توجه داشته باشید که همهی ترمینالها یک کار را انجام میدهند و آن هم تعامل با پوستهی مورد نظر است و کارکرد همگی آنها یکی میباشد.
Shell Prompt
علامت $، علامتی است که توسط شل استفاده میشود و به آن command prompt یا نشانهی دستور در شل است. در بعضی از شلها، به جای اعلان $ از اعلان دیگری استفاده میشود. مثلا در c shell از اعلان % برای command prompt استفاده میگردد. هرگاه شل، در حال نمایش علامت command prompt باشد، به این معنی است که شل آمادهی دریافت دستورات است.
صفحات راهنمای شل لینوکس
برای دیدن نوع شل، مورد استفاده در ترمینال، کافیست محتوای متغیر SHELL$ را با دستور echo مشاهده نماییم.
1 2 3 4 5 |
kazemian@upgradeit:~$ echo $SHELL /bin/bash kazemian@upgradeit:~$ |
برای استفاده از مستندات راهنما، برای هر شل با تایپ دستور man و در ادامه نام شل، میتوانیم از صفحهی راهنمای آن استفاده نماییم. مثلا برای دیدن صفحهی راهنما در بارهی شل bash دستور man bash را تایپ میکنیم.
اجرای دستورات
پس از نوشتن دستورات در پوسته، با زدن کلید Enter، دستور اجرا میشود. وقتی که شما دستوری را تایپ میکنید، پوسته اولین کلمه را به عنوان دستور در نظر میگیرد. در اصل فرض بر این است که کلمات بعدی پارامترهای مربوط به آن دستور هستند. معیار جدا کردن کلمات در فرمان فاصله یا کلید Tab میباشد.
برای اجرای هر دستور نام آن دستور را تایپ کرده و کلید enter را فشار میدهیم. برای شروع، ما یک کلمهی نامفهوم را تایپ کرده و اجرا نمودیم. پیام شل این بود که این دستور پیدا نمیشود.
1 2 3 4 5 |
kazemian@upgradeit:~$ dsllksafs dsllksafs: command not found kazemian@upgradeit:~$ |
در ادامه دستور pwd را تایپ کرده و کلید enter را میزنیم.
1 2 3 4 5 |
kazemian@upgradeit:~$ pwd /home/kazemian kazemian@upgradeit:~$ |
دستور pwd دایرکتوری جاری که در آن قرار داریم را نشان میدهد.
انواع شل
برای انواع شل در لینوکس، آنها را میتوان به دو دسته تقسیم نمود: اول گروه Bourne Shell با نشانهی دستور $ و دوم C shell با نشانهی دستور %.
گروه Bourne shell :
- Bourne Shell
اولین شل در سیستم عامل یونیکس، توسط Stephen R. Bourne در دههی هفتاد میلادی، نوشته شد. این توزیع از لینوکس بهنام sh، شناخته میشود. مسیر این شل در bin/sh/ قرار دارد. - Bourne Again Shell
شل Bourne Again Shell به صورت شل پیشفرض در اغلب توزیعهای لینوکس نصب گردیده است. - Korn Shell
- Posix Shell
گروه C Shell :
روش نوشتاری، در این گروه شبیه زبان برنامهنویسی C میباشد. به همین دلیل بعضی از برنامهنویسان، تمایل دارند که با شل متعلق به این گروه، کار کنند.
- C shell
- TENEX/TOPS C Shell
اسکریپت نویسی در پوسته
یکی از قابلیتهای پوسته در لینوکس، قابلیت اجرای دستهای و نظاممند دستورها و برنامههای لینوکس، میباشد. به این قابلیت، اسکریپت نویسی در شل میگویند. در شل اسکریپت، چون زبانهای برنامهنویسی میتوان از حلقهها و دستورات شرطی، استفاده نمود.