اگر با سرور لینوکس، هاست لینوکس، سرور مجازی یا حتی یک سایت وردپرسی سروکار دارید، دیر یا زود به ترمینال لینوکس نیاز پیدا میکنید. بسیاری از کارهایی که در ظاهر ساده بهنظر میرسند، مثل بررسی فضای دیسک، دیدن لاگ خطا، ریاستارت سرویس، تغییر سطح دسترسی فایل، تست اتصال شبکه، پیدا کردن فایلهای حجیم یا بکاپ گرفتن از یک پوشه، در لینوکس با چند دستور دقیق و سریع انجام میشوند.
در این مقاله، مهمترین دستورات لینوکس را بهصورت کاربردی و مخصوص نیاز مدیران سایت، مدیران سرور، کاربران 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 nginxDNF در AlmaLinux، Rocky Linux و Fedora
sudo dnf update -y
sudo dnf install nginx -y
sudo dnf remove nginxYUM در سیستمهای قدیمیتر
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/API | curl -I https://example.com |
dig | بررسی DNS | dig example.com MX |
ufw | مدیریت فایروال ساده | ufw status |
apt | مدیریت پکیج در Ubuntu/Debian | apt update |
dnf | مدیریت پکیج در AlmaLinux/Rocky | dnf 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، سرور اختصاصی یا زیرساخت آنلاین کار میکند. این دستورات به شما کمک میکنند فایلها را مدیریت کنید، لاگها را بخوانید، منابع سرور را بررسی کنید، سرویسها را ریاستارت کنید، پورتها را تست کنید، فایروال را کنترل کنید و در زمان بروز خطا، سریعتر به ریشه مشکل برسید.
لازم نیست همه دستورات را از روز اول حفظ باشید. کافی است بدانید برای هر کار از کدام ابزار استفاده میشود و بهمرور با تمرین، دستورات پرکاربرد برایتان عادی میشوند. اگر سرور شما میزبان سایت مهم، فروشگاه اینترنتی، سرویس ایمیل یا اپلیکیشن تجاری است، این مهارت مستقیماً روی پایداری، امنیت و سرعت عیبیابی شما اثر میگذارد.
برای کاربرانی که میخواهند کنترل بیشتری روی زیرساخت داشته باشند، استفاده از سرور مجازی ایران، سرور مجازی آلمان یا سرویسهای حرفهای هاست لینوکس میتواند نقطه شروع مناسبی برای مدیریت جدیتر و حرفهایتر سرور باشد.
