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

خط فرمان لینوکس یا همان ترمینال (Terminal)، قلب تپنده این سیستم عامل است. در نگاه اول، بسیاری از کاربران تازه کار از صفحه سیاه و متون متحرک آن می ترسند؛ اما حقیقت این است که ترمینال لینوکس یکی از قدرتمندترین و لذت بخش ترین ابزارهایی است که می توانید یاد بگیرید.

با تسلط بر دستورات پایه ترمینال، می توانید:

  • فایل ها و پوشه ها را با سرعتی به مراتب بالاتر از محیط گرافیکی مدیریت کنید.
  • نرم افزارها و بسته ها را تنها با اجرای یک خط دستور نصب و به روزرسانی کنید.
  • وضعیت سیستم و شبکه را به دقت زیر نظر بگیرید و عیب یابی کنید.
  • کارهای تکراری را خودکارسازی (Automate) کنید.

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

 

شروع ساده: حرکت در سیستم فایل

اولین قدم برای کار با ترمینال، یادگیری جابه جایی بین پوشه ها و مشاهده محتویات آن هاست:

  • دستور pwd: مسیر فعلی شما را در سیستم نمایش می دهد.

  • دستور ls: لیست فایل ها و پوشه های موجود در مسیر فعلی را نشان می دهد.

  • دستور cd: برای رفتن به پوشه ای دیگر استفاده می شود. برای مثال، cd Documents شما را وارد پوشه Documents می کند و cd .. شما را یک سطح به پوشه بالایی (والد) برمی گرداند.

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

مدیریت فایل ها و پوشه ها

پس از یادگیری مسیربابی، نوبت به ساخت و مدیریت فایل ها می رسد:

  • ساخت پوشه و فایل: برای ایجاد پوشه جدید از mkdir و برای ساخت فایل خالی از touch استفاده می شود.

  • کپی و جابه جایی: کپی کردن فایل ها با cp و جابه جایی یا تغییر نام آن ها با mv انجام می گیرد.

  • حذف: برای پاک کردن پوشه خالی از rmdir و برای حذف فایل یا پوشه غیرخالی از rm -r استفاده می شود.

هشدار: دستور rm فایل ها را بدون انتقال به سطل زباله و به صورت دائمی پاک می کند؛ بنابراین هنگام استفاده از آن (به ویژه با پارامتر r-) کاملاً هوشیار باشید.

جدول دستورات پایه:

دستور توضیح مثال
pwd نمایش مسیر فعلی pwd
ls لیست محتویات پوشه ls -la (نمایش همه با جزئیات)
cd تغییر پوشه cd /home/user/Downloads
mkdir ساخت پوشه mkdir project
touch ساخت فایل خالی touch notes.txt
cp کپی فایل یا پوشه cp file.txt backup/
mv جابجایی یا تغییر نام mv old.txt new.txt
rm حذف فایل یا پوشه rm -rf temp/
find جستجوی فایل find / -name "*.log"

مشاهده و بررسی فایل ها

پس از پیدا کردن فایل ها، نوبت به بررسی محتوای آن ها می رسد:

  • دستور cat: تمام محتوای فایل را یک جا در ترمینال چاپ می کند (برای فایل های کوتاه مناسب است).
  • دستور less: برای فایل های بزرگ گزینه ای عالی است؛ زیرا محتوا را صفحه بندی می کند. می توانید با کلیدهای جهت نما (Up/Down) پیمایش کنید و با فشردن کلید q خارج شوید.
  • دستورهای head و tail: به ترتیب برای دیدن چند خط ابتدا و انتهای فایل استفاده می شوند.

    نکته کاربردی: پارامتر tail -f filename محتوای فایل (مانند لاگ های سیستم) را به صورت زنده و لحظه ای نمایش می دهد.

     

جستجو در محتوای فایل ها با grep

برای پیدا کردن یک متن یا الگوی خاص در فایل ها، ابزار قدرتمند grep بهترین انتخاب است:

grep "error" server.log

