shell در لینوکس چیست؟ آشنایی با فرمت محیط خط فرمان و انواع پوسته در لینوکس
از طریق shell، بسیاری از کارها در زمان کمتر و با دقت بیشتری نسبت به حالت گرافیکی قابل انجام است.
در ضمن انجام بعضی از کارها فقط با shell امکانپذیر است چون برنامه آن برای حالت گرافیکی طراحی نشده است.
بشدت یادگیری shell در لینوکس پیشنهاد می شود چون بسیاری از کارها را آسان و خودکار میکند.
اگر آشنایی ندارید، نگران نباشید، در این آموزش، با یک دوست واقعی یعنی shell در لینوکس آشنا میشوید.
shell در لینوکس چیست
معادل shell در لینوکس، Command Line Interface در ویندوز است.
در زبان فارسی، shell به معنای پوسته و Command Line Interface به معنای رابط خط فرمان است.
دستورات بوسیله صفحه کلید در ترمینال تایپ و با زدن دکمه Enter کیبورد، توسط shell دریافت و تفسیر میشود.shell دستور را در صورتی که معتبر باشد به گونه ای تبدیل میکند که برای کرنل قابل فهم است و سپس توسط کرنل اجرا میشود.
از آنجایی که کرنل نرم افزار است دستور دریافتی را برای سخت افزار که عمدتا CPU هست ارسال و خروجی مجدد به کرنل ارسال می شود. کرنل نیز برای shell ارسال می کند و شما نتیجه را در مشاهده می کنید.
پیشنهاد می شود آموزش 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
استفاده از کلیدهای میانبرWin+T
تعریف میانبر در تنظیمات صفحهکلید سیستم عامل
پیدا کردن بین برنامههای لینوکسی
جستجو در لیست برنامههای نصب شده
راست کلیک بر روی دسکتاپ
فرمت محیط خط فرمان یا command line در لینوکس
در اکثر توزیع های linux، فرمت محیط خط فرمان بصورت زیر هست:
1 |
username@hostname:current_directory [$ or #] [command] -[option] [filename] |
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 در لینوکس
نمونه کاربردی فرمت فوق بصورت زیر می باشد :
در مثال بالا، کاربر root در فولدر home خودش قرار دارد.در لینوکس فولدر home کاربر بصورت ~ نمایش داده میشود.
چون کاربر وارد شده root است قبل از دستور علامت # نمایش داده شده است.
دستور ls بهمراه بعضی از گزینه های دستور ls یعنی lah اجرا شده است.
نام یا مسیر فایل یا فولدر استفاده نشده است بنابراین فولدر فعلی یعنی ~ در نظر گرفته میشود.
مثال ۲ برای shell در لینوکس
نمونه دیگر بصورت زیر می باشد:
در مثال بالا، کاربر saman در فولدر home/saman/ کامپیوتر ubuntu قرار دارد.
از آنجایی که کاربر غیر root است بعد از PS1 علامت $ نمایش داده شده است.
دستور pwd برای نمایش مسیر مطلق یا مسیر کامل فولدری استفاده می شود که در حال حاضر در آن هستید.
ویژگی Tab Completion در لینوکس
bash بعنوان پوسته در لینوکس قابلیت خاصی را دارد که در رابط خط فرمان cmd سیستم عامل ویندوز وجود ندارد.
زمانی که تعدادی از حروف یک دستور را وارد می کنید چنانچه کلید TAB را در صفحه کلید بزنید و دستور دیگری با آن حروف از قبل وجود نداشته باشد، سایر حروف دستور بصورت خودکار تکمیل می شود.
چنانچه دستورات دیگری با همان حروفی که وارد کرده اید موجود باشند، آنها را بصورت لیست نمایش می دهد که می توانید ادامه حروف را وارد کنید تا دستور مدنظر تکمیل شود.
بطور مثال می توانید ۲ حرف pw را وارد و سپس TAB را بزنید که دستور pwd را نمایش خواهد داد.
در تصویر زیر برای حروف apt، سایر دستورات که با apt شروع می شود را نیز نمایش می دهد.
استفاده از TAB برای فایل ها و فولدرها نیز صدق می کند.
دستور ls -lah برای لیست کردن فایلهایی است که با bash. شروع و در فولدر فعلی وجود دارند.
ویژگی TAB در CMD ویندوز برای دستورات قابل استفاده نیست ولی فایلها و فولدرها را تشخیص میدهد.
ویژگی TAB در PowerShell ویندوز برای دستورات و فایلها و فولدرها قابل استفاده است.
سخن پایانی
برچسبها: bash, command, command line, gnu/linux, linux, Tab Completion, آموزش لینوکس, پوسته, خط فرمان, دستور, لینوکس