shell در لینوکس چیست؟ آشنایی با فرمت محیط خط فرمان و انواع پوسته در لینوکس

shell در لینوکس چیست؟ آشنایی با فرمت محیط خط فرمان و انواع پوسته در لینوکس

از طریق shell، بسیاری از کارها در زمان کمتر و با دقت بیشتری نسبت به حالت گرافیکی قابل انجام است.
در ضمن انجام بعضی از کارها فقط با shell امکان‌پذیر است چون برنامه آن برای حالت گرافیکی طراحی نشده است.
بشدت یادگیری shell در لینوکس پیشنهاد می شود چون بسیاری از کارها را آسان و خودکار می‌کند.
اگر آشنایی ندارید، نگران نباشید، در این آموزش، با یک دوست واقعی یعنی shell در لینوکس آشنا می‌شوید.

shell در لینوکس چیست

معادل shell در لینوکس، Command Line Interface در ویندوز است.
در زبان فارسی، shell به معنای پوسته و Command Line Interface به معنای رابط خط فرمان است.

دستورات بوسیله صفحه کلید در ترمینال تایپ و با زدن دکمه Enter کیبورد، توسط shell دریافت و تفسیر می‌شود.shell دستور را در صورتی که معتبر باشد به گونه ای تبدیل می‌کند که برای کرنل قابل فهم است و سپس توسط کرنل اجرا می‌شود.
از آنجایی که کرنل نرم افزار است دستور دریافتی را برای سخت افزار که عمدتا CPU هست ارسال و خروجی مجدد به کرنل ارسال می شود. کرنل نیز برای shell ارسال  می کند و شما نتیجه را در مشاهده می کنید.

linux-utilities-shell-kernel-hardware
پیشنهاد می شود آموزش terminal در لینوکس را جهت آشنایی کامل با ترمینال مشاهده کنید.
انتخاب shell به شما این اختیار را نمی دهد که termianl را هم اننتخاب کنید چون ۲ موضوع متفاوت هستند.

تاریخچه shell در لینوکس

پوسته اصلی یونیکس در اواسط دهه 1970 توسط Stephen R. Bourne هنگامی نوشته شد که در AT & T آزمایشگاه های بل در نیوجرسی بود.
پوسته Bourne اولین پوسته سیستم‌های unix بود بنابراین از آن با عنوان “the shell” نام برده می شود.
پوسته Bourne معمولا در مسیر bin/sh/ در توزیع‌های مختلف unix و linux نصب می‌شود.
این پوسته در توزیع‌‌های مختلف یونیکس و لینوکس استفاده می‌شود بنابراین برای نوشتن اسکریپت‌ها انتخاب می‌شود.

انواع shell در لینوکس و رابط های خط فرمان در ویندوز

دو دسته اصلی برای shell ها در لینوکس وجود دارد:
Bourne : در خط فرمان کاراکتر $ برای کاربر غیر root و کاراکتر # برای کاربر root نمایش داده می‌شود.
C : 
در خط فرمان کاراکتر ٪ برای کاربر غیر root و کاراکتر # برای کاربر root نمایش داده می‌شود.

پوسته‌های داخل دسته Bourne 

Bourne shell (sh)
Korn shell (ksh)
Bourne Again shell (bash)
POSIX shell (sh)

پوسته‌های داخل دسته C

C shell (csh)
TENEX/TOPS C shell (tcsh)

bash پوسته پیش فرض در اکثر توزیع‌های لینوکس و cmd نیز بعنوان رابط خط فرمان پیش فرض در ویندوز می‌باشد.
در این دوره آموزشی از shell یا پوسته‌ي bash (Bourne Again Shell) جهت آموزش استفاده شده است.
در ترمینال لینوکس، امکان استفاده از shell‌ها یا پوسته‌های متفاوت وجود دارد.
برای ویندوز می توان از پوسته های PowerShell , pwsh cmd ,yori ,4dos ,command.com نام برد.

