user@linux-tutorials: ~/tutorials/01-terminal-basics — linux-tutorials

tutorials / linux / chapter-01.md · utf-8 ⬇ download chapter-01.md

فصل اول: مبانی ترمینال لینوکس

Linux Terminal Basics

ترمینال قلب تعامل با سیستم‌عامل لینوکس است.

در فصل قبل با مفاهیم پایه مانند Terminal Emulator، Shell و Kernel آشنا شدیم و یاد گرفتیم که چگونه یک درخواست کاربر از چندین لایه عبور می‌کند تا در نهایت توسط سیستم اجرا شود.

اکنون زمان آن رسیده است که به صورت عملی وارد محیط ترمینال شویم و یاد بگیریم چگونه با لینوکس صحبت کنیم.

هدف این فصل، یادگیری اصول اولیه کار با خط فرمان است؛ مفاهیمی که پایه تمام مهارت‌های پیشرفته‌تر لینوکس مانند مدیریت سرور، امنیت، برنامه‌نویسی و DevOps محسوب می‌شوند.

اولین برخورد با ترمینال

هنگامی که ترمینال لینوکس را باز می‌کنید، معمولاً چیزی شبیه این مشاهده خواهید کرد:

asa@computer:~$

این خط که در ترمینال مشاهده می‌کنید، Prompt نام دارد.

Prompt به کاربر نشان می‌دهد که Shell آماده دریافت دستور جدید است.

در مثال بالا:

asa@computer:~$

هر بخش اطلاعات خاصی را نمایش می‌دهد.

ساختار Prompt در لینوکس

یک Prompt معمولی لینوکس از چند بخش تشکیل شده است:

username@hostname:directory$

برای مثال:

amir@thinkpad:~/projects$

اجزای آن:

Username

بخش اول نام کاربری فعلی سیستم است.

مثلاً:

user@linux-tutorials: ~/ch-01BASH
amir

یعنی کاربر فعلی با نام amir وارد سیستم شده است.

Hostname

بخش دوم نام کامپیوتر یا دستگاه است.

مثلاً:

user@linux-tutorials: ~/ch-01BASH
thinkpad

این نام برای شناسایی سیستم در شبکه نیز استفاده می‌شود.

Current Directory

بخشی که بعد از علامت : قرار دارد، مسیر فعلی کاربر را نشان می‌دهد.

مثلاً:

~/projects

یعنی کاربر در پوشه projects داخل Home Directory قرار دارد.

علامت پایان Prompt

در انتهای Prompt معمولاً یکی از این علامت‌ها دیده می‌شود:

$

یا:

#

علامت $ نشان‌دهنده یک کاربر معمولی است.

مثال:

user@computer:~$

اما علامت # معمولاً نشان‌دهنده کاربر ریشه یا Root است.

مثال:

root@computer:~#

کاربر Root بالاترین سطح دسترسی در لینوکس را دارد.

اولین دستور لینوکس

اکنون اولین دستور خود را اجرا می‌کنیم.

دستور:

user@linux-tutorials: ~/ch-01BASH
pwd

این دستور مسیر پوشه فعلی را نمایش می‌دهد.

pwd مخفف:

Print Working Directory

است.

مثال:

$ pwd

خروجی:

/home/amir

در این مثال، کاربر در مسیر:

/home/amir

قرار دارد.

چرا دانستن مسیر فعلی مهم است؟

در لینوکس تمام فایل‌ها و پوشه‌ها دارای مسیر مشخص هستند.

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

برای مثال:

حذف یک فایل در مسیر اشتباه می‌تواند باعث از بین رفتن اطلاعات مهم شود.

به همین دلیل، یکی از اولین عادت‌های یک کاربر حرفه‌ای لینوکس، شناخت موقعیت فعلی خود در سیستم است.

مشاهده فایل‌ها و پوشه‌ها

یکی از پرکاربردترین دستورات لینوکس:

user@linux-tutorials: ~/ch-01BASH
ls

است.

این دستور محتویات مسیر فعلی را نمایش می‌دهد.

ls مخفف:

List

است.

مثال:

$ ls

خروجی:

Documents
Downloads
Projects

در این مثال، سه مورد موجود در پوشه فعلی نمایش داده شده‌اند.

گزینه‌های دستور ls

