
خط فرمان لینوکس یا همان ترمینال (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بروید.

مدیریت فرآیندها: کنترل برنامه های در حال اجرا
در لینوکس هر برنامه یا دستوری که اجرا می شود، یک فرآیند (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) استفاده می شود.

مدیریت بسته ها: نصب و حذف نرم افزار
در لینوکس هر توزیع، مدیر بسته (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) بسازید یا لینوکس را روی سیستم خود نصب کنید و هر روز چند دستور جدید را به صورت عملی امتحان کنید.
- از خطا نترسید: پیام های خطای ترمینال راهنمای شما هستند و دائماً به شما می گویند چه مشکلی پیش آمده است.
به مرور زمان متوجه خواهید شد که ترمینال نه تنها ترسناک نیست، بلکه لذت بخش ترین و قدرتمندترین بخش لینوکس است. این دستورات پایه فقط شروع ماجرا هستند؛ پس از تسلط بر آن ها می توانید قدم به دنیای اسکریپت نویسی، اتوماسیون و مدیریت سرور بگذارید. دنیای لینوکس بی نهایت است و ترمینال، دروازه ورود به آن. موفق باشید!