دسترسی به shell در لینوکس

در مواردی که لینوکس بدون GUI (Graphical user interface) نصب می‌شود، سیستم عامل با خط فرمان در دسترس است.
در محیط های دسکتاپی مثل gnome یا kde، روش های مختلفی جهت بازکردن ترمینال و دسترسی به shell وجود دارد.
در نظر داشته باشید این روش برای همه توزیع های لینوکس نیست و ممکن است برای بعضی از توزیع ها کار نکند.

استفاده از کلیدهای میانبر Ctrl+Alt+T 

Ctrl+Alt+T-open terminal in linux and access shellاستفاده از کلیدهای میانبرWin+T 
Win+T-open-terminal-in-linux-and-acess-shell

تعریف میانبر در تنظیمات صفحه‌کلید سیستم عامل
set shortcut for terminal and shell access in linuxپیدا کردن بین برنامه‌های لینوکسی
access terminal and shell from application menu in linuxجستجو در لیست برنامه‌های نصب شده
access terminal and shell linux with search applicationsراست کلیک بر روی دسکتاپ

access linux terminal and shell with right click

فرمت محیط خط فرمان یا command line در لینوکس

در اکثر توزیع های linux، فرمت محیط خط فرمان بصورت زیر هست:

prompt string یا PS 

1- منظور از username نام کاربری است که فرد با آن وارد سیستم عامل شده است

2- در اینجا @ یک تفکیک کننده است که نام کاربری را از نام میزبان جدا می کند.

3- hostname نامی است که به کامپیوتر داده شده است و در شبکه نیز با این نام شناخته می شود.
هدف اصلی آن شناسایی منحصر به فرد کامپیوتر در شبکه است.

4- current_directory نیز نام فولدری است که در حال حاضر در آن قرار دارید.

موارد ۱، ۲ و۳ در کنار هم بعنوان متغیر محیطی PS۱ شناخته می شود که مخفف prompt string می‌ باشد.
از این متغیر برای سفارشی کردن command prompt یا خط فرمان استفاده می‌شود.
میتوان مقدار PS1 را تغییر داد یا اصلا از آن استفاده نکرد بنابراین اختیاری است.

معنای # و $ 

5- چنانچه $ نمایش داده شود یعنی کاربری که وارد سیستم شده است root نیست.
چنانچه # نمایش داده شود یعنی کاربری که وارد سیستم شده است root می باشد.
گزینه 5 را نمی توان تغییر داد که نمایش داده نشود بنابراین اجباری است.

command

6-  اولین قسمتی است که می‌توانید در آن نام دستور را بعد از علامت $ یا # وارد ‌کنید.
در زبان انگلیسی به این بخش command یا دستور گفته می شود و دستورات در linux به زبان انگلیسی هستند.
لینوکس case sensitive هست بنابراین کوچک و بزرگی حروف در دستورات مهم است.
دستورات لینوکس بصورت استاندارد همگی با حروف کوچک هستند. cd دستور معتبری است ولی Cd یا CD دستور نامعتبر است.

option یا argument

7- معمولا همه دستورات لینوکس گزینه‌هایی دارند که برای استفاده از قابلیت‌های آن دستور بکار می‌روند.
در زبان انگلیسی به این بخش command line arguments گفته می‌شود که با فاصله از command جدا می‌شود.
ابتدای هر argument یا option کاراکتر قرار دارد.
می توانید ابتدای هر option یک – بدون فاصله قرار دهید و option ها را با فاصله از هم جدا کنید مثل دستور ls -a -l -h
می توانید یک – استفاده کرده و سه option بعدی را پشت سر هم استفاده کنید مثل دستور ls -alh
بعضی از option ها یک یا چند هستند که با شروع می‌شوند مثل ls –file-type یا ls –hide
این بخش اختیاری است و گاهی همان دستور خالی، ما را به هدفی که از اجرای دستور داریم می رساند.

