🐧 Lesson 28 of 40 Remote Dev Intermediate

WSL 2 Integration on Windows

WSL 2 (Windows Subsystem for Linux) lets Windows developers run a real Linux kernel. VS Code's WSL extension makes the experience seamless — Linux tools, Windows editor.

70% complete

1Installing WSL 2

PowerShell — install WSL 2
wsl --install
# Installs Ubuntu by default
# Reboot when prompted
wsl --set-default-version 2

2Opening VS Code from WSL

From a WSL terminal, navigate to your project and run code .. VS Code opens with a WSL connection indicator (green badge: WSL: Ubuntu). The VS Code server runs in Linux — no path translation needed.

3Installing Extensions in WSL

Extensions installed on the Windows side don't automatically run in WSL. Open the Extensions view and install extensions into the WSL environment — they run in Linux context. Theme and UI extensions are shared; language and debugger extensions need to be in WSL.

4File System Performance

Keep your projects inside the Linux file system (~/projects) not on the Windows mount (/mnt/c). File I/O performance inside WSL is 10–20× faster in the Linux filesystem, which dramatically speeds up npm install, builds, and test runs.

5Accessing WSL from Windows & Vice Versa

From Windows Explorer, type \\wsl$ in the address bar to browse Linux files. From WSL, use /mnt/c/ to access Windows drives. Avoid cross-filesystem operations for performance-sensitive tasks.

💡 Tip: Install nvm inside WSL to manage Node.js versions — it's faster and more reliable than Windows-native Node.js for most web development workflows.

All 40 Lessons
Pick any lesson to jump straight to it.
L01
Getting Started with VS Code
FoundationBeginner
L02
The VS Code Interface & Layout
FoundationBeginner
L03
Installing & Managing Extensions
ExtensionsBeginner
L04
Keyboard Shortcuts & Command Palette
ProductivityBeginner
L05
Settings, Themes & Customization
CustomizationBeginner
L06
IntelliSense & Code Completion
Editor FeaturesBeginner
L07
Integrated Terminal Mastery
ProductivityBeginner
L08
Search, Find & Replace Across Files
Editor FeaturesBeginner
L09
Git & Source Control with VS Code
Version ControlBeginner
L10
Snippets & Emmet Abbreviations
ProductivityBeginner
L11
GitHub Copilot — Getting Started
AI & CopilotIntermediate
L12
Copilot Chat & Inline Ask
AI & CopilotIntermediate
L13
JavaScript & TypeScript Development
LanguagesIntermediate
L14
Python Development in VS Code
LanguagesIntermediate
L15
Debugging Like a Pro
DebuggingIntermediate
L16
Linting, Formatting & ESLint
Code QualityIntermediate
L17
Multi-Cursor Editing & Refactoring
Editor FeaturesIntermediate
L18
Workspaces & Multi-Root Projects
WorkspaceIntermediate
L19
Tasks, Build Systems & npm Scripts
WorkflowIntermediate
L20
Testing with Jest, Vitest & Pytest
TestingIntermediate
L21
React Development Workflow
Web DevIntermediate
L22
Node.js & Express in VS Code
BackendIntermediate
L23
Docker & Dev Containers
DevOpsIntermediate
L24
Live Share — Real-Time Collaboration
CollaborationIntermediate
L25
Jupyter Notebooks in VS Code
Data ScienceIntermediate
L26
REST Client & API Testing
API DevIntermediate
L27
SSH Remote Development
Remote DevIntermediate
L28
WSL 2 Integration on Windows
Remote DevIntermediate
L29
Advanced Debugging: Breakpoints & Watch
DebuggingAdvanced
L30
Copilot Agent Mode — Agentic Workflows
AI & CopilotAdvanced
L31
Profile & Performance Optimisation
PerformanceAdvanced
L32
GitHub Actions & CI/CD Integration
DevOpsAdvanced
L33
Custom Keybindings & Key Maps
CustomizationAdvanced
L34
Settings Sync & Dotfiles Management
WorkflowAdvanced
L35
Language Server Protocol (LSP) Explained
InternalsAdvanced
L36
Rust Development in VS Code
LanguagesAdvanced
L37
Go Development in VS Code
LanguagesAdvanced
L38
GitHub Codespaces & vscode.dev
Remote DevExpert
L39
Writing Your First VS Code Extension
Extension DevExpert
L40
Pro VS Code Workflow & Mastery
MasteryExpert