در حال بارگذاری تصویر...

تصویر مقاله WSL چیست؟ راهنمای کامل استفاده از لینوکس در ویندوز برای برنامه‌نویسان

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

خلاصه:

WSL راهی ساده برای استفاده از لینوکس در کنار ویندوز است؛ بدون Dual Boot یا ماشین مجازی. در این مقاله نصب WSL، VS Code، Docker و آماده‌سازی محیط Python/Django را یاد می‌گیرید.

مقاله آموزشی۱ روز پیش14 دقیقه0 نظر
۸ بازدید

نویسنده: محمد هانی فیض — دانشجوی کدینگ‌یار

WSL راهی ساده و کاربردی برای استفاده از محیط لینوکس در کنار ویندوز است؛ بدون نیاز به Dual Boot یا ماشین مجازی. در این مقاله می‌بینید WSL دقیقاً چه مشکلی را برای برنامه‌نویسان حل می‌کند، چرا برای Backend اهمیت دارد، چگونه با ابزارهایی مثل VS Code و Docker استفاده می‌شود و چطور آن را از صفر نصب و برای توسعه پروژه‌های خود آماده کنید.

اگر برنامه‌نویس باشید، احتمالاً با این موقعیت روبه‌رو شده‌اید:

یک پروژه را از GitHub دریافت می‌کنید، اما در فایل README آن دستورهایی مثل این می‌بینید:

Bash / Shell
sudo apt install ...
docker compose up
chmod +x deploy.sh

یا پروژه‌ای دارید که قرار است در نهایت روی یک Linux Server اجرا شود.

اما سیستم شخصی شما Windows است.

در این شرایط معمولاً چند انتخاب دارید:

  • یک سیستم‌عامل Linux کنار Windows نصب کنید (Dual Boot)
  • یک ماشین مجازی مثل VMware یا VirtualBox راه‌اندازی کنید
  • دنبال نسخه Windows ابزارها بگردید
  • یا از یک محیط Linux داخل Windows استفاده کنید

اینجاست که WSL وارد می‌شود.

WSL یا Windows Subsystem for Linux قابلیتی از Windows است که اجازه می‌دهد یک محیط Linux واقعی را در کنار Windows داشته باشید؛ بدون اینکه نیاز باشد سیستم‌عامل خود را تغییر دهید یا یک ماشین مجازی کامل اجرا کنید.

اما ارزش واقعی WSL فقط داشتن یک Terminal لینوکس نیست.

برای یک برنامه‌نویس، WSL یعنی نزدیک‌تر شدن محیط توسعه به محیط واقعی اجرای پروژه‌ها؛ جایی که معمولاً Linux، Docker، Server و ابزارهای Open Source حضور دارند.

WSL چه مشکلی را برای برنامه‌نویسان حل می‌کند؟

بخش بزرگی از دنیای توسعه نرم‌افزار روی Linux ساخته شده است.

برای مثال، ممکن است روی لپ‌تاپ خود Windows داشته باشید، اما پروژه‌ای که توسعه می‌دهید در نهایت روی یک سرور Linux اجرا شود.

در چنین شرایطی تفاوت‌هایی بین محیط شما و محیط واقعی پروژه ایجاد می‌شود:

  • دستورات Terminal متفاوت هستند.
  • مدیریت Permissionها متفاوت است.
  • مسیر فایل‌ها و File System متفاوت است.
  • بعضی ابزارها فقط برای Linux طراحی شده‌اند.
  • رفتار بعضی کتابخانه‌ها در Windows و Linux یکسان نیست.

فرض کنید یک پروژه Django دارید:

روی سیستم شما: Windows, Python, Django

اما روی سرور: Linux, Python, Django, Nginx, PostgreSQL, Redis, Docker

هرچقدر پروژه حرفه‌ای‌تر شود، فاصله بین Windows و محیط واقعی بیشتر خودش را نشان می‌دهد.

WSL این فاصله را کمتر می‌کند.

WSL دقیقاً چیست؟

WSL مخفف Windows Subsystem for Linux است.

به زبان ساده، WSL یک محیط Linux را داخل Windows فراهم می‌کند.

شما می‌توانید یک Distribution مثل Ubuntu نصب کنید و از ابزارهای Linux استفاده کنید:

Plain text
python, git, ssh, docker, grep, sed, awk

بدون اینکه Windows را ترک کنید.