دستورات لینوکس معمولاً دارای گزینه‌های مختلف هستند.

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

نمایش جزئیات بیشتر

دستور:

user@linux-tutorials: ~/ch-01BASH
ls -l

اطلاعات بیشتری درباره فایل‌ها نمایش می‌دهد.

مانند:

  • سطح دسترسی
  • مالک فایل
  • حجم فایل
  • تاریخ تغییر
  • نام فایل

نمایش فایل‌های مخفی

در لینوکس فایل‌هایی که با نقطه شروع می‌شوند، مخفی هستند.

مثال:

.bashrc

برای مشاهده آن‌ها:

user@linux-tutorials: ~/ch-01BASH
ls -a

استفاده می‌کنیم.

گزینه:

-a

مخفف:

user@linux-tutorials: ~/ch-01BASH
all

است.

ترکیب گزینه‌ها

گزینه‌ها را می‌توان ترکیب کرد.

مثال:

user@linux-tutorials: ~/ch-01BASH
ls -la

این دستور:

  • اطلاعات کامل فایل‌ها را نشان می‌دهد.
  • فایل‌های مخفی را نیز نمایش می‌دهد.

ساختار دستورات لینوکس

بیشتر دستورات لینوکس ساختاری مشابه دارند:

user@linux-tutorials: ~/ch-01BASH
command [options] [arguments]

مثال:

user@linux-tutorials: ~/ch-01BASH
ls -la /home

در این دستور:

user@linux-tutorials: ~/ch-01BASH
ls

نام دستور است.

-la

گزینه‌های دستور هستند.

/home

آرگومان دستور است.

تفاوت Option و Argument

Option

Option رفتار دستور را تغییر می‌دهد.

مثال:

-l

یا:

-a

Argument

Argument مشخص می‌کند دستور روی چه چیزی اجرا شود.

مثال:

user@linux-tutorials: ~/ch-01BASH
ls /home

در اینجا:

/home

آرگومان دستور است.

تغییر مسیر در لینوکس

برای حرکت بین پوشه‌ها از دستور:

user@linux-tutorials: ~/ch-01BASH
cd

استفاده می‌کنیم.

cd مخفف:

Change Directory

است.

مثال:

user@linux-tutorials: ~/ch-01BASH
cd Documents

با اجرای این دستور وارد پوشه Documents می‌شویم.

مسیر Home

هر کاربر در لینوکس یک پوشه شخصی دارد که Home Directory نامیده می‌شود.

مثال:

/home/amir

برای رفتن مستقیم به Home می‌توان از دستور زیر استفاده کرد:

user@linux-tutorials: ~/ch-01BASH
cd ~

علامت:

~

نماینده Home Directory است.

بازگشت به پوشه قبلی

برای برگشت به پوشه والد:

user@linux-tutorials: ~/ch-01BASH
cd ..

استفاده می‌کنیم.

دو نقطه:

..

به معنی یک سطح بالاتر است.

مثال:

اگر در مسیر:

/home/amir/projects

باشیم:

با اجرای:

user@linux-tutorials: ~/ch-01BASH
cd ..

به مسیر:

/home/amir

بازمی‌گردیم.

مسیرهای Absolute و Relative

در لینوکس دو نوع مسیر وجود دارد.

Absolute Path

مسیر کامل از ریشه سیستم است.

مثال:

/home/amir/Documents

این مسیر مستقل از محل فعلی کاربر است.

Relative Path

مسیر نسبت به مکان فعلی کاربر نوشته می‌شود.

مثال:

Documents

اگر در:

/home/amir

باشیم، این مسیر به:

/home/amir/Documents

اشاره می‌کند.

علامت‌های مهم مسیرها

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

ریشه سیستم

/

نمایانگر Root Directory است.

Home Directory

~

نمایانگر پوشه شخصی کاربر است.

پوشه فعلی

.

نمایانگر مسیر فعلی است.

پوشه والد

..

نمایانگر یک سطح بالاتر است.

دریافت اطلاعات درباره دستورات

یکی از مهارت‌های مهم کاربران حرفه‌ای لینوکس، توانایی یادگیری مستقل دستورات است.

برای مشاهده راهنمای یک دستور:

user@linux-tutorials: ~/ch-01BASH
man command

استفاده می‌کنیم.