دستور بالا تمام خطوطی از فایل server.log که کلمه error در آن ها وجود دارد را خروجی می دهد.

  • جستجوی گروهی: با اضافه کردن پارامتر r- (مانند grep -r "error" /path) می توانید کلمه مورد نظر را در تمام فایل های موجود در یک پوشه به صورت بازگشتی جستجو کنید.

 

ویرایش فایل های متنی

برای تغییر و ویرایش فایل ها در محیط متنی ترمینال، ویرایشگرهای مختلفی وجود دارد:

  • ویرایشگر Nano: گزینه ای بسیار ساده و مناسب برای افراد تازه کار. (برای ذخیره کلیدهای Ctrl+O و برای خروج Ctrl+X را فشار دهید).
  • ویرایشگر Vim: ابزاری فوق العاده قدرتمند، سریع و حرفه ای که البته منحنی یادگیری بالاتری دارد.

توصیه: اگر در ابتدای راه هستید، کار را با nano شروع کنید و پس از تسلط بر آن، به سراغ یادگیری vim بروید.

 

ویرایش فایل های متنی vim و nano

مدیریت فرآیندها: کنترل برنامه های در حال اجرا

در لینوکس هر برنامه یا دستوری که اجرا می شود، یک فرآیند (Process) نام دارد:

  • دستور ps: برای دیدن فرآیندهای جاری استفاده می شود. دستور ps aux تمام فرآیندهای فعال سیستم را با جزئیات کامل نمایش می دهد.
  • ابزارهای top و htop: نمای زنده و لحظه ای از میزان مصرف CPU و حافظه RAM به شما می دهند. ابزار htop نسخه رنگی، مدرن تر و کاربرپسندتر top است.
  • دستورهای kill و pkill: برای متوقف کردن یک فرآیند بر اساس شناسه آن (PID) استفاده می شوند.
    • مثال: kill 1234 فرآیند را به صورت معمولی می بندد و kill -9 1234 آن را به صورت اجباری (Force Kill) متوقف می کند.
    • دستور pkill: امکان بستن برنامه با استفاده از نام آن را فراهم می کند (مانند pkill firefox).
  • مدیریت پس زمینه و پیش زمینه:
    • کلیدهای Ctrl+Z: فرآیند در حال اجرا را موقتاً متوقف می کند.
    • دستور bg: فرآیند متوقف شده را به پس زمینه (Background) منتقل می کند.
    • دستور fg: فرآیند را دوباره به پیش زمینه (Foreground) برمی گرداند.
    • علامت &: با قرار دادن این علامت در انتهای هر دستور، برنامه مستقیم در پس زمینه اجرا می شود (مانند python app.py &).

 

مجوزها و دسترسی ها: تعیین سطح دسترسی کاربران

لینوکس یک سیستم عامل چندکاربره است و هر فایل یا پوشه به یک کاربر (User) و یک گروه (Group) مشخص تعلق دارد:

  • تغییر مالکیت: برای تغییر کاربر مالک از دستور chown و برای تغییر گروه مالک از دستور chgrp استفاده می شود.
  • تنظیم مجوزها (chmod): برای تغییر مجوزهای خواندن (r)، نوشتن (w) و اجرا (x) به کار می رود.
    • مثال ۱: chmod 755 script.sh دسترسی کامل را به مالک فایل و دسترسی خواندن/اجرا را به سایر کاربران می دهد.
    • مثال ۲: chmod +x script.sh فقط مجوز اجرا را به فایل اضافه می کند.
  • دسترسی مدیریتی با sudo: برای انجام کارهای سیستمی نیازمند دسترسی root (Superuser)، به جای وارد شدن مستقیم به حساب root، از sudo قبل از دستورها استفاده می شود (مانند sudo apt update یا sudo systemctl restart nginx).

هشدار: دستوراتی که با sudo اجرا می شوند دسترسی کاملی به تمام بخش های سیستم دارند؛ بنابراین آن ها را با دقت و احتیاط اجرا کنید.

 