امروزه معمولاً نسخه WSL 2 استفاده می‌شود، زیرا معماری آن سازگاری بسیار بیشتری با ابزارهای Linux دارد.

تفاوت WSL با Virtual Machine و Dual Boot

قبل از WSL، برنامه‌نویسان معمولاً از دو روش استفاده می‌کردند.

Dual Boot

در این روش، Windows و Linux دو سیستم‌عامل مستقل روی یک کامپیوتر هستند و هنگام روشن شدن سیستم، یکی از آن‌ها را انتخاب می‌کنید:

Plain text
کامپیوتر
├── Windows
└── Linux

مزیت: اجرای کامل Linux

معایب: برای تغییر محیط باید Restart کنید؛ مدیریت آن سخت‌تر است.

Virtual Machine

مثل VMware یا VirtualBox:

Plain text
Windows
   │
   └── Virtual Machine
          │
          └── Linux

مزیت: Linux کامل دارید.

معایب: مصرف RAM و CPU بیشتر؛ سرعت کمتر نسبت به سیستم اصلی.

WSL

Plain text
Windows
   │
   └── WSL
          │
          └── Ubuntu

مزیت: سریع؛ یکپارچه با Windows؛ مناسب برای توسعه.

در حال بارگذاری تصویر...

تصویر مقایسه‌ای آموزشی با تم لایت: سه ستون Dual Boot، Virtual Machine و WSL با دیاگرام ساده و برچسب‌های فارسی. رنگ‌های شاد و فضای تمیز.  پس‌زمینه روشن و تم لایت با رنگ‌های شاد (مرجانی، نعنایی، کهربایی، بنفش روشن). فضای تصویر روشن، تمیز و حرفه‌ای. در پایین سمت چپ «codingyar.com» و در پایین سمت راست «وبسایت آموزش برنامه نویسی کدینگ‌یار».

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

۱. استفاده از ابزارهای واقعی Linux

یکی از اصلی‌ترین دلایل استفاده از WSL این است که ابزارهای استاندارد Linux را مستقیماً اجرا کنید.

کاربرددستورجستجو داخل فایل‌هاgrep "ERROR" application.logپیدا کردن فایل‌هاfind . -name "*.py"مشاهده Logهاtail -f application.logاتصال به Serverssh user@server

این دستورها فقط چند نمونه ساده هستند، اما وقتی با Backend، DevOps یا Server کار می‌کنید، بخش مهمی از Workflow روزانه شما می‌شوند.

در حال بارگذاری تصویر...

اسکرین‌شات آموزشی از Terminal Ubuntu در WSL با تم لایت: دستورات grep و find و tail -f در خروجی دیده شوند. برچسب فارسی «ابزارهای روزمره لینوکس».  پس‌زمینه روشن و تم لایت با رنگ‌های شاد (مرجانی، نعنایی، کهربایی، بنفش روشن). فضای تصویر روشن، تمیز و حرفه‌ای. در پایین سمت چپ «codingyar.com» و در پایین سمت راست «وبسایت آموزش برنامه نویسی کدینگ‌یار».

WSL برای برنامه‌نویسان Python و Django

اگر Python Developer باشید، احتمالاً با ابزارهایی مثل Django, FastAPI, PostgreSQL, Redis, Celery, Docker برخورد خواهید کرد.

بسیاری از این ابزارها در محیط Linux رایج‌تر هستند.

برای مثال، یک پروژه Django ممکن است نیاز داشته باشد:

Bash / Shell
python manage.py runserver

یا:

Bash / Shell
docker compose up

یا:

Bash / Shell
chmod +x deploy.sh

در WSL شما همان محیطی را دارید که شباهت زیادی به محیط Production دارد.

به همین دلیل، برای برنامه‌نویسان پایتون ترکیب زیر یکی از ستاپ‌های محبوب توسعه است:

Windows + WSL 2 + Ubuntu + Python + Docker

کار با پروژه‌های GitHub در WSL

یکی از مشکلات رایج کاربران Windows این است که بعضی پروژه‌های Open Source برای Linux نوشته شده‌اند.

مثلاً در README پروژه می‌بینید:

Bash / Shell
./configure
make
sudo make install

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

اما در WSL ابتدا وارد محیط Linux می‌شوید:

Bash / Shell
cd ~/projects

Repository را دریافت می‌کنید:

Bash / Shell
git clone https://github.com/example/project.git

