مقدمهای بر ترمینال لینوکس
در این مقاله، میخواهیم درباره مقدمات استفاده از ترمینال لینوکس صحبت کنیم و توضیحاتی درباره شروع کار با ترمینال و نحوه اجرای دستورها ارائه دهیم. اگر بهتازگی با لینوکس آشنا شدهاید، باتوجهبه اینکه روش استاندارد برای تعامل با سیستمعامل لینوکس استفاده از ترمینال است، لازم است با این ابزار آشنا شوید.
شبیهساز ترمینال
همین ابتدای کار باید نکتهای را یادآوری کنیم: اگر میخواهید از این مقاله نهایت استفاده را ببرید، لازم است سرور لینوکس داشته باشید تا هم بتوانید به آن متصل شوید و هم از آن استفاده کنید. همچنین، فراموش نکنید که این آموزش ویژه استفاده از سرور اوبونتو 22.04 است؛ بااینحال، اصول ارائهشده در این مقاله میتواند برای هر توزیع دیگری نیز بهکار گرفته شود.
شبیهساز ترمینال برنامهای است که با استفاده از آن، میتوانید از ترمینال لینوکس در محیط گرافیکی دیگری استفاده کنید. باتوجهبه اینکه اکثر کاربران برای نیازهای روزمرهشان با سیستمعامل دارای رابط گرافیکی (GUI) کار میکنند، استفاده از شبیهساز ترمینال برای تمامی کاربران لینوکس ضروری است.
برخی از ترمینالهای مهم و رایگان براساس سیستمعامل عبارتاند از:
- Mac OS X: ترمینال iTerm2 (پیشفرض)
- ویندوز: PuTTY و Windows Terminal و ConEmu
- لینوکس: XTerm و Konsole و Gnome Terminal
هر شبیهساز ترمینال ویژگیهای ذاتی دارد؛ اما برای انتخاب بهترینِ آنها باید توجه کنید که این شبیهساز از قابلیت هایلایتسازی متون و وجود Tab در پنجرهها پشتیبانی کند.
رابط خط فرمان Shell
در سیستمعامل لینوکس، Shell رابط خط فرمان است. درحقیقت، این رابط دستورها و فایلهای اسکریپت کاربر را ترجمه میکند و درنهایت، به سیستمعامل سرور میگوید که چه کاری انجام دهد. Shellهای متعددی وجود دارند که هریک از آنها نیز بسیار محبوباند. بهعنوان نمونه، میتوان به Bourne-Again Shell (bash) و Z Shell یا zsh اشاره کرد. هریک از این Shellها ویژگیهایی دارند که نحوه تفسیر دستورها را مشخص میکنند. بااینحال، در تمامی آنها مواردی ازجمله ریدایرکت ورودیوخروجیها و متغیرها و تست شروط ایجادشده مشترک است. ادامه این آموزش را با Bourne-Again Shell پیش خواهیم برد که به آن bash نیز گفته میشود. این Shell بهصورت پیشفرض روی توزیعهای Ubuntu و Fedora و RHEL وجود دارد.
خط فرمان
هنگامیکه میخواهید برای اولینبار به سروری وارد شوید، معمولاً با پیغام MOTD مواجه خواهید شد. این پیغام مخفف عبارت Message of a Day است و در ردیف پیامهای اطلاعاتی قرار میگیرد. ازجمله اطلاعات موجود در این پیام میتوان به نسخه توزیع لینوکسی اشاره کرد که روی سرور در حال اجراست. پس از پیام MOTD، در خط فرمان (Shell Prompt) قرار خواهید گرفت. این همان جایی است که میتوانید دستورهایی را برای سرور ارسال کنید و اطلاعاتی که در خط فرمان ارائه میشود، بهنوعی سفارشیسازی کنید. درادامه، نمونهای از خط فرمان پیشفرض Ubuntu 20.04 آورده شده است:
sammy@webapp:~$
قسمتهای مختلف ترکیب بالا ازاینقرارند:
Sammy: نام کاربری کاربر فعلی
Webapp: نام میزبان سرور
~: دایرکتوری فعلی. در اینجا نکته مهم این است در bash که بهعنوان Shell پیشفرض استفاده میشود، کاراکتر «~» کاراکتری ویژه است که به مسیر فهرست اصلی کاربر اشاره میکند. در مثال یادشده، ~ نشاندهنده مسیر home/Sammy است.
$: نماد اعلان. کاراکتر «$» نشاندهنده پایان فرمانی است که در Command Line درج کردهاید.
حالا فرض کنید که میخواهید بهعنوان Root به دایرکتوری /var/log وارد شوید. در این صورت، باید کدهای زیر را در خط فرمان بنویسید:
root@webapp:/var/log#
نکتهای که در این کد باید به آن توجه کنید، این است که نماد پایان خط فرمان کاراکتر «#» است که برای خط استاندارد کاربر Root در نظر گرفته میشود. همچنین، بد نیست بدانید که در سیستمعامل لینوکس، کاربر Root حساب کاربری ویژهای است که میتواند کارهای مدیریتی را در سراسر سیستم انجام دهد. دسترسی این کاربر نامحدود است و اجازه دارد هر کاری را روی سرور انجام دهد.
دستورهای در حال اجرا
برای اجرای دستورها باید از خط فرمان بهره ببرید. برای این منظور، باید نام یک فایل اجرایی را وارد کنید. این فایل میتواند برنامه باینری یا اسکریپت باشد. بسیاری از دستورها و ابزارهای استاندارد در لینوکس وجود دارند که روی سیستمعامل شما نصب میشوند و به شما امکان میدهند که به فایلهای سیستمی دسترسی داشته باشید و بستههای نرمافزاری را نصب و سیستم و اپلیکیشنهای کاربردی را پیکربندی کنید. برای اجرای دستورهای در حال اجرا، فرایندی طی میشود. توضیح بیشتر اینکه هنگامیکه دستوری در قسمت Foreground اجرا میشود، کاربر باید قبل از بازگشت به خط فرمان، منتظر بماند تا این فرایند بهپایان برسد. در این مرحله است که وی امکان خواهد داشت فرمانهای بیشتری صادر کند.
همچنین، این نکته را فراموش نکنید که تقریباً همهچیز در لینوکس به حروف کوچک و بزرگ حساس است؛ مثلاً نام فایلها، دایرکتوریها، دستورها و آرگومانها. بنابراین، اگر فرمانهای شما مطابق با آنچه مدنظرتان است پیش نمیرود، ممکن است مشکل حروف کوچک و بزرگ را اشتباه تایپ کرده باشید. درادامه، چند مثال را برایتان عنوان کردهایم که اصول اجرای دستورها را بیشتر برایتان مشخص میکند.
اجرای دستورها بدون Argument و Option
اگر میخواهید دستورها را بدون استفاده از Argument یا Option اجرا کنید، کافی است نام دستور را تایپ کنید و سپس کلید Enter را فشار دهید. اگر با استفاده از این روش دستورها را اجرا کنید، دستور دقیقاً همان رفتار پیشفرض خود را انجام خواهد داد. واضح است که این رفتار بین دستورهای مختلف متفاوت است.
بهعنوان مثال، اگر بدون Argument یا Option دستور cd را اجرا کنید، به دایرکتوری Home کاربر جاری بازگردانده خواهید شد. همچنین، دستور ls به شما امکان خواهد داد تا فهرست فایلها و دایرکتوریهای قرارگرفته در دایرکتوری اصلی را ببینید. دستور ip نیز بدون هیچ آرگومانی پیامی را نشان خواهد داد که نحوه استفاده از دستور ip را به شما یادآوری میکند.
حالا دستور ls را بدون هیچ آرگومانی تایپ کنید و سپس کلید Enter را فشار دهید. همانطورکه گفتیم، انتظار میرود تا با استفاده از این دستور بتوانید فایلها و دایرکتوریهای قرارگرفته در دایرکتوری جاریتان را (درصورت وجود) ببینید.
ls
اجرای دستورها با Argument
بسیاری از دستورها آرگومانها یا پارامترهایی را میپذیرند که با استفاده از آنها میتوانید روی رفتار آن دستور اثر بگذارید. برای نمونه، رایجترین راه برای استفاده از دستور cd ارسال آرگومانی واحد است که مشخص میکند قصد دارید به کدام دایرکتوری وارد شوید. بهعنوان مثال، اگر بخواهید به پوشه usr/bin/ وارد شوید که بسیاری از دستورهای استاندارد در آن نصب شده است، باید از کد زیر استفاده کنید:
cd /usr/bin
خروجی این کد نیز بهصورت زیر است:
ls
Output … grub-mkrescue sdiff zgrep grub-mkstandalone sed zipdetails grub-mount see zless grub-ntldr-img select-editor zmore grub-render-label semver znew grub-script-check sensible-browser
اجرای دستورها با استفاده از Option
علاوهبر Argumentها، تقریباً تمامی دستورها Optionهایی را نیز میپذیرند که با استفاده از آنها میتوانید رفتار دستور را تغییر دهید. Optionهای دستورها معمولاً در انتهای آنها اضافه میشوند. Optionها میتوانند تکحرفی یا چندحرفی باشند. حالا اجازه دهید نحوه عملکرد Optionها را با بیان مثالی درباره دستور ls بیشتر مرور کنیم. چند Option رایج بههنگام استفاده از دستور ls عبارتاند از:
- -l: با استفاده از این Option میتوانید فهرستی طولانی شامل برخی جزئیات اضافی مانند مجوزها و اندازه فایل و زمان ایجاد فایل یا دایرکتوری را بهنمایش درآورید.
- -a: با استفاده از این Option نیز میتوانید تمامی فایلهای دایرکتوری جاری، ازجمله تمامی فایلهای Hiddenشده را در فهرست ببینید که با «.» شروع میشوند.
نحوه استفاده از آپشن -l نیز بهصورت زیر است:
ls -l
توجه کنید که وقتی از -l استفاده میکنید، فهرست ارائهشده دقیقاً همانند وقتی است که از ls بهصورت ساده استفاده میکنید. تفاوت ایجادشده فقط در ارائه اطلاعات بیشتری است که قبلاً به آن اشاره شد. همچنین، این نکته را باید مدنظر قرار دهید که Optionها اغلب این امکان را دارند که با یکدیگر ترکیب شوند. بهعنوان مثال، اگر بخواهید از -l و -a همزمان استفاده کنید، میتوانید بهصورت زیر کدنویسی کنید:
ls -la
همچنین، استفاده از کدهای زیر نتیجهای مشابه را بهدنبال خواهد داشت:
ls -l -a
اجرای همزمان دستورها با استفاده از Option و Argument
هنگام اجرای دستورها، غالباً میتوانید Optionها و Argumentها را نیز با یکدیگر ترکیب کنید. بهعنوان نمونه، با اجرای دستور ls میتوانید فهرست محتویات /home را بدون درنظرگرفتن دایرکتوری جاری خود ببینید. برای این منظور، میتوانید بهصورت زیر کدنویسی کنید:
ls -la /home
در این کد، ls فرمان است و -la بیانگر Option دستور و /home آرگومانی است که به دستور نشان میدهد تا محتویات کدام دایرکتوری را باید فهرست کند. خروجی این کد باید فهرست دقیقی از تمامی فایلها و پوشههای قرارگرفته در مسیر home باشد؛ حتی آنها که بهصورت Hidden هستند.
متغیرهای محیطی
متغیرهای محیطی به متغیرهایی نامگذاریشده گفته میشود که برای تغییر نحوه اجرای دستورها و فرایندها از آنها استفاده خواهد شد. هنگامیکه برای اولینبار وارد سرور میشوید، چندین متغیر محیطی براساس چند فایل پیکربندی بهطورپیشفرض تنظیم میشوند. بهمنظور مشاهده تمامی این متغیرهای محیطی که برای ترمینالی خاص تنظیم شدهاند، میتوانید از دستور env استفاده کنید:
env
در این صورت، احتمالاً خروجیهای زیادی نیز به شما نمایش داده خواهد شد. بهدنبال ورودی PATH باشید:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
متغیر محیطی PATH شامل فهرستی از دایرکتوریهایی است که با کولون مشخص شدهاند و در آنها Shell هنگام صدور فرمان، بهدنبال دایرکتوریها یا اسکریپتهای اجرایی میگردد. بهعنوان نمونه، دستور env در /usr/bin قرار دارد و شما میتوانید بدون اشاره به مسیر کاملش، آن را اجرا کنید. چرا؟ چون مسیر آن در متغیر محلی PATH قرار گرفته است.
مشاهده مقدار متغیر محیطی
مقدار متغیر محیطی را میتوان با قراردادن $ در ابتدای نام متغیر مشاهده کرد. بهعنوان مثال، برای چاپ متغیر PATH میتوانید از دستور echo بهصورت زیر استفاده کنید:
echo $PATH
اگر سعی کنید که به متغیر محیطی دسترسی پیدا کنید که هنوز Set نشده است، رشتهای خالی برای شما بازگردانده خواهد شد.
تنظیم متغیرهای محیطی
با اطلاعاتی که تا این قسمت بهدست آوردهاید، متغیرهای محیطی را میتوانید مشاهده کنید. حالا وقت آن فرارسیده است تا یاد بگیرید چگونه آنها را تنظیم کنید. تنها کاری که برای تنظیم متغیر محیطی باید انجام دهید، این است که نام متغیر را بنویسید و بلافاصله بعد از آن علامت «=» را قرار دهید و در پایان نیز مقدار دلخواه آن را وارد کنید. بهعنوان مثال:
VAR=value
توجه کنید اگر این دستور را برای متغیری انجام دهید که از قبل وجود داشته است، مقدار جدیدی که برای آن در نظر گرفتهاید، جایگزین مقدار قبلی خواهد شد. اگرهم این متغیر از قبل وجود نداشته باشد، ایجاد خواهد شد و با مقداری که تعیین کردهاید، مقداردهی خواهد شد.
جمعبندی
در این مقاله، مقدمات کار با ترمینال لینوکس را توضیح دادیم و به نکات مهمی درباره شبیهساز ترمینال و دستورها و نیز نحوه اجرای دستورها با استفاده از ترمینال اشاره کردیم. مهمترین راه برای ارتباط با سیستمعامل لینوکس، استفاده از ترمینال آن است؛ اما اگر بهتازگی کار با سیستمعامل لینوکس را شروع کردهاید، ممکن است کار با ترمینال کمی برایتان پیچیده باشد. البته این مشکلِ همه کسانی است که در ابتدای راه کار با لینوکس هستند؛ پس ناامید نشوید!
سؤالات متداول
۱. چرا استفاده از ترمینال لینوکس مهم است؟
ترمینال مهمترین و فنیترین راه تعامل شما با سیستمعامل لینوکس است؛ بنابراین برای تسلط بر این سیستمعامل، باید بر استفاده از ترمینال نیز تسلط پیدا کنید.
۲. شبیهساز ترمینال چیست؟
شبیهساز ترمینال به نرمافزاری گفته میشود که با استفاده از آن میتوانید ترمینال را در محیط گرافیکی دیگری اجرا کنید.
۳. Shell در لینوکس به چه معنی است؟
Shell درواقع رابطی است که دستورهای صادرشده کاربر را ترجمه میکند و به سیستمعامل سرور میگوید که دقیقاً باید چه کاری انجام دهد.
۴. آیا امکان استفاده از ترمینال بهصورت گرافیکی و بدون کدنویسی وجود دارد؟
تمامی ارتباط شما با ترمینال با استفاده از کدنویسی است؛ بنابراین، سعی کنید با این موضوع کنار بیایید. البته اگر از لینوکس استفاده میکنید، مفهوم آن این است که احتمالاً میخواهید به توسعهدهنده تبدیل شوید؛ پس ذات کدنویسی باید برایتان بسیار جذاب باشد، اینطور نیست؟
دیدگاهتان را بنویسید