path

8- نام یا مسیر دسترسی به فایل یا فولدری است که قصد دارید عملیاتی را بر روی آن انجام دهید.
این بخش نیز با توجه به هدفی که اجرای دستور داریم اختیاری است و در صورت نیاز استفاده می شود.

مثال ۱ برای shell در لینوکس

نمونه کاربردی فرمت فوق بصورت زیر می باشد :

print current woring directory linuxدر مثال بالا، کاربر root در فولدر home خودش قرار دارد.در لینوکس فولدر home کاربر بصورت ~ نمایش داده می‌شود.
چون کاربر وارد شده root است قبل از دستور علامت # نمایش داده شده است.
دستور ls بهمراه بعضی از گزینه های دستور ls یعنی lah اجرا شده است.
نام یا مسیر فایل یا فولدر استفاده نشده است بنابراین فولدر فعلی یعنی ~ در نظر گرفته می‌شود.

مثال ۲ برای shell در لینوکس

نمونه دیگر بصورت زیر می باشد:

print current woring directory linux pwdدر مثال بالا، کاربر saman در فولدر home/saman/  کامپیوتر ubuntu قرار دارد.
از آنجایی که کاربر غیر root است بعد از PS1 علامت $ نمایش داده شده است.
دستور pwd برای نمایش مسیر مطلق یا مسیر کامل فولدری استفاده می شود که در حال حاضر در آن هستید.

ویژگی Tab Completion در لینوکس

bash بعنوان پوسته در لینوکس قابلیت خاصی را دارد که در رابط خط فرمان cmd سیستم عامل ویندوز وجود ندارد.
زمانی که تعدادی از حروف یک دستور را وارد می کنید چنانچه کلید TAB را در صفحه کلید بزنید و دستور دیگری با آن حروف از قبل وجود نداشته باشد، سایر حروف دستور بصورت خودکار تکمیل می شود.
چنانچه دستورات دیگری با همان حروفی که وارد کرده اید موجود باشند،‌ آنها را بصورت لیست نمایش می دهد که می توانید ادامه حروف را وارد کنید تا دستور مدنظر تکمیل شود.

بطور مثال می توانید ۲ حرف pw را وارد و سپس TAB را بزنید که دستور pwd را نمایش خواهد داد.
در  تصویر زیر برای حروف apt، سایر دستورات که با apt شروع می شود را نیز نمایش می دهد.
استفاده از TAB برای فایل ها و فولدرها نیز صدق می کند.
دستور ls -lah برای لیست کردن فایلهایی است که با  bash. شروع و در فولدر فعلی وجود دارند.
tab-completion-shell-linux

ویژگی TAB در CMD ویندوز برای دستورات قابل استفاده نیست ولی فایلها و فولدرها را تشخیص می‌دهد.
ویژگی TAB در PowerShell ویندوز برای دستورات و فایلها و فولدرها قابل استفاده است.

سخن پایانی

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


5/5 - (2 امتیاز)
برچسب‌ها: , , , , , , , , , ,
درباره نویسنده
ادمین
تجربه ۱۰ ساله در زمینه هاستینگ دارد و به صاحبان وب‌سایت‌ها کمک می‌کند از سرویس هاست با کیفیت برای موفقیت کسب‌و‌کار خود استفاده کنند. دلیل عمده نارضایتی مشتری نبود تعامل پشتیبان هاست با صاحبان وب‌سایت‌ها است. روش ایران ادمین ارائه مشاوره در خصوص انتخاب سرویس هاست مناسب و کمک به بهینه‌سازی وب سایت‌شان است.
اشتراک
اطلاع از
guest

0 نظرات
قدیمی ترین
جدیدترین بیشترین آرا
بازخورد بین خطی
مشاهده همه نظرات
0
نظرت درباره این نوشته چیه ؟x