و سپس همان دستورهای مستندات پروژه را اجرا می‌کنید.

WSL و VS Code؛ ترکیب محبوب برنامه‌نویسان

یکی از بهترین تجربه‌ها برای توسعه با WSL استفاده از VS Code است.

ساختار معمول:

Plain text
Windows
   │
   └── VS Code
          │
   └── WSL
               │
   └── Ubuntu
                    │
                    └── Python Project

در این حالت:

  • ظاهر VS Code روی Windows است.
  • Terminal داخل Linux اجرا می‌شود.
  • Python Interpreter داخل WSL قرار دارد.
  • پروژه در محیط Linux اجرا می‌شود.

برای باز کردن پروژه:

Bash / Shell
cd ~/projects/my-project

سپس:

Bash / Shell
code .

VS Code پروژه را با محیط WSL باز می‌کند.

در حال بارگذاری تصویر...

اسکرین‌شات آموزشی VS Code روی Windows با تم لایت: نوار پایین Remote WSL فعال باشد و Terminal لینوکس باز باشد. برچسب فارسی «VS Code + WSL».  پس‌زمینه روشن و تم لایت با رنگ‌های شاد (مرجانی، نعنایی، کهربایی، بنفش روشن). فضای تصویر روشن، تمیز و حرفه‌ای. در پایین سمت چپ «codingyar.com» و در پایین سمت راست «وبسایت آموزش برنامه نویسی کدینگ‌یار».

پروژه‌ها را کجا ذخیره کنیم؟

یکی از نکات مهم در WSL محل قرار دادن پروژه‌ها است.

Windows را می‌توانید از داخل WSL ببینید:

Plain text
/mnt/c/Users/

اما برای پروژه‌های برنامه‌نویسی بهتر است پروژه را داخل خود Linux ذخیره کنید.

مثلاً:

Plain text
/home/username/projects
~/projects

دلیل این کار:

  • سرعت بهتر در خواندن و نوشتن فایل‌ها
  • عملکرد بهتر ابزارهای توسعه
  • تجربه نزدیک‌تر به Linux واقعی

خصوصاً پروژه‌هایی که فایل‌های زیادی دارند، مثل Node.js، Python، Django و Docker.

WSL و Docker چه ارتباطی دارند؟

WSL و Docker دو ابزار متفاوت هستند.

  • WSL: یک محیط Linux فراهم می‌کند.
  • Docker: برای اجرای Container استفاده می‌شود.

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

Plain text
Windows
   │
   └── WSL Ubuntu
          │
          ├── Django Application
          │
          └── Docker
                 │
                 └── PostgreSQL Container

یا در بسیاری از Setupها:

Plain text
Windows
   │
   └── Docker Desktop
          │
   └── WSL 2 Backend
                 │
                 └── Linux Containers

Docker Desktop در Windows می‌تواند از WSL 2 برای اجرای Containerهای Linux استفاده کند.

در حال بارگذاری تصویر...

اسکرین‌شات آموزشی Docker Desktop Settings با تم لایت: بخش WSL Integration فعال و Ubuntu تیک خورده باشد. برچسب فارسی «Docker Desktop و WSL 2».  پس‌زمینه روشن و تم لایت با رنگ‌های شاد (مرجانی، نعنایی، کهربایی، بنفش روشن). فضای تصویر روشن، تمیز و حرفه‌ای. در پایین سمت چپ «codingyar.com» و در پایین سمت راست «وبسایت آموزش برنامه نویسی کدینگ‌یار».

نصب WSL

در نسخه‌های جدید Windows، نصب WSL بسیار ساده است.

PowerShell را با دسترسی Administrator باز کنید:

powershell
wsl --install

این دستور WSL و یک Distribution مانند Ubuntu را نصب می‌کند.

بعد از نصب، سیستم را Restart کنید.

در حال بارگذاری تصویر...

اسکرین‌شات آموزشی PowerShell Administrator با تم لایت: دستور wsl --install تایپ شده باشد. برچسب فارسی «نصب WSL در ویندوز».  پس‌زمینه روشن و تم لایت با رنگ‌های شاد (مرجانی، نعنایی، کهربایی، بنفش روشن). فضای تصویر روشن، تمیز و حرفه‌ای. در پایین سمت چپ «codingyar.com» و در پایین سمت راست «وبسایت آموزش برنامه نویسی کدینگ‌یار».

بررسی نصب و نسخه WSL

برای بررسی نسخه:

