بسیاری از ما با سیستم عاملهای مختلف آشنایی داریم و مرسومترین شیوه برای تعامل با آنها را نیز تجربه کردهایم: رابط کاربری گرافیکی (GUI). ویندوز، مک و لینوکس از جمله سیستم عاملهایی هستند که از یک رابط کاربری گرافیکی قدرتمند بهره میبرند.
اما یکی دیگر از اصلیترین رابطهای کاربری که برای تعامل با سیستم عامل استفاده میشود، CLI یا رابط خط فرمان یا همان ترمینال است. افرادی که بیشتر از این رابط استفاده میکنند توسعه دهندگان، مدیران شبکه، متخصصین DevOps و… هستند. دلیل این موضوع نیز ویژگیهایی است که CLI به ما ارائه میدهد.
دسترسی مدیریتی کاملتر، انجام سریعتر تسکهای زیرساختی، در دسترس بودن در هر شرایطی و… از جمله مزیتهای اصلی CLI به نسبت رابط گرافیکی است.
در این مطلب از وبلاگ همروش قصد داریم شما را با لینوکس آشنا کنیم و سپس ساختار دستورات متنی در ترمینال را بررسی کنیم. همچنین در پایان برخی از کاربردیترین دستورات پایهای در لینوکس را به شما معرفی خواهیم کرد.
لینوکس چیست؟
برای اینکه بهصورت مختصر و مفید با لینوکس آشنا شویم، مطالب مربوطه را بهصورت یک لیست کوتاه درآوردهایم تا شما بتوانید با موضوعات اصلی بهسرعت آشنا شوید:
- لینوکس در سال ۱۹۹۱ توسط لینوس توروالدز منتشر شد.
- لینوکس بهتنهایی یک سیستم عامل مستقل نیست، بلکه بهعنوان یک هسته یا Kernel توسعه داده شده که با قرارگیری در کنار مجموعهای از ابزارهای مختلف، میتواند یک سیستم عامل را تشکیل دهد.
- لینوکس شامل نسخهها (توزیع یا Distribution) مختلفی میشود که هر کدام برای استفاده خاصی توسعه یافتهاند. برای مثال اوبونتو، دبیان، فدورا، آرچ و… .
- بیشتر کاربرانی که از لینوکس استفاده میکنند، افراد حرفهای در حوزه نرم افزار، شبکه و امنیت هستند که کمتر از رابطهای گرافیکی استفاده کرده و بیشتر زمان کاری خودشان را به استفاده از ترمینال (محیط خط فرمان) مشغول هستند.
حال که بهصورت کلی با چیستی لینوکس آشنا شدید، نیاز است که با اهمیت لینوکس و دلایل محبوبیت آن آشنا شویم.
اهمیت و جایگاه لینوکس در دنیای سیستم عاملها
دلایل بسیار زیادی وجود دارد که باعث میشود لینوکس از جایگاه ویژهای در بین سیستم عاملهای مختلف برخوردار باشد. بیایید با چند مورد از اصلیترین این موارد آشنا شویم:
- رایگان و متن باز بودن: لینوکس یک سیستم عامل رایگان و متن باز (Open Source) است. برای دسترسی به لینوکس نیازی به پرداخت هیچ هزینهای ندارید و همچنین اگر به استفاده کردن از سورس اصلی لینوکس علاقه دارید، میتوانید از طریق گیتهاب بهصورت مستقیم به سورس کد لینوکس دسترسی داشته باشید.
- سازگاری بالا با DevOps: لینوکس شامل مجموعهای از ابزارها میشود که میتواند در فرایند DevOps بیشترین کمک را به شما بکند. همچنین تکنولوژی که داکر براساس آن اجرا میشود بهصورت کامل برپایه لینوکس است. برای مدیریت سرور و اپلیکیشنهای دیپلوی شده نیز استفاده از ترمینال لینوکس میتواند بهرهوری شما را افزایش دهد.
- از توسعهدهنده به توسعهدهنده: اغلب کاربرانی که سراغ لینوکس میروند توسعهدهندگان و برنامهنویسها هستند. لینوکس سازوکارهای بسیاری برای سهولت استفاده برنامهنویسها داشته و به همین دلیل اغلب متخصصین این حوزه ترجیح میدهند که از لینوکس استفاده کنند.
- در دسترس بودن: سازگاری بالا با سختافزارهای مختلف و حجم سبک لینوکس باعث شده تا بتوان بهراحتی از لینوکس در دستگاهها و حالتهای مختلف استفاده کرد. برای مثال سیستم عامل اندروید از جمله موارد محبوبی است که به صورت کامل از هسته لینوکس استفاده میکند.
- جامعه کاربری بزرگ و منابع آموزشی کامل: لینوکس از جمله سیستم عاملهایی است که جامعه کاربری فنی بسیار بزرگی داشته و منابع آموزشی کاملی برای یادگیری آن نیز وجود دارد. در نتیجه اگر بخواهید فرایند یادگیری و استفاده از آن را شروع کنید، منابع جامعی برای اینکار پیدا خواهید کرد.
آشنایی با صفحه اصلی ترمینال
قبل از اینکه دستورات پایهای لینوکس را معرفی کنیم، نیاز است که ابتدا با صفحه اصلی ترمینال آشنا شویم و ساختار آن را بررسی نماییم.
بهصورت پیشفرض زمانی که پنجره ترمینال را باز میکنید با متن زیر روبهرو میشوید که به آن Prompt میگویند:
cjb@Test-Rig:/home$
برای آشنایی با این خط نیاز است که آن را به قسمتهای مختلفی تقسیم کنیم تا بهتر با آن آشنا شویم:
- cjb: نام کاربری فردی که وارد لینوکس شده است.
- Test-Rig: نام کامپیوتر یا هاستی که ترمینال روی آن اجرا میشود.
- /home/: دایرکتوری یا آدرس کنونی که در آن قرار دارید. بهصورت پیشفرض ترمینال در مسیر دایرکتوری home باز میشود.
- $: علامت نوع کاربری؛ در این حالت شما کاربر استاندارد هستید و دسترسیهای root را ندارید. اگر دسترسی روت داشته باشید این علامت بهصورت # خواهد بود.
در ارتباط با دایرکتوری کنونی یا Current Directory منظور همان آدرسی است که در آن حضور دارید. اگر دستوری را در ترمینال وارد کنید، روی این دایرکتوری اعمال میشود. برای مثال اگر قصد داشته باشید یک فایل جدید را از طریق ترمینال ایجاد کنید، این فایل درون دایرکتوری کنونی شما ایجاد خواهد شد.
ساختار دستورات در ترمینال لینوکس
دستورات لینوکس معمولا براساس یک ساختار استاندارد نوشته میشوند، اما در حالتهایی ممکن است تغییراتی نیز وجود داشته باشد.
برای اینکه درک درستی از ساختار هر دستور داشته باشیم، ما استانداردترین حالت ممکن را در نظر میگیریم:
command [-flag(s)] [-option(s) [value]] [argument(s)]
- Command: دستور اصلی که هدف اصلی ما را اجرا میکند، در ابتدای این ساختار وارد میشود.
- Flag: شامل گزینههایی میشود که روشهای مختلفی برای اجرا دستورات را در خود دارد. بیشتر اوقات flagها ضروری نبوده و میتوان بدون آنها نیز دستور مورد نظر را اجرا کرد.
- Option و Argument: برخی از دستورات برای اینکه به درستی اجرا شوند نیاز به وارد کردن یکسری آرگومان دارند. در بیشتر اوقات این آرگومان، یک آدرس یا Path است که دستور در آن قسمت اجرا میشود. برخی از دستورات برای اجرا شدن به آرگومان نیاز ندارند.
- یک مثال از این ساختار را در ادامه خواهیم آورد تا به صورت بهتری با این موضوع آشنا شوید:
mkdir -v Hello /home/arastoo
- mkdir: دستور یا Command اصلی که برای ایجاد دایرکتوری جدید از آن استفاده میکنیم.
-
-v
: فلگ-v
فلگی غیر ضروری است که بعد از اجرا دستور باعث میشود تا یک پیام در ترمینال لینوکس به نمایش گذاشته شود. (بدون استفاده از این فلگ نیز دستور به خوبی کار میکند). - Hello: نام دایرکتوری (پوشه) که میخواهیم آن را ایجاد کنیم.
- /home/arastoo: آدرسی که میخواهیم دایرکتوری مورد نظر در آن ایجاد شود. (آرگومان)
۱۰ دستور پایهای در لینوکس
یکسری دستورات پایهای در ترمینال لینوکس وجود دارد که ممکن است بهصورت روزانه از آنها استفاده کنیم. در ادامه این مطلب قصد داریم راجع به ۱۰ دستور پایهای مورد نظر صحبت کنیم.
دستور اول: ls
یکی از دستوراتی که بهصورت مرتب به کار گرفته میشود، دستور ls
است که برای لیست کردن محتوای دایرکتوری کنونی یا همان Current Directory استفاده میشود. برای استفاده از این دستور، کافیست عبارت ls
را در ترمینال وارد کنید.
همچنین اگر از فلگ -l
استفاده کنید میتوانید لیست محتویات دایرکتوری را همراه با مجوزهای دسترسی آن مشاهده کنید.
مجموعه دیگری از فلگها وجود دارد که میتوانید آنها را با استفاده از --help
پیدا کنید:
ls --help
نکته: برای آشنا شدن با ویژگیهای هر دستوری، میتوانید از این ساختار استفاده کنید.
دستور دوم: cd
زمانی که ترمینال لینوکس را باز میکنید، بهصورت پیشفرض در دایرکتوری /home
قرار خواهید گرفت. این دایرکتوری فایلهای مربوط به کاربر لاگین شده (یعنی شما) را در خود جای میدهد. بنابراین هر دستوری را که وارد کنید روی این دایرکتوری اعمال میشود.
برای اینکه وارد دایرکتوریهای دیگر شوید و روی آنها دستورات را اعمال کنید، نیاز است که از دستور cd
استفاده نمایید.
cd مخفف کلمات Change Directory به معنای تغییر دایرکتوری است و از جمله دستوراتی است که کاربران بهصورت مداوم از آن استفاده میکنند.
برای استفاده از این دستور ابتدا نام دستور و سپس مسیر مورد نظر را وارد میکنید:
cd /Documents/docs/
دستور سوم: pwd
pwd مخفف کلمات Print Working Directory است و یک وظیفه ساده را برعهده دارد: نمایش مسیر دایرکتوری که در آن حضور دارید. برای مثال تصور کنید که نام کاربری شما arastoo
بوده و در حال حاضر در دایرکتوری /Documents
مشغول کار هستید. در این حالت اگر دستور pwd
را وارد کنید به شکل زیر نتیجه نهایی به شما نمایش داده خواهد شد:
/home/arastoo/Documents
برای استفاده از این دستور تنها کافیست عبارت pwd
را وارد کنید. بهصورت پیشفرض نیازی به آرگومان یا فلگ خاصی ندارید.
دستور چهارم: mkdir
برای ایجاد دایرکتوری جدید در مسیر کنونیتان میتوانید از دستور mkdir
استفاده کنید. روش استفاده از این دستور بسیار ساده است. تنها کافیست دستور مربوطه را وارد کنید و سپس یک نام برای دایرکتوری مورد نظرتان انتخاب کنید:
mkdir New_Files
در این حالت پس از اجرای دستور، دایرکتوری New_File
در مسیر کنونی شما ایجاد خواهد شد.
دستور پنجم: sudo
به صورت پیشفرض ترمینال لینوکس با کاربر عادی یا استاندارد وارد میشود و همانطور که پیشتر گفتیم نماد این کاربر علامت $
است. اما اگر بخواهیم که به عنوان کاربر root
از ترمینال استفاده کنیم، میتوانیم با وارد کردن دستور sudo
این کار را انجام دهیم.
دو روش کلی برای کار با این دستور وجود دارد. در روش اول ما از این دستور در ابتدای دستورات دیگر استفاده میکنیم. دلیل انجام این کار نیز این است که برخی از دستورات برای اجرا شدن به مجوز root
نیاز دارند.
برای مثال اگر قصد نصب کردن یک برنامه جدید از طریق ترمینال لینوکس را داشته باشیم به صورت زیر عمل خواهیم کرد:
sudo apt install vlc
دستور apt install
برای اجرا شدن به مجوز کاربر root
نیاز دارد و به همین دلیل ما در ابتدا خط فرمان دستور sudo
را وارد کردهایم. بعد از اجرا کردن این دستور، ترمینال از ما رمز عبور کاربر روت را درخواست میکند.
روش دیگر استفاده از این دستور تبدیل کردن کاربر عادی به کاربر روت در نشست ترمینال است. برای انجام این کار sudo -i
را وارد میکنیم. بعد از وارد کردن رمز عبور کاربر روت، علامت $
به #
تبدیل خواهد شد و همچنین نام کاربری ترمینال تغییر خواهد کرد.
دستور ششم: touch
از دستور touch
برای ایجاد فایل در داخل ترمینال استفاده میشود. برای مثال اگر قصد دارید به سرعت یک فایل index.html
را ایجاد کنید، کافیست به شکل زیر عمل کنید:
touch index.html
به این شکل دیگر نیازی به خروج از ترمینال و ایجاد فایل جدید از طریق GUI را نخواهید داشت.
دستور هفتم: vi
vi
در واقع یک ویرایشگر مبتنی بر ترمینال است که برای ویرایش و مشاهده سریع محتویات فایلها در ترمینال استفاده میشود. برای کار با این دستور ابتدا vi
را وارد کرده و سپس نام فایل مورد نظر را تایپ کنید. برای مثال:
vi index.html
بعد از این کار یک ادیتور در محیط ترمینال باز میشود که میتوانید متون مورد نظرتان را از طریق آن وارد کنید. در نهایت برای ذخیره کردن فایل ابتدا کلید Esc را روی کیبورد انتخاب کرده و سپس :wq
را تایپ کنید.
برای مطالعه کامل ویژگیهای vi مقاله «An introduction to the vi editor» را مطالعه کنید.
دستور هشتم: cat
برای مشاهده محتویات یک فایل به صورت سریع میتوانید از دستور cat
استفاده کنید. برای کار با این دستور کافیست بهصورت زیر عمل کنید:
cat index.html
دستور نهم: ps
برای مشاهده تمام پردازشهای در حال انجام میتوانید از دستور ps
استفاده کنید. این دستور اطلاعاتی شامل آیدی برنامه/پردازش در حال اجرا (PID)، ترمینالی که مسئول اجرا کردن برنامه است (TTY)، مدت زمان اجرا شدن (Time) و نام پردازش در حال اجرا (CMD) را به ما نشان میدهد.
برای کار با این دستور تنها کافیست عبارت ps
را در ترمینال وارد کنید.
دستور دهم: kill
برای جلوگیری از ادامه کار یک پردازش، میتوانید از دستور kill
استفاده کنید. برای کار با این دستور، ابتدا kill
را تایپ کرده و سپس آیدی پردازش در حال اجرا (PID) را وارد کنید.
برای مثال اگر آیدی برنامه فایرفاکس 545944 باشد، برای متوقف کردن آن میتوانید به شکل زیر عمل کنید.
kill 545944
جمعبندی
لینوکس یکی از مهمترین سیستمعاملهایی است که توسط متخصصیان حوزههای مختلفی استفاده میشود.
یکی از مهمترین دلایلی که از لینوکس بهصورت گسترده استفاده میشود، وجود ترمینال قدرتمند در لینوکس است که به شما امکان تعامل با سیستمعامل را بهصورت متنی (خط فرمان) میدهد.
در این مطلب از وبلاگ همروش ما با چیستی لینوکس، ساختار دستورات و همچنین پایهایترین دستورات لینوکسی آشنا شدیم.