کار با شبکه: اتصال، دانلود و انتقال داده

  • بررسی اتصال (ping): برای تست ارتباط شبکه با یک آدرس یا سرور مشخص استفاده می شود (مانند ping google.com).
  • دانلود و ارتباط با وب (wget و curl):
    • wget: گزینه ای ساده و عالی برای دانلود مستقیم فایل ها از اینترنت.
    • curl: ابزاری قدرتمند و منعطف برای ارسال درخواست های شبکه و تست APIها.
  • اتصال امن به سرور (ssh): برای اتصال از راه دور و کنترل امن یک سرور دیگر به کار می رود (مانند ssh user@192.168.1.10).
  • بررسی پورت ها و اتصالات (ss): ابزار جایگزین و مدرن netstat. برای مثال دستور ss -tulpn تمام پورت های فعال و در حال گوش به زنگ (Listening) را نشان می دهد.
  • تنظیمات شبکه و IP: برای بررسی آدرس های IP و وضعیت کارت های شبکه از دستور ip addr (جایگزین مدرن ifconfig) استفاده می شود.

 

کار با شبکه در linux: اتصال، دانلود و انتقال داده

مدیریت بسته ها: نصب و حذف نرم افزار

در لینوکس هر توزیع، مدیر بسته (Package Manager) اختصاصی خود را دارد که مدیریت نرم افزارها را انجام می دهد:

  • توزیع های اوبونتو و دبیان (apt):
    • به روزرسانی لیست و بسته ها: sudo apt update و sudo apt upgrade
    • نصب و حذف: sudo apt install firefox و sudo apt remove firefox
    • جستجو و اطلاعات: apt search <name> و apt show <name>
  • توزیع های فدورا و Red Hat از (dnf):
    • نصب، حذف و به روزرسانی: sudo dnf install ، sudo dnf remove و sudo dnf update
  • توزیع های آرچ لینوکس (pacman):
    • نصب و حذف: sudo pacman -S firefox و sudo pacman -R firefox

نکته: تسلط بر مدیر بسته توزیع مورد استفاده تان یکی از ضروری ترین مهارت ها در لینوکس است، زیرا بیشتر کارهای مدیریت سیستم از این طریق انجام می شود.

 

اطلاعات سیستم: بررسی وضعیت و مانیتورینگ

برای مشاهده اطلاعات کلی و عیب یابی سریع سیستم می توانید از دستورهای زیر استفاده کنید:

  • مشخصات هسته و سیستم: uname -a (نمایش نام هسته لینوکس و معماری سیستم)
  • بررسی فضای دیسک: df -h (نمایش فضای خالی و مصرف شده دیسک ها با فرمت خوانا)
  • حجم پوشه ها: du -sh * (محاسبه و نمایش حجم هر پوشه در مسیر فعلی)
  • وضعیت حافظه رم: free -h (نمایش میزان رم آزاد و مصرف شده)
  • زمان روشن بودن: uptime (مدت زمان روشن بودن سیستم و میزان بار پردازنده)
  • شناسایی کاربر و سیستم: hostname (نام کامپیوتر) و whoami (نام کاربر فعلی)

توصیه عیب یابی: هنگام کند شدن سیستم یا سرور، ابتدا سه دستور top ، free -h و df -h را اجرا کنید تا منبع اصلی مشکل (CPU، RAM یا پر شدن دیسک) را سریعاً تشخیص دهید.

 

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

ابزارهای پردازش متن در لینوکس فوق العاده قدرتمند هستند و با ترکیب آن ها می توان کارهای پیچیده را در چند ثانیه انجام داد:

  • ابزارهای پایه پردازش متن:
    • sort: مرتب سازی خطوط متنی.
    • uniq: حذف خطوط تکراری (معمولاً بعد از sort استفاده می شود).
    • wc: شمارش تعداد خطوط، کلمات و کاراکترها (مثلاً wc -l).
    • awk: زبانی قدرتمند برای پردازش و استخراج داده های ستونی.
    • sed: ویرایشگر جریانی متن برای جایگزینی و تغییر کلمات.
  • ترکیب دستورها با لوله (|): با استفاده از علامت | (Pipe) می توانید خروجی یک دستور را به عنوان ورودی به دستور دیگری بفرستید.
    • مثال: ls -l | grep "^-" | wc -l (شمارش تعداد دقیق فایل های معمولی در پوشه فعلی).
  • هدایت خروجی به فایل (> و >>):
    • علامت >: خروجی را در یک فایل جدید می نویسد (فایل قبلی بازنویسی می شود). مانند: echo "Hello" > file.txt
    • علامت >>: خروجی را به انتهای فایل موجود اضافه می کند. مانند: date >> log.txt

 

