دوره Linux Essentials (درس 1-2) قسمت اول

مقدمه :

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

چندین پوسته مختلف در لینوکس وجود دارد که اینها تنها تعدادی هستند :

  • Bourne-again shell (Bash)
  • C shell (csh or tcsh, the enhanced csh)
  • Korn shell (ksh)
  • Z shell (zsh)

در لینوکس رایج ترین آنها پوسته Bash است. این نیز همان چیزی است که در مثال ها یا تمرین ها در اینجا استفاده می شود. هنگام استفاده از یک پوسته تعاملی ، کاربر دستورات را در یک به اصطلاح اعلان (prompt) وارد می کند. برای هر توزیع لینوکس ، prompt پیش فرض ممکن است کمی متفاوت به نظر برسد ، اما معمولاً از این ساختار پیروی می کند :

در اوبونتو یا دبیان گنو/لینوکس ، درخواست یک کاربر معمولی احتمالاً به این صورت خواهد بود :

اعلان کاربر اصلی (root) به صورت زیر خواهد بود :

در لینوکس CentOS یا Red Hat ، درخواست یک کاربر معمولی به این صورت خواهد بود :

و دستور superuser به این صورت خواهد بود :

بیایید هر یک از اجزای ساختار را توضیح دهیم :

Username :

نام کاربری که پوسته (shell)  را اجرا می کند

Hostname :

نام میزبانی (host )  که پوسته روی آن اجرا می شود. همچنین یک دستور نام میزبان وجود دارد که با آن می توانید نام میزبان سیستم را نشان داده یا تنظیم کنید.

current_directory :

دایرکتوری که پوسته در حال حاضر در آن است. A ~ به این معنی است که پوسته در فهرست اصلی کاربر فعلی است.

shell_type :

 $ : نشان می دهد که پوسته توسط یک کاربر معمولی اجرا می شود.

 #: نشان می دهد که پوسته توسط root superuser اجرا می شود.

 

از آنجایی که ما به هیچ امتیاز خاصی نیاز نداریم ، در مثال های زیر از یک دستور غیرمجاز استفاده خواهیم کرد. برای اختصار ، ما فقط از $ به عنوان درخواست استفاده می کنیم.

ساختار خط فرمان (Command Line Structure ) :

اکثر دستورات در خط فرمان از ساختار اصلی یکسانی پیروی می کنند :

دستور زیر را به عنوان مثال در نظر بگیرید :

بیایید هدف هر جزء را توضیح دهیم:

Command :

برنامه ای که کاربر اجرا خواهد کرد ls در مثال بالا.

Option(s)/Parameter(s) :

یک “سوئیچ” که رفتار دستور را به نحوی تغییر می دهد، مانند -l در مثال بالا. گزینه ها به صورت کوتاه و بلند قابل دسترسی هستند. به عنوان مثال ، -l با format=long– یکسان است.

چندین گزینه را نیز می توان ترکیب کرد و برای فرم کوتاه ، حروف را معمولاً می توان با هم تایپ کرد. به عنوان مثال ، دستورات زیر همگی همین کار را انجام می دهند  :

 

Argument(s) :

داده های اضافی که مورد نیاز برنامه است، مانند نام فایل یا مسیر، مانند home/ در مثال بالا.

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

نکته : اکثر دستورات زمانی که با پارامتر  help– اجرا می شوند نمای کلی کوتاهی از گزینه های موجود را نشان می دهند. به زودی راه های بیشتری برای یادگیری بیشتر در مورد دستورات لینوکس خواهیم آموخت.

انواع رفتار فرمان (Command Behavior Types) :

Shell از دو نوع دستور پشتیبانی می کند :

Internal :

این دستورات بخشی از خود پوسته هستند و برنامه های جداگانه ای نیستند. حدود 30 دستور از این دست وجود دارد. هدف اصلی آنها اجرای وظایف در داخل پوسته است (به عنوان مثال  cd , set , export)

