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

  • آموزش کامل دستورات لینوکس برای مدیران سرور (از مبتدی تا پیشرفته)

    آموزش کامل دستورات لینوکس برای مدیران سرور (از مبتدی تا پیشرفته)

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

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

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

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

     

     

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

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

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

    مثلا وقتی دستور زیر رو وارد می‌کنید:

    pwd

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

    در بیشتر سرورها، اتصال از طریق SSH انجام میشه. برای نمونه، از ویندوز یا لینوکس می‌تونید با دستور زیر به سرور وصل بشید:

    ssh root@192.0.6.43

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

     

     

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

    اولین چیزی که باید یاد بگیرید، جابه‌جایی بین مسیرهاست. در لینوکس همه چیز از مسیر اصلی “/” شروع میشه.

    برای مشاهده مسیر فعلی:
    pwd
    این دستور میگه که الان دقیقا داخل کدوم پوشه هستید.

    برای دیدن فایل‌ها و پوشه‌ها:
    ls

    نمایش جزئیات بیشتر:
    ls -l

    دیدن فایل‌های مخفی:
    ls -la

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

    رفتن به یک پوشه:
    cd /var/www

    برگشتن به پوشه قبلی:
    .. cd

    برای برگشتن به پوشه اصلی کاربر:
    ~ cd

    برای برگشت سریع به مسیر قبلی که داخلش بودید:
    – cd

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

     

    ساخت فایل و پوشه

    برای ساخت یک پوشه جدید از `mkdir` استفاده می‌کنیم:
    mkdir backups

    اگر بخواید چند پوشه تو در تو رو یک‌جا بسازید:
    mkdir -p /var/backups/website/daily

    ساخت یک فایل خالی:
    touch test.txt

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

     

    کپی، انتقال و تغییر نام فایل‌ها

    برای کپی کردن یک فایل از دستور cp استفاده می‌کنیم:
    cp config.php config-backup.php

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

    cp -r website website-backup

    انتقال فایل:
    /mv file.txt /var/backups

    دستور mv برای تغییر نام هم استفاده میشه:
    mv old-name.txt new-name.txt
    یعنی اگه مقصد یک نام جدید باشه، فایل تغییر نام پیدا می‌کنه و اگر مقصد یک پوشه باشه، فایل به اون پوشه منتقل میشه.

     

    حذف فایل و پوشه (با احتیاط کامل انجام بشه)

    برای حذف یک فایل:
    rm file.txt

    حذف یک پوشه خالی :
    rmdir empty-folder

    حذف پوشه همراه با تمام فایل‌های داخلش:
    rm -r folder-name

    گاهی دستور زیر رو هم می‌بینید:
    rm -rf folder-name

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

     

    مشاهده محتوای فایل‌ها

    برای دیدن کل محتوای یک فایل کوچک:
    cat file.txt

    اگر فایل طولانیه ، بهتره از less استفاده کنید:
    less /var/log/messages
    با کلیدهای جهت‌دار می‌تونید جابه‌جا بشید و با زدن q خارج بشید.

    دیدن چند خط اول فایل:
    head file.txt

    ۲۰ خط اول:
    head -n 20 file.txt

    و دیدن چند خط آخر:
    tail file.txt

    مشاهده لحظه‌ای تغییرات یک فایل لاگ:
    tail -f /var/log/messages
    این دستور برای مدیران سرور خیلی کاربردیه، چون می‌تونید همزمان با رخ دادن یک مشکل، پیام‌های جدید لاگ رو ببینید.
    برای خروج از حالت دنبال کردن فایل، کلیدهای Ctrl + C رو بزنید.

     

    ویرایش فایل‌ها در لینوکس

    یکی از ویرایشگرهای ساده لینوکس nano هست:
    nano /etc/hosts

     

    نکته: بعد از تغییر فایل، برای ذخیره کردن Ctrl + O و برای خروج Ctrl + X رو بزنید.

     

    ویرایشگر معروف دیگه vi یا vim هست:
    vi /etc/hosts

    برای شروع ویرایش داخل vi، کلید i رو بزنید. بعد از انجام تغییرات، کلید Esc رو بزنید و برای ذخیره و خروج بنویسید:
    wq:
    و برای خروج بدون ذخیره تغییرات:
    !q:

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

     

    پیدا کردن فایل‌ها و پوشه‌ها

    برای پیدا کردن یک فایل در کل سرور می‌تونید از find استفاده کنید:
    find / -name “wp-config.php” 2>/dev/null
    در این دستور، جست‌وجو از مسیر اصلی سرور شروع میشه. بخش 2</dev/null هم خطاهای دسترسی رو مخفی می‌کنه تا خروجی شلوغ نشه.

    برای جست‌وجوی فایل‌ها داخل یک مسیر مشخص:
    “find /var/www -name “*.php
    این دستور تمام فایل‌هایی که پسوند PHP دارن رو نمایش میده.

    جست‌وجوی متن داخل فایل‌ها از grep استفاده می‌کنیم:
    grep “error” application.log

    جست‌وجوی یک عبارت داخل تمام فایل‌های یک پوشه:
    /grep -R “database” /var/www

    اینکه بزرگی و کوچکی حروف مهم نباشه :
    /grep -Ri “error” /var/log

     

    بررسی فضای دیسک سرور

    برای مشاهده وضعیت کلی دیسک:
    df -h
    گزینه -h باعث میشه حجم‌ها به شکل قابل فهم، مثلا گیگابایت و مگابایت نمایش داده بشن.

    اگر فضای دیسک پر شده، می‌تونید حجم یک پوشه رو بررسی کنید:
    du -sh /var/log

    دیدن حجم پوشه‌های داخل یک مسیر:
    du -sh /var/* 2>/dev/null

    مرتب کردن پوشه‌ها بر اساس حجم:
    du -sh /var/* 2>/dev/null | sort -h
    این دستور کمک می‌کنه سریع‌تر بفهمید کدوم پوشه فضای بیشتری مصرف کرده.

     

    بررسی RAM و پردازنده

    برای مشاهده مقدار حافظه مصرف‌شده و آزاد:
    free -h
    در لینوکس ممکنه مقدار حافظه آزاد کم به نظر برسه، چون سیستم از بخشی از RAM برای کش استفاده می‌کنه.
    معمولا ستون available معیار بهتری برای بررسی حافظه قابل استفاده است.

    برای مشاهده پردازش‌های در حال اجرا:
    top

    ابزار خواناتری هم به نام htop وجود داره:
    htop
    اگر نصب نبود، در اوبونتو و دبیان میتونید نصبش کنید:
    apt install htop -y
    در AlmaLinux ،Rocky Linux یا CentOS:
    dnf install htop -y

    داخل top یا htop میتونید ببینید کدوم برنامه بیشتر از CPU یا RAM استفاده میکنه.

     

    مشاهده و متوقف کردن پردازش‌ها

    برای دیدن پردازش‌های مربوط به یک برنامه:
    ps aux | grep nginx

    هر پردازش یک شماره به نام PID داره . برای متوقف کردن عادی یک پردازش:
    kill 1234

    اگر پردازش متوقف نشد ، می‌شه با اجبار بستش:
    kill -9 1234

    نکته: استفاده از kill -9 باید آخرین گزینه باشه، چون برنامه فرصت ذخیره اطلاعات یا بستن درست فایل‌ها رو پیدا نمیکنه.

     

    برای بستن پردازش‌ها بر اساس نام:
    pkill nginx
    قبل از اجرای این دستور مطمئن بشید که واقعاً قصد متوقف کردن تمام پردازش‌های اون برنامه رو دارید.

     

    مدیریت سرویس‌ها با systemctl

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

    برای مشاهده وضعیت یک سرویس:
    systemctl status nginx

    راه‌اندازی سرویس:
    systemctl start nginx

    توقف سرویس:
    systemctl stop nginx

    ری‌استارت کردن:
    systemctl restart nginx

    اگر فقط فایل تنظیمات تغییر کرده و نمی‌خواید سرویس کامل قطع و وصل بشه:
    systemctl reload nginx

    اینکه سرویس بعد از روشن شدن سرور خودکار اجرا بشه:
    systemctl enable nginx

    غیرفعال کردن اجرای خودکار:
    systemctl disable nginx

    یکی از اشتباهات رایج اینه که بعد تغییر تنظیمات، سرویس بدون بررسی ری-استارت بشه.
    مثلا، قبل ری-استارت Nginx بهتره تنظیمات رو تست کنید:
    nginx -t
    اگر پیام موفقیت دیدید، بعد سرویس رو ری‌استارت کنید.

     

    خواندن لاگ‌های سیستم

    وقتی یک سرویس اجرا نمیشه، فقط ری-استارت کردن اون کافی نیست. باید ببینید چرا مشکل ایجاد شده.

    برای دیدن لاگ یک سرویس:
    journalctl -u nginx

    دیدن آخرین پیام‌ها:
    journalctl -u nginx -n 50

    مشاهده زنده لاگ‌ها:
    journalctl -u nginx -f

    دیدن خطاهای مهم از زمان روشن شدن سرور:
    journalctl -p err -b

    این دستورات مخصوصا وقتی یک سرویس در وضعیت failed قرار گرفته، خیلی کاربردی هستن.

     

    بررسی IP و وضعیت شبکه

    برای مشاهده IPهای سرور:
    ip addr

    نسخه کوتاه‌تر:
    ip a

    دیدن مسیر پیش‌فرض و Gateway:
    ip route

    تست ارتباط با یک IP یا دامنه:
    ping 8.8.8.8 یا ping google.com

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

    متوقف کردن پینگ:
    Ctrl + C

    و برای دیدن مسیر عبور بسته‌ها تا مقصد:
    traceroute google.com

    نکته: ممکنه traceroute به‌صورت پیش‌فرض نصب نباشه.

     

     

    بررسی پورت‌های باز و برنامه‌های در حال گوش دادن

    برای دیدن پورت‌هایی که روی سرور در حال استفاده هستن:
    ss -tulpn

    مثلا برای بررسی پورت 80:
    ‘ss -tulpn | grep ‘:80

    و برای بررسی پورت SSH:
    ‘ss -tulpn | grep ‘:22
    این دستور به شما میگه چه برنامه‌ای روی یک پورت مشخص در حال گوش دادنه.
    مثلا اگه سایت باز نمیشه، با بررسی پورت‌های 80 و 443 میتونید مطمئن بشید وب‌سرور اجرا شده یا نه.

     

    دانلود فایل با wget و curl

    برای دانلود یک فایل:
    wget https://example.com/file.zip

    مشخص کردن نام فایل خروجی:
    wget -O backup.zip https://example.com/file.zip

    با curl هم می‌تونید فایل دانلود کنید:
    curl -O https://example.com/file.zip

    بررسی پاسخ یک سایت بدون دانلود کامل محتوا:
    curl -I https://example.com
    این دستور اطلاعاتی مثل کد پاسخ، نوع سرور و ریدایرکت‌ها رو نمایش میده.

    و برای مشاهده محتوای پاسخ :
    curl https://example.com

     

    فشرده‌سازی و استخراج فایل‌ها

    برای ساخت فایل فشرده tar.gz:
    tar -czf backup.tar.gz /var/www/html

    استخراج اون:
    tar -xzf backup.tar.gz

    فشرده کردن با ZIP:
    zip -r website.zip website/

    و برای استخراج ZIP:
    unzip website.zip

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

     

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

    برای ساخت یک کاربر جدید:
    adduser ali

    در بعضی توزیع‌ها می‌تونید از این دستور هم استفاده کنید:
    useradd -m ali

    تعیین یا تغییر رمز عبور:
    passwd ali

    اضافه کردن کاربر به گروه مدیریتی در اوبونتو:
    usermod -aG sudo ali

    در AlmaLinux و Rocky Linux معمولاً گروه مدیریتی wheel هست:
    usermod -aG wheel ali

    دیدن اطلاعات یک کاربر:
    id ali

    حذف کاربر:
    userdel ali

    و برای حذف کاربر همراه با پوشه خانگی اون:
    userdel -r ali

    قبل از حذف کاربر ، مطمئن بشید فایل مهمی داخل پوشه شخصی اون باقی نمونده.

     

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

    هر فایل در لینوکس یک مالک ، یک گروه و یک سطح دسترسی داره.
    برای مشاهده این اطلاعات:
    ls -l

    تغییر مالک فایل:
    chown user:user file.txt

    تغییر مالکیت یک پوشه و تمام محتویاتش:
    chown -R user:user /var/www/example

    و تغییر سطح دسترسی:
    chmod 644 file.txt

    و برای پوشه‌ها معمولاً سطح دسترسی زیر رایجه:
    chmod 755 folder

    عدد 644 معمولا یعنی مالک اجازه خواندن و نوشتن داره و بقیه فقط می‌تونن فایل رو بخونن. عدد 755 هم برای پوشه‌ها اجازه ورود و خواندن رو فراهم میکنه.

    از دادن دسترسی 777 بدون دلیل خودداری کنید. این دسترسی به همه اجازه نوشتن میده و میتونه یک خطر امنیتی جدی ایجاد کنه .

     

    نصب و حذف برنامه‌ها

    در اوبونتو و دبیان ، برای به‌روزرسانی لیست بسته‌ها :
    apt update

    برای ارتقای برنامه‌ها :
    apt upgrade -y

    نصب یک برنامه :
    apt install nginx -y

    حذف برنامه :
    apt remove nginx -y

    در AlmaLinux ، Rocky Linux و سیستم‌های مشابه :
    dnf update -y

    برای نصب :
    dnf install nginx -y

    و برای حذف :
    dnf remove nginx -y

     

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

     

    اتصال و انتقال فایل با SSH و SCP

    برای اتصال به سرور:
    ssh root@192.0.2.10

    اگر SSH روی پورت متفاوتی اجرا میشه:
    ssh -p 2222 root@192.0.2.10

    انتقال یک فایل از سیستم خودتون به سرور:
    scp backup.zip root@192.0.2.10:/root/

    دانلود یک فایل از سرور :
    scp root@192.0.2.10:/root/backup.zip .

    برای انتقال یک پوشه کامل:
    scp -r website root@192.0.2.10:/var/www/

    نکته: نقطه “.” در لینوکس یعنی مسیر فعلی.

     

    انتقال حرفه‌ای فایل‌ها با rsync

    برای فایل‌ها و پوشه‌های بزرگ ، rsync معمولا از scp کاربردی‌تره، چون فقط بخش‌های تغییرکرده رو منتقل میکنه.

    rsync -avz website/ root@192.0.2.10:/var/www/website/

    گزینه a- ساختار و دسترسی فایل‌ها رو تا حد زیادی حفظ می‌کنه ، v- جزئیات رو نمایش می‌ده و -z اطلاعات رو هنگام انتقال فشرده میکنه.

    و برای دیدن نتیجه دستور بدون انتقال:
    rsync -avzn website/ root@192.0.2.10:/var/www/website/

    گزینه n- یک اجرای آزمایشی انجام میده. این روش قبل از انتقال یا حذف فایل‌های مهم خیلی مفیده.

     

    ترکیب دستورات با Pipe

    علامت | خروجی یک دستور رو به دستور بعدی می‌فرسته. مثلا:
    ps aux | grep mysql
    دستور اول تمام پردازش‌ها رو نمایش می‌ده و دستور دوم فقط خط‌هایی که شامل `mysql` هستن جدا می‌کنه .

    مثال دیگه:
    du -sh /var/* 2>/dev/null | sort -h
    اینجا حجم پوشه‌ها گرفته میشه و بعد بر اساس اندازه مرتب میشن.

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

     

    ذخیره خروجی دستورات داخل فایل

    برای ذخیره خروجی داخل یک فایل:
    df -h > disk-report.txt

    اگر فایل وجود داشته باشه، محتوای قبلی اون جایگزین میشه.

    اضافه کردن خروجی به انتهای فایل:
    date >> disk-report.txt

    ذخیره خطاها داخل یک فایل:
    command 2> errors.txt

    و برای ذخیره هم خروجی عادی و هم خطاها:
    command > output.txt 2>&1

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

     

    اجرای چند دستور پشت سر هم

    برای اجرای دستور دوم فقط وقتی دستور اول موفق بوده:
    apt update && apt upgrade -y

    اجرای دستور دوم در هر صورت:
    command1 ; command2

    و برای اجرای دستور دوم فقط وقتی دستور اول خطا داده:
    command1 || command2
    مثلا:
    systemctl restart nginx || systemctl status nginx

    اگر ری‌استارت Nginx ناموفق باشه، وضعیت سرویس نمایش داده میشه.

     

    زمان‌بندی کارها با Cron

    Cron برای اجرای خودکار دستورات در زمان مشخص استفاده میشه. مثلا میتونید بکاپ رو هر شب اجرا کنید.

    برای ویرایش برنامه‌های زمان‌بندی‌شده کاربر فعلی:
    crontab -e

    و برای دیدن Cronهای ثبت‌شده:
    crontab -l

    نمونه اجرای یک اسکریپت هر روز ساعت 3 صبح:
    0 3 * * * /root/backup.sh

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

     

    بررسی اطلاعات سیستم

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

    دیدن اطلاعات کامل‌تر سیستم عامل و کرنل:
    uname -a

    نسخه سیستم عامل:
    cat /etc/os-release

    مدت‌زمان روشن بودن سرور و مقدار Load:
    uptime

    و دیدن تاریخ و ساعت:
    date

    و برای بررسی تنظیمات زمانی سرور:
    timedatectl

     

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

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

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

    لازم نیست از روز اول تمام جزئیات ساختمان رو حفظ باشید؛ مهم اینه بدونید برای هر مشکل باید سراغ کدوم ابزار برید و قبل از انجام تغییرهای حساس، وضعیت فعلی رو بررسی کنید.

     

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

    اول بررسی کنید سرور روشن و قابل دسترسی هست یا نه:
    ping 192.0.2.10

    بعد ببینید وب‌سرور اجرا شده یا نه:
    systemctl status nginx

    پورت‌های سایت رو بررسی کنید:
    ss -tulpn | grep -E ‘:80|:443’

    وضعیت دیسک رو هم ببینید:
    df -h

    اگر سرویس خطا داشت، آخرین لاگ‌ها رو بررسی کنید:
    journalctl -u nginx -n 50

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

     

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

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

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

    برای تغییر فایل‌های مهم، بهتره اول یک نسخه پشتیبان بسازید:
    cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

    وقتی از راه دور تنظیمات شبکه یا SSH رو تغییر میدید، اتصال فعلی رو نبندید تا مطمئن بشید تنظیم جدید کار میکنه.

    یک اشتباه کوچک در این قسمت ممکنه دسترسی شما به سرور رو قطع کنه.

     

    نتیجه‌گیری

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

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

    برای شروع، دستورهایی مثل cd ،ls ،cp ،mv ،df ،free ،systemctl و journalctl رو تمرین کنید.

    بعد کم‌کم سراغ ابزارهایی مثل grep ،find ،rsync ،Pipe و Cron برید.

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

     

     


    سوالات متداول

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

    آیا همه دستورات روی اوبونتو و AlmaLinux یکسان هستن؟
    بیشتر فرمان‌های پایه مثل ls ،cd ،cp ،systemctl و journalctl یکسان هستن.
    تفاوت اصلی معمولا در مدیریت بسته‌هاست؛ اوبونتو از apt و AlmaLinux از dnf استفاده میکنه.

    چطور بفهمیم یک دستور چه کاری انجام میده؟
    می‌تونید قبل از اجرا از man یا گزینه help– استفاده کنید:
    man command یا command –help

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

    اگر یک سرویس اجرا نشد، اولین کار چیه؟
    اول با دستور زیر وضعیت سرویس رو ببینید:
    systemctl status service-name
    بعد آخرین لاگ‌های اون رو با این دستور بررسی کنید:
    journalctl -u service-name -n 50

    چطور بفهمیم فضای سرور چرا پر شده؟
    ابتدا با df -h پارتیشن پر رو پیدا کنید. بعد با du حجم پوشه‌ها رو بررسی کنید:
    du -sh /var/* 2>/dev/null | sort -h

    آیا میشه دستورها رو قبل از اجرای واقعی آزمایش کرد؟
    بعضی ابزارها گزینه آزمایشی دارن. مثلا در rsync می‌تونید از -n استفاده کنید.
    برای دستورهای حذف فایل معمولا حالت آزمایشی وجود نداره، پس باید مسیر رو با ls و pwd بررسی کنید.

    مهم‌ترین دستور برای پیدا کردن خطای سرور چیه؟
    یک دستور ثابت برای همه مشکلات وجود نداره، اما systemctl status و journalctl معمولا بهترین نقطه شروع برای بررسی سرویس‌های خراب هستن.