Skip to content

Use WSL Basic

WSL (Windows Subsystem for Linux) cho phép chạy môi trường Linux trực tiếp trên Windows, mang lại trải nghiệm development tốt hơn so với môi trường Windows thuần.

So sánh: WSL vs Các môi trường phát triển khác

Section titled “So sánh: WSL vs Các môi trường phát triển khác”
Tính năngWSLMôi trường Windows gốcMáy ảo
Hiệu năngNhẹ, sử dụng ít tài nguyênTrung bình, tùy thuộc vào công cụTiêu thụ tài nguyên cao
Tích hợpTích hợp hoàn toàn với WindowsGốc nhưng hạn chế hỗ trợ LinuxTích hợp hạn chế với Windows
Hệ thống tệpTruy cập được cả tệp Linux và WindowsChỉ hỗ trợ tệp WindowsHệ thống tệp riêng biệt
Thời gian thiết lậpThiết lập nhanh và dễ dàngCó sẵn mặc địnhTốn thời gian cài đặt và cấu hình
Tương thích công cụHỗ trợ các công cụ Linux như bash, git, makeCó thể thiếu tương thích với một số công cụTương thích hoàn toàn với Linux
Trường hợp sử dụngPhù hợp cho phát triển ưu tiên LinuxTốt cho các quy trình chỉ trên WindowsPhù hợp với môi trường cô lập

  • Chạy các công cụ Linux gốc (bash, vim, grep) trực tiếp trên Windows
  • Tránh việc phải dual boot hoặc sử dụng máy riêng
  • Code trên môi trường Linux còn giao diện Windows và sử dụng các tính năng của Windows bình thường
  • WSL 2 hoạt động trên một máy ảo nhẹ, sử dụng ít RAM và CPU hơn so với máy ảo thông thường

3. Truy cập hệ thống tệp dễ dàng

Section titled “3. Truy cập hệ thống tệp dễ dàng”

Truy cập tệp từ cả Linux và Windows:

Terminal window
# Tệp Linux
/home/user/project
# Tệp Windows từ WSL
/mnt/c/Users/TenCuaBan/
# Tệp WSL từ Windows
\\wsl$\Ubuntu\home\user\
  • Các dự án dựa trên Linux (Node.js, Python, Docker) chạy mượt mà hơn trên môi trường Linux
  • Giảm thiểu lỗi compatibility so với Windows thuần

5. Tích hợp với các công cụ phổ biến

Section titled “5. Tích hợp với các công cụ phổ biến”
  • Dễ dàng tích hợp với Git, Docker, VS Code và các công cụ phát triển khác
  • Không cần dual boot

Các trường hợp sử dụng chính của WSL

Section titled “Các trường hợp sử dụng chính của WSL”
🔧 Phát triển ứng dụng đa nền tảng

Sử dụng WSL để làm việc với các framework và công cụ ưu tiên Linux, đồng thời kiểm tra trên Windows.

🐳 Phát triển Docker và Container

WSL 2 hỗ trợ Docker Desktop, cho phép luồng công việc với container hiệu quả.

📚 Học Linux

Lý tưởng cho người dùng Windows muốn khám phá các lệnh và công cụ Linux mà không ảnh hưởng đến hệ điều hành chính.

🛠️ Tránh lỗi hệ thống

Nhiều công cụ và thư viện thiết kế cho Linux (Node.js, npm) hoạt động ổn định hơn trên WSL so với trực tiếp trên Windows.


Cài đặt WSL và các tính năng cơ bản

Section titled “Cài đặt WSL và các tính năng cơ bản”

Đảm bảo đã cài đặt:

  • WSL 2 với Ubuntu distribution
  • Node.js và npm/yarn trong WSL
  • Git configured trong WSL

Tại sao cần SSL cho local development?

Section titled “Tại sao cần SSL cho local development?”

Chứng chỉ an toàn

:::info mkcert mkcert GitHub Repository - Tool để tạo local SSL certificates :::

Setup workflow:

  1. Cài mkcert cho Windows (như bình thường)

  2. Copy certificates vào Ubuntu

    :::note Lý do Chrome chạy trên Windows và đọc chứng chỉ từ Windows store :::

  3. Rename certificates:

    Terminal window
    # mkcert tạo ra:
    key.pem ssl.key
    cert.pem ssl.crt

:::warning Chú ý Lấy đúng file certificates và đảm bảo paths chính xác cho project! :::


import Tabs from ‘@theme/Tabs’; import TabItem from ‘@theme/TabItem’;

.env
BACKEND_PORT=5010
FRONTEND_PORT=3010
.env
BACKEND_PORT=5050
FRONTEND_PORT=3050

:::tip Configuration Tips

  • Đổi ports trong functions và script tags nếu cần
  • Đảm bảo ports không conflict với services khác :::

Terminal window
./node_modules/.bin/firebase emulators:start --only hosting,functions,pubsub
Terminal window
yarn start-dev-embed
Terminal window
yarn watch:standalone

  • JAVA_HOME: Cài đặt riêng cho Ubuntu environment
  • Configure proper Java paths trong WSL
  • Link Git Ubuntu to Windows: Sync git configuration giữa environments
  • Setup SSH keys và credentials
  • Configure service account credentials
  • Đảm bảo proper authentication cho Firebase services

Terminal window
# Check port usage
netstat -tulpn | grep :3050
lsof -i :3050
# Kill process on port
kill -9 $(lsof -ti:3050)
Terminal window
# Fix common permission issues
chmod +x node_modules/.bin/firebase
sudo chown -R $USER:$USER ~/.npm
/mnt/c/Users/YourName/project
# Place project files in WSL filesystem for better performance
# GOOD: /home/username/project

  • Đặt project files trong WSL filesystem (/home/user/) thay vì Windows filesystem (/mnt/c/)
  • Better performance và file watching capabilities
  • Sử dụng WSL terminal cho development commands
  • VS Code với WSL extension cho editing
  • Windows browser cho testing
  • Configure git trong WSL
  • Sử dụng SSH keys cho authentication
  • Sync .gitconfig giữa Windows và WSL nếu cần

WSL mang lại môi trường development tối ưu cho Avada projects:

  • Linux compatibility cho Node.js và build tools
  • Windows integration cho GUI applications
  • Better performance so với Windows thuần
  • Easier SSL setup với mkcert
  • Native tooling support cho development workflow

:::tip Next Steps

  • Setup monitoring tools cho development
  • Configure automated testing trong WSL environment
  • Optimize build performance với WSL 2 :::