powershell
wsl -l -v

خروجی مشابه:

Plain text
NAME      STATE      VERSION

Ubuntu    Running    2

عدد ۲ یعنی از WSL 2 استفاده می‌کنید.

برای تنظیم WSL 2 به‌عنوان نسخه پیش‌فرض:

powershell
wsl --set-default-version 2

برای مشاهده توزیع‌های موجود:

powershell
wsl --list --online

آماده‌سازی Ubuntu برای برنامه‌نویسی

بعد از ورود به Ubuntu ابتدا Packageها را به‌روزرسانی کنید:

Bash / Shell
sudo apt update

ابزارهای پایه:

Bash / Shell
sudo apt install git curl wget build-essential

نصب Python:

Bash / Shell
sudo apt install python3 python3-pip python3-venv

بررسی نسخه:

Bash / Shell
python3 --version

در حال بارگذاری تصویر...

اسکرین‌شات آموزشی Ubuntu Terminal در WSL با تم لایت: خروجی sudo apt update و python3 --version دیده شود. برچسب فارسی «آماده‌سازی Ubuntu برای برنامه‌نویسی».  پس‌زمینه روشن و تم لایت با رنگ‌های شاد (مرجانی، نعنایی، کهربایی، بنفش روشن). فضای تصویر روشن، تمیز و حرفه‌ای. در پایین سمت چپ «codingyar.com» و در پایین سمت راست «وبسایت آموزش برنامه نویسی کدینگ‌یار».

ساخت محیط Python در WSL

برای پروژه:

Bash / Shell
mkdir ~/projects/myapp
cd ~/projects/myapp

ساخت Virtual Environment:

Bash / Shell
python3 -m venv .venv

فعال‌سازی:

Bash / Shell
source .venv/bin/activate

حالا می‌توانید پکیج نصب کنید:

Bash / Shell
pip install django

یا:

Bash / Shell
pip install -r requirements.txt

مشکلات رایج WSL

پروژه را داخل /mnt/c گذاشته‌ام و کند است

برای پروژه‌های توسعه‌ای بهتر است از ~/projects استفاده کنید.

WSL منابع زیادی مصرف می‌کند

می‌توانید آن را خاموش کنید:

powershell
wsl --shutdown

Docker پروژه را پیدا نمی‌کند

بررسی کنید:

Docker Desktop → Settings → Resources → WSL Integration فعال باشد.

چه زمانی WSL انتخاب مناسبی نیست؟

WSL برای همه پروژه‌ها ضروری نیست.

اگر فقط با HTML/CSS، طراحی سایت ساده یا ابزارهای کاملاً Windows-based کار می‌کنید، احتمالاً نیاز فوری به WSL ندارید.

اما اگر وارد این حوزه‌ها می‌شوید:

  • Backend
  • Python
  • Django
  • Docker
  • Linux Server
  • Open Source

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

جمع‌بندی

WSL را نباید فقط یک Terminal لینوکس داخل Windows بدانیم.

ارزش اصلی WSL برای برنامه‌نویسان این است که بتوانند در محیطی نزدیک به Production توسعه دهند؛ محیطی که Linux، Server، Docker و ابزارهای Backend در آن نقش اصلی دارند.

با استفاده از WSL می‌توانید بدون نصب یک سیستم‌عامل جداگانه:

  • پروژه‌های Linux-based را اجرا کنید.
  • ابزارهای Linux را یاد بگیرید.
  • با Serverها راحت‌تر کار کنید.
  • Workflow حرفه‌ای‌تری برای توسعه داشته باشید.

برای بسیاری از برنامه‌نویسان Windows، ترکیب Windows + WSL 2 + Ubuntu + VS Code + Docker یکی از بهترین محیط‌های توسعه امروزی است.

مهم‌ترین نکته این است: وقتی پروژه شما برای Linux طراحی شده، به جای اینکه Linux را شبیه‌سازی کنید، می‌توانید واقعاً در یک محیط Linux کار کنید.

اشتراک‌گذاری

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

نویسنده
م

محمد هانی فیض

این مقاله توسط یکی از دانشجویان کدینگ‌یار منتشر شده است.

دوره‌های مرتبط

یادگیری عمیق‌تر با دوره‌های پروژه‌محور

مقالات VIP

در هر دوره‌ای شرکت کنید، به محتوای اختصاصی همان دوره دسترسی پیدا می‌کنید.