External :

این دستورات در فایل های جداگانه قرار دارند. این فایل ها معمولا برنامه ها یا اسکریپت های باینری هستند. هنگامی که دستوری اجرا می‌شود که یک پوسته داخلی نیست ، پوسته از متغیر PATH برای جستجوی فایل اجرایی با همان نام فرمان استفاده می‌کند. علاوه بر برنامه هایی که با مدیر بسته توزیع نصب می شوند، کاربران می توانند دستورات خارجی خود را نیز ایجاد کنند.

نوع فرمان نشان می دهد که یک دستور خاص چه نوع است :

Quoting :

به عنوان یک کاربر لینوکس ، باید فایل ها یا متغیرها را به روش های مختلف ایجاد یا دستکاری کنید. این کار هنگام کار با نام فایل های کوتاه و مقادیر تک آسان است ، اما زمانی که مثلاً فضاها ، کاراکترهای خاص و متغیرها درگیر شوند ، پیچیده تر می شود. پوسته ها یک ویژگی به نام نقل قول را ارائه می دهند که چنین داده هایی را با استفاده از انواع مختلف نقل قول (” “، “”) کپسوله می کند. در Bash ، سه نوع نقل قول وجود دارد :

  • Double quotes
  • Single quotes
  • Escape characters

به عنوان مثال ، دستورات زیر به دلیل نقل قول یکسان عمل نمی کنند :

نکته : خط با =TWO WORDS یک متغیر Bash است که خودمان ایجاد کرده ایم. در ادامه به معرفی متغیرها خواهیم پرداخت. این فقط به این منظور است که به شما نشان دهد چگونه نقل قول بر خروجی متغیرها تأثیر می گذارد.

Double Quotes :

نقل‌قول‌های دوتایی به پوسته می‌گویند که متن را بین علامت‌های نقل قول (“…”) به عنوان کاراکترهای معمولی قرار دهد. همه کاراکترهای خاص معنی خود را از دست می دهند ، به جز $ (dollar sign) ، \ (backslash) و ` (backquote). این به این معنی است که متغیرها ، جایگزینی دستور و توابع حسابی همچنان می توانند مورد استفاده قرار گیرند.

به عنوان مثال ، جایگزینی متغیر USER$ تحت تأثیر نقل قول های دوگانه قرار نمی گیرد :

از طرف دیگر، یک کاراکتر فضایی به عنوان جداکننده آرگومان معنای خود را از دست می دهد :

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

Single Quotes :

نقل‌قول‌های تکی استثنای نقل‌قول‌های دوگانه را ندارند. آنها هر معنای خاصی را از هر شخصیت باطل می کنند. بیایید یکی از اولین نمونه های بالا را در نظر بگیریم :

هنگام اعمال نقل قول های تک ، نتیجه متفاوتی می بینید :

دستور اکنون رشته دقیق را بدون جایگزینی متغیر نمایش می دهد .

Escape Characters :

ما می توانیم از کاراکترهای escape برای حذف معانی خاص کاراکترها از Bash استفاده کنیم.

بازگشت به متغیر محیطی $USER :

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

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

 

خلاصه :

در این آزمایشگاه یاد گرفتید :

  • مفاهیم پوسته لینوکس
  • پوسته بش چیست
  • ساختار خط فرمان
  • مقدمه ای بر نقل قول

 

دستورات مورد استفاده در تمرینات :

bash

محبوب ترین پوسته در رایانه های لینوکس

echo

خروجی متن روی ترمینال

ls

فهرست محتویات یک دایرکتوری

type

نشان می دهد که چگونه یک دستور خاص اجرا می شود

touch

یک فایل خالی ایجاد کنید یا تاریخ اصلاح یک فایل موجود را به روز کنید

hostname

نمایش یا تغییر نام میزبان یک سیستم

 

ترجمه از کتاب :

https://learning.lpi.org/en/learning-materials/010-16

 

 

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *