اگر با سرور لینوکس، هاست لینوکس، سرور مجازی یا حتی یک سایت وردپرسی سروکار دارید، دیر یا زود به ترمینال لینوکس نیاز پیدا می‌کنید. بسیاری از کارهایی که در ظاهر ساده به‌نظر می‌رسند، مثل بررسی فضای دیسک، دیدن لاگ خطا، ری‌استارت سرویس، تغییر سطح دسترسی فایل، تست اتصال شبکه، پیدا کردن فایل‌های حجیم یا بکاپ گرفتن از یک پوشه، در لینوکس با چند دستور دقیق و سریع انجام می‌شوند.

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

سطح: مقدماتی تا متوسط | مناسب برای: مدیران سایت، کاربران VPS، مدیران هاستینگ، توسعه‌دهندگان، کارشناسان پشتیبانی و افرادی که می‌خواهند مدیریت سرور لینوکس را جدی‌تر یاد بگیرند.

فهرست مطالب

چرا یادگیری دستورات لینوکس مهم است؟

در بسیاری از سرویس‌های میزبانی، مخصوصاً زمانی که از سرور مجازی ایران، سرور مجازی آلمان یا سرور اختصاصی استفاده می‌کنید، کنترل واقعی سرور از طریق SSH و خط فرمان انجام می‌شود. حتی اگر کنترل پنل‌هایی مثل cPanel، Plesk یا DirectAdmin داشته باشید، باز هم در شرایط بحرانی معمولاً ترمینال سریع‌تر، دقیق‌تر و قابل اعتمادتر است.

برای مثال، وقتی سایت کند شده، دیسک پر شده، سرویس وب‌سرور بالا نمی‌آید، دیتابیس پاسخ نمی‌دهد، یا فایروال اتصال‌ها را مسدود کرده است، چند دستور ساده مثل df، top، systemctl، journalctl، ss و tail می‌تواند مسیر عیب‌یابی را خیلی سریع روشن کند.

یادگیری دستورات لینوکس سه مزیت جدی دارد:

  • سرعت بیشتر در مدیریت سرور: کارهایی که در پنل‌ها چند مرحله دارند، در ترمینال با یک دستور انجام می‌شوند.
  • عیب‌یابی دقیق‌تر: لاگ‌ها، پردازش‌ها، پورت‌ها، سرویس‌ها و مصرف منابع را مستقیم می‌بینید.
  • امنیت بالاتر: دسترسی‌ها، کاربران، فایروال و سرویس‌ها را بهتر کنترل می‌کنید.

اگر در حال راه‌اندازی سایت، فروشگاه اینترنتی، اپلیکیشن، سرویس ایمیل یا پروژه SaaS هستید، آشنایی با دستورات پایه لینوکس فقط یک مهارت جانبی نیست؛ بخشی از سواد فنی ضروری برای نگهداری زیرساخت است.

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

قبل از اینکه سراغ لیست دستورات برویم، چند نکته مهم را در نظر داشته باشید:

  • لینوکس به بزرگی و کوچکی حروف حساس است؛ File.txt و file.txt دو فایل متفاوت‌اند.
  • بسیاری از دستورات با گزینه‌ها یا همان flags اجرا می‌شوند؛ مثل ls -lah.
  • اجرای دستور با sudo یعنی آن دستور با سطح دسترسی بالاتر اجرا می‌شود.
  • دستوراتی مثل rm، chmod، chown، dd و mkfs اگر اشتباه استفاده شوند، می‌توانند خسارت جدی ایجاد کنند.
  • قبل از اجرای دستورهای حساس روی سرور اصلی، مسیر و هدف دستور را دوباره بررسی کنید.

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

man ls
man chmod
man systemctl

برای خروج از صفحه راهنما، کلید q را بزنید.

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

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

۱. دستور pwd؛ دیدن مسیر فعلی

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

pwd

نمونه خروجی:

/home/example/public_html

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

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

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

ls

برای نمایش جزئیات بیشتر، فایل‌های مخفی و اندازه خواناتر:

ls -lah

کاربرد مهم در هاست و سرور:

ls -lah /home/example/public_html

این دستور برای بررسی فایل‌های سایت، فایل‌های مخفی مثل .htaccess و اندازه فایل‌ها بسیار کاربردی است.

۳. دستور cd؛ جابه‌جایی بین پوشه‌ها

با cd بین مسیرها حرکت می‌کنید.

cd /var/log
cd /home/example/public_html
cd ..

چند میانبر مهم:

cd ~      # رفتن به پوشه خانه کاربر
cd /      # رفتن به ریشه سیستم
cd -      # برگشت به مسیر قبلی

۴. دستور mkdir؛ ساخت پوشه جدید

برای ساخت پوشه:

mkdir backup

برای ساخت مسیر چندسطحی:

mkdir -p /home/example/backups/2026/05

گزینه -p باعث می‌شود اگر پوشه‌های میانی وجود نداشتند، ساخته شوند.

۵. دستور touch؛ ساخت فایل خالی یا تغییر زمان فایل

touch test.txt

در مدیریت سرور، گاهی برای ساخت سریع فایل تست، فایل لاگ خالی یا فایل flag از touch استفاده می‌شود.

۶. دستور cp؛ کپی کردن فایل و پوشه

کپی یک فایل:

cp config.php config.php.bak

کپی یک پوشه به‌صورت کامل:

cp -r public_html public_html_backup

قبل از تغییر فایل‌های مهم مثل کانفیگ وردپرس، Nginx، Apache یا PHP، بهتر است اول یک نسخه پشتیبان بگیرید.

cp wp-config.php wp-config.php.bak

۷. دستور mv؛ انتقال یا تغییر نام فایل

تغییر نام فایل:

mv old-name.txt new-name.txt

انتقال فایل به مسیر دیگر:

mv backup.tar.gz /home/example/backups/

در لینوکس، دستور mv هم برای انتقال و هم برای تغییر نام استفاده می‌شود.

۸. دستور rm؛ حذف فایل و پوشه

حذف یک فایل:

rm old.log

حذف پوشه و محتویات آن:

rm -rf cache/

هشدار مهم: دستور rm -rf بسیار خطرناک است. اگر مسیر را اشتباه وارد کنید، ممکن است فایل‌های مهم سایت یا حتی بخش‌هایی از سیستم حذف شوند. قبل از اجرای آن، همیشه خروجی pwd و مسیر هدف را بررسی کنید.

۹. دستور find؛ پیدا کردن فایل‌ها و پوشه‌ها

پیدا کردن فایل با نام مشخص:

find /home/example -name "error_log"

پیدا کردن فایل‌های حجیم‌تر از ۱۰۰ مگابایت:

find /home/example -type f -size +100M

پیدا کردن فایل‌های تغییرکرده در ۲۴ ساعت گذشته:

find /home/example/public_html -type f -mtime -1

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

دستورات مشاهده، جستجو و پردازش متن

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

۱۰. دستور cat؛ نمایش کامل محتوای فایل

cat /etc/os-release

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

۱۱. دستور less؛ مشاهده صفحه‌به‌صفحه فایل

less /var/log/syslog

در less می‌توانید با کلیدهای بالا و پایین حرکت کنید، با / جستجو کنید و با q خارج شوید.

۱۲. دستور head؛ دیدن ابتدای فایل

head -n 20 access.log

این دستور ۲۰ خط اول فایل را نمایش می‌دهد.

۱۳. دستور tail؛ دیدن انتهای فایل

tail -n 50 error.log

برای مشاهده زنده لاگ‌ها:

tail -f /var/log/nginx/error.log

این دستور برای عیب‌یابی خطاهای لحظه‌ای سایت، PHP، Nginx، Apache و سرویس‌ها بسیار مهم است.

۱۴. دستور grep؛ جستجو در متن

جستجو در یک فایل:

grep "error" /var/log/nginx/error.log

جستجوی بدون حساسیت به حروف کوچک و بزرگ:

grep -i "failed" /var/log/auth.log

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

grep -R "DB_PASSWORD" /home/example/public_html

برای بررسی لاگ‌های امنیتی، پیدا کردن خطاها و جستجو در فایل‌های کانفیگ، grep یکی از مهم‌ترین دستورات لینوکس است.

۱۵. دستور wc؛ شمارش خط، کلمه و کاراکتر

wc -l access.log

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

۱۶. دستور sort؛ مرتب‌سازی خروجی

sort names.txt

مرتب‌سازی عددی:

sort -n numbers.txt

۱۷. دستور uniq؛ حذف یا شمارش موارد تکراری

معمولاً همراه با sort استفاده می‌شود:

sort access_ips.txt | uniq -c | sort -nr

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

۱۸. دستور cut؛ جدا کردن بخش‌هایی از متن

برای گرفتن ستون اول از لاگ:

cut -d' ' -f1 access.log

مثلاً در لاگ وب‌سرور، ستون اول معمولاً IP کاربر است.

۱۹. دستور awk؛ پردازش پیشرفته‌تر متن

نمایش ستون اول و نهم لاگ:

awk '{print $1, $9}' access.log

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

۲۰. دستور sed؛ جایگزینی و ویرایش متنی

جایگزینی یک عبارت در فایل:

sed -i 's/old-domain.com/new-domain.com/g' file.txt

نکته: قبل از استفاده از sed -i روی فایل‌های مهم، حتماً بکاپ بگیرید.

دستورات سطح دسترسی و مالکیت فایل‌ها

بسیاری از خطاهای سایت، مخصوصاً در وردپرس، PHP، هاست اشتراکی و سرورهای لینوکسی، به مجوزهای فایل و مالکیت اشتباه مربوط می‌شوند. دستورهای chmod و chown در این بخش نقش اصلی دارند.

۲۱. دستور chmod؛ تغییر سطح دسترسی

نمونه رایج برای فایل‌ها:

chmod 644 file.php

نمونه رایج برای پوشه‌ها:

chmod 755 public_html

در بیشتر سایت‌های PHP و وردپرسی، الگوی رایج این است:

  • فایل‌ها: ۶۴۴
  • پوشه‌ها: ۷۵۵

برای اعمال روی همه پوشه‌ها:

find /home/example/public_html -type d -exec chmod 755 {} \;

برای اعمال روی همه فایل‌ها:

find /home/example/public_html -type f -exec chmod 644 {} \;

هشدار: استفاده از chmod 777 روی فایل‌ها و پوشه‌های سایت، از نظر امنیتی بسیار خطرناک است و فقط در شرایط بسیار خاص و موقت باید بررسی شود.

۲۲. دستور chown؛ تغییر مالک فایل یا پوشه

chown user:group file.txt

تغییر مالکیت یک مسیر به‌صورت بازگشتی:

chown -R example:example /home/example/public_html

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

۲۳. دستور stat؛ دیدن جزئیات دقیق فایل

stat wp-config.php

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

دستورات بررسی وضعیت سیستم و منابع سرور

وقتی سایت کند می‌شود یا سرور پاسخ نمی‌دهد، اولین قدم بررسی منابع است: CPU، RAM، دیسک، Load Average و I/O. این دستورات برای مانیتورینگ سریع سرور ضروری‌اند.

۲۴. دستور top؛ مشاهده زنده پردازش‌ها

top

با top می‌توانید ببینید کدام پردازش‌ها بیشترین CPU یا RAM را مصرف می‌کنند. برای خروج، کلید q را بزنید.

۲۵. دستور htop؛ نسخه خواناتر top

htop

اگر نصب نبود:

sudo apt install htop -y

یا در CentOS/AlmaLinux/Rocky:

sudo dnf install htop -y

۲۶. دستور free؛ بررسی مصرف RAM

free -h

گزینه -h خروجی را خواناتر می‌کند. برای بررسی کمبود حافظه، این دستور بسیار مهم است.

۲۷. دستور df؛ بررسی فضای دیسک

df -h

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

۲۸. دستور du؛ پیدا کردن پوشه‌های پرحجم

نمایش حجم یک مسیر:

du -sh /home/example

پیدا کردن پوشه‌های حجیم در مسیر فعلی:

du -sh * | sort -hr | head -20

این دستور برای پیدا کردن پوشه‌های پرمصرف مثل backup، cache، logs، tmp و uploads بسیار کاربردی است.

۲۹. دستور uptime؛ بررسی مدت روشن بودن سرور و Load Average

uptime

خروجی این دستور نشان می‌دهد سرور چند وقت است روشن است و میانگین بار سیستم در ۱، ۵ و ۱۵ دقیقه گذشته چقدر بوده است.

۳۰. دستور uname؛ دیدن اطلاعات کرنل و سیستم

uname -a

برای دیدن نسخه کرنل:

uname -r

این دستور برای بررسی وضعیت کرنل، مخصوصاً هنگام عیب‌یابی آپدیت‌ها یا مسائل امنیتی، کاربرد دارد.

دستورات مدیریت پردازش‌ها و سرویس‌ها

وب‌سرور، دیتابیس، PHP-FPM، SSH، Cron، Redis، Mail Server و بسیاری از اجزای سرور به‌صورت سرویس یا پردازش اجرا می‌شوند. برای مدیریت آن‌ها باید با دستورات این بخش آشنا باشید.

۳۱. دستور ps؛ مشاهده پردازش‌ها

ps aux

جستجو برای یک پردازش خاص:

ps aux | grep nginx
ps aux | grep mysql

۳۲. دستور kill؛ متوقف کردن پردازش با PID

kill 1234

اگر پردازش به دستور عادی پاسخ نداد:

kill -9 1234

نکته: از kill -9 فقط وقتی استفاده کنید که روش‌های عادی جواب نداده‌اند.

۳۳. دستور killall؛ متوقف کردن پردازش با نام

killall php

این دستور می‌تواند همه پردازش‌های یک نام را متوقف کند؛ پس با احتیاط استفاده شود.

۳۴. دستور systemctl؛ مدیریت سرویس‌ها

بررسی وضعیت سرویس:

systemctl status nginx

شروع سرویس:

sudo systemctl start nginx

ری‌استارت سرویس:

sudo systemctl restart nginx

فعال‌سازی سرویس در بوت:

sudo systemctl enable nginx

برای Apache:

sudo systemctl status apache2

برای MySQL/MariaDB:

sudo systemctl status mysql
sudo systemctl status mariadb

۳۵. دستور service؛ روش قدیمی‌تر مدیریت سرویس‌ها

service nginx status
service nginx restart

در بسیاری از توزیع‌های جدید، systemctl روش اصلی است؛ اما هنوز در برخی محیط‌ها دستور service هم استفاده می‌شود.

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

بخش بزرگی از مشکلات سرور به شبکه مربوط است: DNS درست Resolve نمی‌شود، پورت باز نیست، اتصال به مقصد قطع است، IP اشتباه تنظیم شده یا فایروال ارتباط را مسدود می‌کند.

۳۶. دستور ip؛ مشاهده و مدیریت IPها

ip a

نمایش Routeها:

ip route

در سیستم‌های جدید، دستور ip جایگزین مدرن‌تر ifconfig است.

۳۷. دستور ping؛ تست اتصال

ping 8.8.8.8
ping pouyasazan.org

اگر ping به IP کار می‌کند ولی به دامنه نه، احتمالاً مشکل از DNS است.

۳۸. دستور curl؛ تست HTTP، API و هدرها

دریافت هدرهای یک سایت:

curl -I https://example.com

تست پاسخ API:

curl https://api.example.com/status

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

curl -v https://example.com

برای بررسی وضعیت ریدایرکت، SSL، پاسخ وب‌سرور و API، curl یکی از مهم‌ترین ابزارهاست.

۳۹. دستور wget؛ دانلود فایل از اینترنت

wget https://example.com/file.zip

برای دانلود فایل روی سرور، دریافت اسکریپت نصب یا تست دسترسی HTTP کاربرد دارد.

۴۰. دستور ss؛ بررسی پورت‌ها و اتصال‌ها

نمایش پورت‌های Listen:

ss -tulpen

بررسی پورت ۸۰ و ۴۴۳:

ss -tulpen | grep -E ':80|:443'

این دستور برای بررسی اینکه Nginx، Apache، MySQL، SSH یا سرویس دیگری واقعاً روی پورت موردنظر گوش می‌دهد یا نه، بسیار مهم است.

۴۱. دستور nc؛ تست اتصال به پورت

nc -vz example.com 443
nc -vz 192.168.1.10 22

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

۴۲. دستور dig؛ بررسی DNS

dig example.com
dig example.com A
dig example.com MX
dig example.com TXT

برای بررسی رکوردهای DNS، مخصوصاً هنگام تغییر DNS، تنظیم ایمیل، بررسی SPF/DKIM/DMARC و عیب‌یابی دامنه، dig ابزار بسیار دقیقی است.

۴۳. دستور traceroute؛ بررسی مسیر شبکه

traceroute example.com

اگر نصب نبود:

sudo apt install traceroute -y

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

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

فایروال یکی از مهم‌ترین لایه‌های امنیت سرور است. باز بودن بی‌دلیل پورت‌ها می‌تواند ریسک حمله را بالا ببرد. برای سایت‌های عمومی معمولاً پورت‌های ۸۰ و ۴۴۳ باید باز باشند، اما پورت‌هایی مثل SSH، دیتابیس، Redis یا کنترل پنل باید محدود شوند.

۴۴. دستور ufw؛ مدیریت ساده فایروال در اوبونتو

فعال‌سازی UFW:

sudo ufw enable

اجازه به SSH:

sudo ufw allow OpenSSH

اجازه به HTTP و HTTPS:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

نمایش وضعیت:

sudo ufw status verbose

اگر سایتتان روی VPS میزبانی می‌شود و از SSL استفاده می‌کنید، مطمئن شوید پورت ۴۴۳ باز است. برای تهیه یا تمدید گواهی SSL هم می‌توانید از سرویس SSL پویاسازان استفاده کنید.

۴۵. دستور iptables؛ فایروال سطح پایین‌تر

نمایش قوانین:

sudo iptables -L -n -v

اجازه به پورت ۲۲:

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

نکته: کار با iptables حساس است. اگر از راه دور به سرور وصل هستید، اشتباه در تنظیم آن ممکن است دسترسی SSH شما را قطع کند.

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

در سرورهای لینوکسی، مدیریت درست کاربران و سطح دسترسی‌ها بسیار مهم است. استفاده دائمی از کاربر root، مخصوصاً برای کارهای روزمره، از نظر امنیتی توصیه نمی‌شود.

۴۶. دستور whoami؛ دیدن کاربر فعلی

whoami

۴۷. دستور id؛ دیدن شناسه کاربر و گروه‌ها

id
id username

۴۸. دستور adduser؛ ساخت کاربر جدید

sudo adduser ali

۴۹. دستور usermod؛ تغییر تنظیمات کاربر

افزودن کاربر به گروه sudo:

sudo usermod -aG sudo ali

در توزیع‌های RHEL/AlmaLinux/Rocky معمولاً گروه مدیریتی wheel است:

sudo usermod -aG wheel ali

۵۰. دستور passwd؛ تغییر رمز عبور

passwd

تغییر رمز عبور کاربر دیگر:

sudo passwd ali

برای امنیت بیشتر، بهتر است ورود SSH با رمز عبور را محدود کنید و از SSH Key استفاده کنید.

دستورات نصب و مدیریت پکیج‌ها

برای نصب، آپدیت و حذف نرم‌افزارها در لینوکس از Package Manager استفاده می‌شود. نوع Package Manager به توزیع لینوکس بستگی دارد.

APT در Ubuntu و Debian

به‌روزرسانی لیست پکیج‌ها:

sudo apt update

ارتقای پکیج‌های نصب‌شده:

sudo apt upgrade -y

نصب یک پکیج:

sudo apt install nginx -y

حذف یک پکیج:

sudo apt remove nginx

جستجوی پکیج:

apt search nginx

DNF در AlmaLinux، Rocky Linux و Fedora

sudo dnf update -y
sudo dnf install nginx -y
sudo dnf remove nginx

YUM در سیستم‌های قدیمی‌تر

sudo yum update -y
sudo yum install httpd -y

اگر از هاست لینوکس استفاده می‌کنید، معمولاً به Package Manager دسترسی مستقیم ندارید؛ اما در سرور مجازی و اختصاصی، مدیریت پکیج‌ها یکی از وظایف اصلی شماست.

دستورات فشرده‌سازی، بکاپ و انتقال فایل

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

دستور tar؛ آرشیو و فشرده‌سازی

ساخت فایل tar.gz از یک پوشه:

tar -czvf public_html_backup.tar.gz public_html/

استخراج فایل tar.gz:

tar -xzvf public_html_backup.tar.gz

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

tar -czvf site-backup-$(date +%F).tar.gz /home/example/public_html

دستور zip و unzip

فشرده‌سازی:

zip -r backup.zip public_html/

استخراج:

unzip backup.zip

دستور scp؛ انتقال فایل با SSH

انتقال فایل از سرور به سیستم محلی:

scp [email protected]:/home/user/backup.tar.gz ./

انتقال فایل از سیستم محلی به سرور:

scp backup.tar.gz [email protected]:/home/user/

دستور rsync؛ انتقال و همگام‌سازی حرفه‌ای

rsync -avz public_html/ [email protected]:/home/example/public_html/

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

دستور sftp؛ انتقال فایل امن

sftp [email protected]

در بسیاری از سناریوها، SFTP جایگزین امن‌تری برای FTP قدیمی است.

دستورات لاگ‌خوانی و عیب‌یابی سرور

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

journalctl؛ مشاهده لاگ‌های systemd

دیدن خطاهای اخیر:

journalctl -xe

دیدن لاگ یک سرویس خاص:

journalctl -u nginx

مشاهده زنده لاگ سرویس:

journalctl -u nginx -f

دیدن لاگ‌های بوت فعلی:

journalctl -b

بررسی لاگ‌های Nginx

tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log

بررسی لاگ‌های Apache

در Ubuntu/Debian:

tail -f /var/log/apache2/error.log

در AlmaLinux/Rocky/CentOS:

tail -f /var/log/httpd/error_log

بررسی لاگ ورودهای SSH

در Ubuntu/Debian:

grep "Failed password" /var/log/auth.log

در AlmaLinux/Rocky:

grep "Failed password" /var/log/secure

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

دستورات خطرناک لینوکس که باید با احتیاط اجرا شوند

بعضی دستورات لینوکس اگر اشتباه اجرا شوند، می‌توانند باعث حذف اطلاعات، قطع دسترسی یا خرابی سیستم شوند. این بخش را جدی بگیرید.

rm -rf

rm -rf /path/to/directory

این دستور مسیر هدف را بدون پرسش حذف می‌کند. هرگز آن را با مسیر نامطمئن اجرا نکنید.

chmod -R

chmod -R 777 /home/example/public_html

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

chown -R

chown -R root:root /home/example/public_html

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

dd

dd if=/dev/zero of=/dev/sda

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

mkfs

mkfs.ext4 /dev/sdb

این دستور فایل‌سیستم جدید می‌سازد و اطلاعات قبلی پارتیشن را از بین می‌برد. فقط وقتی دقیقاً می‌دانید چه می‌کنید از آن استفاده کنید.

جدول خلاصه دستورات پرکاربرد لینوکس

دستورکاربردنمونه
pwdنمایش مسیر فعلیpwd
lsنمایش فایل‌ها و پوشه‌هاls -lah
cdورود به مسیر دیگرcd /var/log
cpکپی فایل یا پوشهcp file file.bak
mvانتقال یا تغییر نامmv old new
rmحذف فایل یا پوشهrm file.txt
findجستجوی فایلfind . -name "*.log"
grepجستجو در متنgrep error file.log
tailدیدن انتهای فایلtail -f error.log
chmodتغییر سطح دسترسیchmod 644 file.php
chownتغییر مالکیتchown user:user file
dfبررسی فضای دیسکdf -h
duبررسی حجم پوشه‌هاdu -sh *
topبررسی مصرف منابعtop
systemctlمدیریت سرویس‌هاsystemctl status nginx
journalctlمشاهده لاگ سرویس‌هاjournalctl -u nginx -f
ipمشاهده تنظیمات شبکهip a
ssبررسی پورت‌هاss -tulpen
curlتست HTTP/APIcurl -I https://example.com
digبررسی DNSdig example.com MX
ufwمدیریت فایروال سادهufw status
aptمدیریت پکیج در Ubuntu/Debianapt update
dnfمدیریت پکیج در AlmaLinux/Rockydnf update
tarآرشیو و فشرده‌سازیtar -czvf backup.tar.gz folder/
rsyncهمگام‌سازی فایل‌هاrsync -avz source/ dest/

چند مثال واقعی برای مدیران سایت و VPS

پیدا کردن فایل‌های حجیم در هاست یا سرور

du -sh * | sort -hr | head -20

این دستور را در مسیرهایی مثل /home/user یا /var/log اجرا کنید تا سریع‌تر بفهمید کدام پوشه‌ها دیسک را پر کرده‌اند.

بررسی اینکه وب‌سرور روی پورت ۸۰ و ۴۴۳ فعال است یا نه

ss -tulpen | grep -E ':80|:443'

اگر سایت با HTTP یا HTTPS باز نمی‌شود، این دستور یکی از اولین تست‌های مهم است.

دیدن زنده خطاهای Nginx

tail -f /var/log/nginx/error.log

بررسی وضعیت سرویس MySQL

systemctl status mysql

یا:

systemctl status mariadb

پیدا کردن IPهایی که بیشترین درخواست را زده‌اند

awk '{print $1}' access.log | sort | uniq -c | sort -nr | head

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

بکاپ سریع از پوشه سایت

tar -czvf site-backup-$(date +%F).tar.gz /home/example/public_html

بررسی لاگ تلاش‌های ناموفق SSH

grep "Failed password" /var/log/auth.log

اگر تعداد تلاش‌ها زیاد است، باید امنیت SSH، فایروال، Fail2Ban و محدودسازی IP را جدی‌تر بررسی کنید.

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

  • قبل از اجرای دستورهای حذف یا تغییر مالکیت، مسیر فعلی را با pwd بررسی کنید.
  • قبل از ویرایش فایل‌های مهم، از آن‌ها بکاپ بگیرید.
  • برای کارهای روزمره از کاربر root استفاده نکنید.
  • دسترسی SSH را با کلید امن‌تر کنید و ورود مستقیم root را ببندید.
  • لاگ‌ها را دوره‌ای بررسی کنید، مخصوصاً لاگ SSH، وب‌سرور و دیتابیس.
  • دیسک سرور را مانیتور کنید؛ پر شدن دیسک یکی از رایج‌ترین دلایل اختلال سرویس‌هاست.
  • پکیج‌های سیستم را به‌روز نگه دارید، مخصوصاً روی سرورهای عمومی.
  • دستورات خطرناک را از اینترنت کپی و بدون درک اجرا نکنید.

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

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

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

برای شروع بهتر است با دستورهای pwd، ls، cd، cp، mv، rm، cat، less، grep، tail، df، du، top، chmod، chown و systemctl شروع کنید.

آیا برای مدیریت سایت وردپرسی باید لینوکس بلد باشیم؟

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

تفاوت apt و dnf چیست؟

apt در توزیع‌های Debian و Ubuntu استفاده می‌شود، اما dnf در توزیع‌هایی مثل Fedora، AlmaLinux و Rocky Linux کاربرد دارد. هر دو برای نصب، حذف و به‌روزرسانی پکیج‌ها استفاده می‌شوند.

چطور بفهمم دیسک سرور پر شده است؟

با دستور df -h می‌توانید وضعیت فضای دیسک را ببینید. برای پیدا کردن پوشه‌های حجیم هم از du -sh * | sort -hr | head استفاده کنید.

چطور لاگ خطای سایت را ببینم؟

اگر از Nginx استفاده می‌کنید، معمولاً لاگ خطا در /var/log/nginx/error.log است. اگر از Apache استفاده می‌کنید، در Ubuntu مسیر رایج /var/log/apache2/error.log و در AlmaLinux/Rocky مسیر رایج /var/log/httpd/error_log است.

آیا chmod 777 برای رفع خطا خوب است؟

خیر. chmod 777 ممکن است موقتاً یک خطای دسترسی را پنهان کند، اما از نظر امنیتی بسیار خطرناک است. بهتر است مالکیت و سطح دسترسی درست فایل‌ها و پوشه‌ها را اصلاح کنید.

برای تست باز بودن پورت در لینوکس چه دستوری استفاده کنم؟

برای بررسی پورت‌های فعال روی سرور از ss -tulpen و برای تست اتصال به یک پورت از بیرون یا مقصد دیگر از nc -vz host port استفاده کنید.

بهترین دستور برای دیدن مصرف CPU و RAM چیست؟

برای مشاهده زنده پردازش‌ها از top یا htop استفاده کنید. برای بررسی حافظه هم دستور free -h مناسب است.

جمع‌بندی

یادگیری دستورات لینوکس یکی از مهم‌ترین مهارت‌ها برای هر کسی است که با سایت، هاست، VPS، سرور اختصاصی یا زیرساخت آنلاین کار می‌کند. این دستورات به شما کمک می‌کنند فایل‌ها را مدیریت کنید، لاگ‌ها را بخوانید، منابع سرور را بررسی کنید، سرویس‌ها را ری‌استارت کنید، پورت‌ها را تست کنید، فایروال را کنترل کنید و در زمان بروز خطا، سریع‌تر به ریشه مشکل برسید.

لازم نیست همه دستورات را از روز اول حفظ باشید. کافی است بدانید برای هر کار از کدام ابزار استفاده می‌شود و به‌مرور با تمرین، دستورات پرکاربرد برایتان عادی می‌شوند. اگر سرور شما میزبان سایت مهم، فروشگاه اینترنتی، سرویس ایمیل یا اپلیکیشن تجاری است، این مهارت مستقیماً روی پایداری، امنیت و سرعت عیب‌یابی شما اثر می‌گذارد.

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

منابع پیشنهادی برای مطالعه بیشتر