فشرده سازی و بایگانی: مدیریت فایل های آرشیو

برای بسته بندی و کاهش حجم فایل ها ابزارهای متنوعی در لینوکس وجود دارد:

  • کار با فایل های Tar.gz (رایج ترین فرمت لینوکس):
    • ایجاد فایل فشرده: tar -czvf archive.tar.gz folder
    • استخراج فایل فشرده: tar -xzvf archive.tar.gz
    • (راهنمای پارامترها: c = ساخت، x = استخراج، z = فشرده سازی gzip، v = نمایش جزئیات، f = مشخص کردن نام فایل)
  • کار با فایل های Zip:
    • ایجاد فایل زیپ: zip -r archive.zip folder
    • خروج از حالت زیپ: unzip archive.zip
  • فشرده سازی تک فایل با Gzip:
    • فشرده سازی: gzip file.txt (تبدیل به file.txt.gz)
    • خروج از فشرده سازی: gunzip file.txt.gz

 

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

نیازی به حفظ کردن تمام دستورها و پارامترهای آن ها نیست؛ ترمینال لینوکس ابزارهای راهنمای داخلی فوق العاده ای دارد:

  • دستور man: جامع ترین راهنمای دستورها. (مثلاً man ls دفترچه راهنمای کامل دستور ls را باز می کند).
  • سوئیچ --help: دریافت خلاصه سریع از راهنما و پارامترهای یک دستور. (مانند ls --help).
  • دستور apropos: جستجو در توضیحات دستورها زمانی که نام دستور را فراموش کرده اید. (مثلاً apropos network تمام دستورات مرتبط با شبکه را لیست می کند).

 

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

نکات و میانبرهای طلایی: افزایش سرعت و بهره وری

چند میانبر کیبورد در ترمینال وجود دارد که سرعت و کارایی شما را به طرز چشمگیری افزایش می دهد:

  • کلید Tab: تکمیل خودکار (Auto-completion) نام فایل ها، پوشه ها و دستورها. کافی است چند حرف اول را بنویسید و کلید Tab را فشار دهید.
  • کلیدهای Ctrl + R: جستجوی معکوس و سریع در تاریخچه دستورات قبلی.
  • کلیدهای Ctrl + C: متوقف کردن و لغو اجرای دستور جاری.
  • کلیدهای Ctrl + D: خروج از ترمینال یا اعلام پایان ورودی (EOF).
  • کلیدهای Ctrl + L: پاک سازی فوری صفحه ترمینال (معادل دستور clear).
  • دستور history: نمایش لیست تمام دستورهای اجراشده در گذشته.
  • میانبر !!: اجرای مجدد آخرین دستور تایپ شده.
    • مثال: اجرای sudo !! آخرین دستور را با دسترسی مدیریت (root) دوباره اجرا می کند.

 

نتیجه گیری: تمرین کنید و نترسید!

یادگیری دستورهای ترمینال لینوکس مانند یادگیری یک زبان جدید است؛ در ابتدا ممکن است سخت به نظر برسد، اما با تمرین روزانه به سرعت ملکه ذهن شما می شود.

  • بهترین روش یادگیری: یک ماشین مجازی (Virtual Machine) بسازید یا لینوکس را روی سیستم خود نصب کنید و هر روز چند دستور جدید را به صورت عملی امتحان کنید.
  • از خطا نترسید: پیام های خطای ترمینال راهنمای شما هستند و دائماً به شما می گویند چه مشکلی پیش آمده است.

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

ثبت رای
جستجو

سرفصل های مقاله

نظرات کاربران
دیدگاهتان را بنویسید

لطفا علاوه بر متن نظر، نام و ایمیل خود را نیز وارد کنید. (ایمیل شما منتشر نخواهد شد)