مثال:

user@linux-tutorials: ~/ch-01BASH
man ls

این دستور صفحه راهنمای کامل دستور ls را نمایش می‌دهد.

دستور help

برخی دستورات داخلی Shell دارای راهنمای داخلی هستند.

برای مشاهده آن:

user@linux-tutorials: ~/ch-01BASH
command --help

مثال:

user@linux-tutorials: ~/ch-01BASH
ls --help

پاک کردن صفحه ترمینال

برای پاک کردن صفحه:

user@linux-tutorials: ~/ch-01BASH
clear

استفاده می‌کنیم.

این دستور فقط ظاهر ترمینال را پاک می‌کند و اطلاعات سیستم را حذف نمی‌کند.

تاریخچه دستورات

Shell دستورات قبلی کاربر را ذخیره می‌کند.

برای مشاهده تاریخچه:

user@linux-tutorials: ~/ch-01BASH
history

استفاده می‌کنیم.

مثال:

user@linux-tutorials: ~/ch-01BASH
history

خروجی شامل دستورهایی است که قبلاً اجرا شده‌اند.

استفاده از کلیدهای میانبر

ترمینال لینوکس میانبرهای بسیار مفیدی دارد.

کلید بالا

با زدن:

دستور قبلی نمایش داده می‌شود.

کلید پایین

برای حرکت در تاریخچه دستورات:

استفاده می‌شود.

پاک کردن خط فعلی

برای پاک کردن دستور نوشته شده:

Ctrl + U

توقف اجرای دستور

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

Ctrl + C

استفاده می‌شود.

اولین تمرین‌ها

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

مشاهده مسیر فعلی:

user@linux-tutorials: ~/ch-01BASH
pwd

نمایش فایل‌ها:

user@linux-tutorials: ~/ch-01BASH
ls

نمایش فایل‌های مخفی:

user@linux-tutorials: ~/ch-01BASH
ls -a

نمایش جزئیات:

user@linux-tutorials: ~/ch-01BASH
ls -l

رفتن به Home:

user@linux-tutorials: ~/ch-01BASH
cd ~

مشاهده راهنمای ls:

user@linux-tutorials: ~/ch-01BASH
man ls

نمایش تاریخچه:

user@linux-tutorials: ~/ch-01BASH
history

پروژه کوچک فصل

ساخت محیط تمرینی لینوکس

در این پروژه یک ساختار ساده برای تمرین ایجاد می‌کنیم.

ابتدا یک پوشه بسازید:

user@linux-tutorials: ~/ch-01BASH
mkdir linux-practice

وارد آن شوید:

user@linux-tutorials: ~/ch-01BASH
cd linux-practice

چند پوشه ایجاد کنید:

user@linux-tutorials: ~/ch-01BASH
mkdir projects documents notes

محتویات را بررسی کنید:

user@linux-tutorials: ~/ch-01BASH
ls -la

مسیر فعلی را مشاهده کنید:

user@linux-tutorials: ~/ch-01BASH
pwd

با انجام این تمرین، کاربر با مفاهیم اولیه مسیر، پوشه و دستورات پایه آشنا می‌شود.

جمع‌بندی فصل

در این فصل با مهم‌ترین مفاهیم اولیه کار با ترمینال لینوکس آشنا شدیم.

یاد گرفتیم:

  • Prompt چیست.
  • ساختار دستورات لینوکس چگونه است.
  • چگونه مسیر فعلی را پیدا کنیم.
  • چگونه فایل‌ها و پوشه‌ها را مشاهده کنیم.
  • چگونه بین مسیرها حرکت کنیم.
  • چگونه از راهنمای دستورات استفاده کنیم.
  • چگونه تاریخچه دستورات را مدیریت کنیم.

این مفاهیم ساده به نظر می‌رسند، اما پایه تمام مهارت‌های پیشرفته لینوکس هستند.

یک مدیر سیستم، متخصص امنیت یا توسعه‌دهنده حرفه‌ای، قبل از هر چیز باید بتواند با محیط ترمینال به شکل صحیح ارتباط برقرار کند.

[→]در فصل بعد، وارد یکی از مهم‌ترین بخش‌های لینوکس خواهیم شد: ساختار فایل سیستم لینوکس و نحوه مدیریت فایل‌ها.

🐧