دستورات لینوکس که هر برنامه نویس بک اند باید بداند
توسعه بکاند (Backend Development) صرفاً به نوشتن کد تمیز خلاصه نمیشود. چه در حال ساخت API، مدیریت پایگاهداده، دپلوی (Deploy) برنامهها یا رفع اشکال (Debugging) در محیط پروداکشن باشید، بخش زیادی از زمان خود را صرف کار با سرورهای لینوکس خواهید کرد.
لینوکس زیربنای بخش اعظمی از سرورهای ابری، کانتینرها (Docker) و زیرساختهای سازمانی است. تسلط بر دستورات کاربردی لینوکس میتواند به طرز چشمگیری بهرهوری شما را افزایش داده، سرعت عیبیابی را بالا ببرد و شما را به یک توسعهدهنده بکاند مسلطتر تبدیل کند.
در این راهنمای جامع، به بررسی ضروریترین دستورات لینوکس برای برنامه نویسان بک اند همراه با مثالهای عملی و سناریوهای واقعی میپردازیم.
چرا برنامه نویسان بک اند باید لینوکس یاد بگیرند؟
اکثر برنامههای کاربردی سمت سرور روی سرورهای مبتنی بر لینوکس دپلوی میشوند. شرکتها به دلیل پایداری، امنیت، سبک بودن و قابلیت سفارشیسازی بالا، لینوکس را انتخاب میکنند.
با تسلط بر دستورات ترمینال لینوکس میتوانید:
برنامهها را به شکلی کارآمد دپلوی (Deploy) کنید.
خطاهای محیط پروداکشن را بهسرعت دیباگ کنید.
فایلها و دایرکتوریها را به راحتی مدیریت کنید.
عملکرد و منابع سیستم (Performance) را مانیتور کنید.
بهصورت تعاملی با داکر (Docker) و کوبرنتیس (Kubernetes) کار کنید.
با استفاده از شل اسکریپتها (Shell Scripts)، فرآیندها را اتوماتیک کنید.
در ادامه، ۳۰ دستور حیاتی لینوکس را بررسی میکنیم.
لیست کامل دستورات کاربردی لینوکس برای توسعه بک اند
۱. دستور pwd – نمایش مسیر فعلی (Print Working Directory)
دستور pwd موقعیت دقیق شما را در سیستمفایل نمایش میدهد.
pwd
خروجی نمونه:
/home/backend/projects/api
کاربرد: این دستور هنگام پیمایش در ساختارهای پیچیدهی دایرکتوریها بسیار مفید است.
۲. دستور ls – مشاهده لیست فایلها و پوشهها
برای دیدن فایلها و پوشههای داخل دایرکتوری فعلی استفاده میشود.
ls
سوئیچهای پرکاربرد:
ls -l: نمایش اطلاعات کامل (دسترسیها، حجم، تاریخ و...)ls -a: نمایش تمام فایلها، شامل فایلهای مخفی (Hidden)ls -lh: نمایش حجم فایلها به فرمت خوانا (KB, MB, GB)
مثال:
drwxr-xr-x app
-rw-r--r-- package.json
۳. دستور cd – جابهجایی بین پوشهها (Change Directory)
برای جابهجایی در دایرکتوریها استفاده میشود.
cd project
بازگشت به یک پوشه قبل:
cd ..
رفتن به پوشه اصلی کاربر (Home):
cd ~
بازگشت به پوشه قبلی که در آن بودید:
cd -
۴. دستور mkdir – ساخت پوشه جدید
برای ساخت یک دایرکتوری جدید:
mkdir logs
ساخت پوشههای تو در تو به صورت همزمان (Nested Directories):
mkdir -p app/storage/uploads
۵. دستور rm – حذف فایلها و پوشهها
حذف فایل:
rm file.txt
حذف پوشه و محتویات آن به صورت بازگشتی (Recursive):
rm -r folder
حذف اجباری پوشه و فایلها بدون پرسش:
rm -rf folder
⚠️ هشدار: هنگام استفاده از
rm -rfبسیار احتیاط کنید؛ زیرا فایلها بدون تأییدیه و بهصورت دائمی حذف میشوند.
۶. دستور cp – کپی کردن فایلها و پوشهها
کپی کردن فایل:
cp config.env config.backup
کپی کردن پوشه و تمام محتویات آن:
cp -r uploads backup
۷. دستور mv – جابهجایی یا تغییر نام فایل
تغییر نام فایل (Rename):
mv old.txt new.txt
انتقال فایل به مسیر دیگر (Move):
mv app.log /var/logs/
۸. دستور cat – مشاهده محتوای فایل
خواندن سریع فایلهای متنی کمحجم:
cat .env
ادغام و ترکیب چند فایل با هم:
cat file1.txt file2.txt
۹. دستور less – خواندن فایلهای متنی بزرگ
برای مشاهده فایلهای لوگ (Log) سنگین بدون درگیر کردن حافظه سیستم:
less server.log
کلیدهای میانبر کاربردی:
Space→ صفحه بعدیb→ صفحه قبلیkeyword/→ جستجوی عبارت مورد نظرq→ خروج از محیط کمتر (Quit)
۱۰. دستور tail – مانیتورینگ آنلاین لاگها
مشاهده خطوط پایانی فایل لوگ:
tail server.log
مشاهده زنده و لحظهای تغییرات لاگ (Live Stream):
tail -f server.log
کاربرد: ابزاری فوقالعاده حیاتی برای دیباگ کردن برنامهها در محیط پروداکشن به صورت زنده.
۱۱. دستور grep – جستجوی متن داخل فایلها
جستجوی یک عبارت خاص در فایل:
grep "ERROR" server.log
جستجو بدون حساسیت به حروف بزرگ و کوچک (Case-insensitive):
grep -i error server.log
جستجوی بازگشتی در تمام فایلهای یک پوشه:
grep -r "database" .
۱۲. دستور find – جستجوی فایلها در سیستم
جستجو بر اساس نام فایل:
find . -name "*.log"
جستجوی فقط پوشهها:
find . -type d
یافتن فایلهایی که در ۲۴ ساعت گذشته تغییر کردهاند:
find . -mtime -1
۱۳. دستور chmod – تغییر سطح دسترسی فایلها (Permissions)
قابل اجرا کردن یک فایل اسکریپت (Executable):
chmod +x deploy.sh
تغییر دسترسی با کدهای عددی:
chmod 755 script.sh
۱۴. دستور chown – تغییر مالکیت فایل (Ownership)
sudo chown ubuntu:www-data app
کاربرد: بسیار پرکاربرد هنگام کانفیگ و تنظیم وبسرورها مانند Nginx و Apache.
۱۵. دستور ps – مشاهده پروسههای در حال اجرا
مشاهده تمام پروسههای فعال سیستم:
ps aux
جستجوی یک پروسه خاص (مثلاً برنامه Node.js):
ps aux | grep node
۱۶. دستور kill – متوقف کردن پروسهها
توقف پروسه با استفاده از شناسه آن (PID):
kill 3456
توقف اجباری و فوری پروسه (Force Kill):
kill -9 3456
۱۷. دستور top – مانیتورینگ منابع سیستم
نمایش زنده وضعیت منابع سرور:
top
اطلاعات پردازشی شامل:
میزان مصرف CPU
میزان مصرف رم (RAM)
لیست پروسههای فعال
میانگین بار سیستم (Load Average)
نکته: این دستور معمولاً اولین ابزاری است که توسعهدهندگان هنگام کندی سرور از آن استفاده میکنند.
۱۸. دستور df – بررسی فضای دیسک (Disk Space)
df -h
خروجی نمونه:
Filesystem Size Used Avail Use%
/dev/sda1 40G 25G 13G 66%
کاربرد: عالی برای مواقعی که سرور به دلیل پر شدن ناگهانی حافظه دچار مشکل شده است.
۱۹. دستور du – بررسی حجم پوشهها
مشاهده حجم یک پوشه مشخص:
du -sh logs
یافتن حجیمترین پوشهها در مسیر فعلی:
du -h --max-depth=1
۲۰. دستور free – بررسی میزان حافظه رم (RAM)
free -h
اطلاعات خروجی:
کل رم (Total RAM)
رم مصرفشده (Used RAM)
رم آزاد (Free RAM)
حافظه Swap
۲۱. دستورات wget و curl – ارسال درخواستهای HTTP و دانلود
دانلود یک فایل از اینترنت:
wget https://example.com/file.zip
تست یک API (درخواست GET):
curl https://api.example.com/users
ارسال درخواست POST به API:
curl -X POST https://api.example.com/login \
-H "Content-Type: application/json" \
-d '{"email":"admin@example.com"}'
کاربرد: توسعهدهندگان بکاند بهصورت روزمره از curl برای تست Endpointهای وبسرویس استفاده میکنند.
۲۲. دستور ssh – اتصال امن به سرور ریموت
ssh ubuntu@192.168.1.10
پروتکل SSH روش استاندارد و امن برای اتصال به ترمینال سرورهای لینوکسی از راه دور است.
۲۳. دستور scp – انتقال امن فایل بین سرور و کامپیوتر
آپلود فایل به سرور:
scp app.zip ubuntu@server:/home/ubuntu/
دانلود فایل از سرور به کامپیوتر شخصی:
scp ubuntu@server:/var/log/app.log .
۲۴. دستور history – مشاهده تاریخچه دستورات
مشاهده لیست دستورات قبلی تایپشده:
history
اجرای مجدد دستور شماره ۱۲۰ از تاریخچه:
!120
جستجوی سریع در دستورات قبلی: کلیدهای ترکیب Ctrl + R را فشار داده و عبارت مورد نظر را تایپ کنید.
۲۵. دستور systemctl – مدیریت سرویسهای سیستم
شروع به کار یک سرویس (Start):
sudo systemctl start nginx
متوقف کردن سرویس (Stop):
sudo systemctl stop nginx
راهاندازی مجدد (Restart):
sudo systemctl restart nginx
بررسی وضعیت سرویس (Status):
sudo systemctl status nginx
کاربرد: ابزاری حیاتی برای مدیریت وبسرورها، پایگاههای داده و سرویسهای پروداکشن.
۲۶. دستور journalctl – مشاهده لوگهای سیستم (Systemd)
مشاهده لاگهای مربوط به یک سرویس خاص:
journalctl -u nginx
مشاهده زنده لاگهای سرویس:
journalctl -f
۲۷. دستور tar – فشردهسازی و استخراج فایلها (Archive)
ایجاد یک فایل آرشیو فشرده (.tar.gz):
tar -czf backup.tar.gz project/
استخراج و باز کردن فایل آرشیو:
tar -xzf backup.tar.gz
۲۸. دستورات zip و unzip
فشردهسازی فایلها به فرمت ZIP:
zip project.zip app/
خارج کردن از حالت فشرده:
unzip project.zip
۲۹. ویرایشگرهای nano و vim – ویرایش فایلها در ترمینال
ویرایش سریع فایل با ویرایشگر ساده Nano:
nano config.env
ویرایش فایل با ویرایشگر حرفهای Vim:
vim server.js
نکته: داشتن مهارت پایه در کار با این ویرایشگرها هنگام تغییر کانفیگها روی سرور ریموت بسیار زمانخرید است.
۳۰. دستور echo – چاپ یا نوشتن متن در فایل
چاپ متن در خروجی ترمینال:
echo "Hello Linux"
اضافه کردن یک متن یا متغیر به انتهای فایل (Append):
echo "API_KEY=12345" >> .env
میانبرهای جادویی برای افزایش سرعت کار در لینوکس
این میانبرهای کیبورد سرعت کار شما را در ترمینال دوچندان میکنند:
Ctrl + C→ متوقف کردن دستور در حال اجراCtrl + Z→ معلق کردن (Suspend) پروسه جاریCtrl + L→ پاکسازی صفحه ترمینال (معادل دستورclear)Tab→ تکمیل خودکار (Auto-complete) دستورات و مسیرها!!→ تکرار و اجرای دقیقاً آخرین دستور تایپشده
جمعبندی
لینوکس فراتر از یک سیستمعامل ساده است؛ لینوکس ستون فقرات توسعه بکاند مدرن محسوب میشود. از مدیریت سرورها و مانیتورینگ برنامهها گرفته تا دپلوی کدها و عیبیابی در پروداکشن، مهارت در لینوکس برای هر توسعهدهنده بکاند ضروری است.
نیازی نیست صدها دستور را یکشبه حفظ کنید. با دستورات پایهای این راهنما شروع کرده و آنها را بهصورت روزمره تمرین کنید. بهمرور زمان، این دستورات ملکه ذهن شما شده و باعث افزایش سرعت، کارایی و اعتمادبهنفس شما در مدیریت سیستمهای واقعی خواهند شد.
سوالات متداول (FAQs)
۱. کدام دستورات لینوکس برای افراد مبتدی اولویت دارند؟
بهتر است کار خود را با دستورات پایه مثل pwd ،ls ،cd ،mkdir ،cp ،mv ،rm ،cat ،grep ،find ،chmod و ssh شروع کنید. این موارد بخش اعظم نیازهای روزمره شما را پوشش میدهند.
۲. چرا برنامه نویسان بک اند به لینوکس نیاز دارند؟
زیرا اکثر وبسرورها، پلتفرمهای ابری (Cloud)، کانتینرهای داکر و محیطهای دپلوی روی لینوکس اجرا میشوند. تسلط بر لینوکس به شما کمک میکند برنامهها را بهطور موثر مدیریت و عیبیابی کنید.
۳. آیا یادگیری لینوکس برای برنامه نویسی بک اند الزامی است؟
اگرچه میتوانید برنامهنویسی را روی Windows یا macOS انجام دهید، اما یادگیری لینوکس شدیداً توصیه میشود؛ چرا که محیطهای اجرای واقعی (Production Environments) عمدتاً مبتنی بر لینوکس هستند.
۴. بهترین دستورات لینوکس برای دیباگ (Debugging) کدامند؟
دستوراتی مانند tail -f ،grep ،journalctl ،top ،ps و curl از کاربردیترین ابزارها برای بررسی وضعیت سرور و عیبیابی برنامهها هستند.
بحث و گفتگو(0 نظرات)