Windows Subsystem for Linux (WSL) 安装与配置指南

6 阅读8分钟

Windows Subsystem for Linux (WSL) 安装与配置指南

📋 目录

🚀 一、WSL 简介

Windows Subsystem for Linux (WSL) 允许在 Windows 上直接运行 Linux 环境,无需传统虚拟机或双系统。

主要优势

  • 性能卓越:相比虚拟机,WSL 2 启动更快,资源占用更少
  • 完整 Linux 体验:支持大多数 Linux 命令行工具和应用
  • 完美集成:与 Windows 文件系统互操作,支持跨平台开发
  • 开发友好:支持 Docker、VS Code 等工具的无缝集成

📥 二、安装 WSL

方法1:一键安装(推荐)

# 以管理员身份运行 Windows PowerShell
# 输入以下命令:
wsl --install

# 重启电脑
# 重启后自动弹出 Ubuntu 安装窗口,设置用户名和密码

方法2:自定义安装

# 查看可安装的 Linux 版本
wsl --list --online

# 安装指定版本(例如 Ubuntu-22.04)
wsl --install -d Ubuntu-22.04

# 安装 Debian
wsl --install -d Debian

# 安装 Ubuntu 24.04 LTS
wsl --install -d Ubuntu-24.04

方法3:手动启用 WSL 功能

# 以管理员身份运行 PowerShell:

# 启用 WSL 功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

# 启用虚拟机平台
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

# 重启电脑

# 下载并安装 Linux 内核更新包
# https://aka.ms/wsl2kernel

# 设置 WSL 2 为默认版本
wsl --set-default-version 2

# 安装 Linux 发行版
# 从 Microsoft Store 安装 Ubuntu 或其他发行版

⚙️ 三、WSL 基本配置

1. 设置 WSL 2 为默认版本

wsl --set-default-version 2

2. 查看已安装的发行版

# 查看所有发行版及其状态
wsl --list --verbose

# 或使用简写
wsl -l -v

3. 更新 WSL

# 更新 WSL 内核
wsl --update

# 查看 WSL 版本
wsl --version

💻 四、启动和使用 WSL

方式1:从开始菜单启动

  • 点击开始菜单,搜索 "Ubuntu" 或安装的发行版名称
  • 点击图标打开 Linux 终端

方式2:从命令行启动

# 在任意目录打开 cmd 或 PowerShell,输入:
wsl

# 直接运行 Linux 命令
wsl ls -la
wsl python3 script.py

# 以特定用户登录
wsl -u username

# 进入特定发行版
wsl -d Ubuntu-22.04

方式3:使用 Windows Terminal(推荐)

  1. 安装 Windows Terminal

    • 在 Microsoft Store 搜索 "Windows Terminal" 并安装
  2. 设置 WSL 为默认终端

    • 打开 Windows Terminal
    • 点击下拉箭头 → 设置
    • 将默认配置文件设置为 Ubuntu
  3. 自定义外观

    • 支持主题、字体、背景图片
    • 支持多个标签页和分屏

📂 五、文件系统管理

Windows 访问 Linux 文件

# 在文件资源管理器地址栏输入:
\\wsl$\Ubuntu

# 或访问特定用户目录
\\wsl$\Ubuntu\home\用户名

Linux 访问 Windows 文件

# Windows 的 C 盘挂在 /mnt/c/ 下
cd /mnt/c/Users/用户名/Desktop

# 复制文件到 Linux
cp /mnt/c/Users/用户名/Desktop/test.txt ~/

# 创建软链接方便访问
ln -s /mnt/c/Users/用户名/Desktop ~/windows-desktop

文件操作最佳实践

  • Linux 文件:存放在 /home/用户名/ 以获得最佳性能
  • 项目文件:建议放在 Linux 文件系统中
  • 共享文件:可以通过 /mnt/c/ 访问 Windows 文件
  • 性能注意:跨文件系统操作(如从 Linux 访问 Windows 文件)会比原生访问慢

🛠️ 六、开发环境配置

1. 更新系统

sudo apt update && sudo apt upgrade -y

2. 安装基础开发工具

sudo apt install -y \
    build-essential \
    git \
    curl \
    wget \
    vim \
    nano \
    htop \
    net-tools \
    unzip \
    zip \
    tree

3. 安装 Node.js

# 方法1:使用 NodeSource 仓库(推荐)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

# 方法2:使用 nvm(Node Version Manager)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install --lts
nvm use --lts

# 验证安装
node --version
npm --version

4. 安装 Python

# 安装 Python 3 和 pip
sudo apt install -y python3 python3-pip python3-venv

# 创建虚拟环境
python3 -m venv myenv
source myenv/bin/activate

# 安装常用包
pip install numpy pandas jupyter

5. 安装 Docker

# 安装 Docker
sudo apt install -y docker.io

# 将当前用户添加到 docker 组(避免使用 sudo)
sudo usermod -aG docker $USER

# 重启终端或重新登录使配置生效

# 启动 Docker 服务
sudo service docker start

# 设置 Docker 开机自启
sudo systemctl enable docker

# 验证安装
docker --version
docker run hello-world

🔧 七、VS Code 集成

1. 安装 VS Code 扩展

  • 打开 VS Code
  • 安装 Remote Development 扩展包
    • 包含:Remote - SSH、Remote - Containers、Remote - WSL

2. 在 WSL 中打开项目

# 在 WSL 终端中进入项目目录
cd ~/my-project

# 使用 code 命令打开 VS Code
code .

# 如果第一次运行,会提示安装 VS Code Server,按提示操作

3. 设置默认终端

  • 在 VS Code 中按 Ctrl + Shift + P
  • 输入 "Terminal: Select Default Profile"
  • 选择 "WSL" 或 "Ubuntu"

📝 八、日常使用技巧

1. 设置命令别名

# 编辑 ~/.bashrc 文件
nano ~/.bashrc

# 添加常用别名
alias ll='ls -la'
alias la='ls -a'
alias ..='cd ..'
alias ...='cd ../..'
alias gs='git status'
alias gp='git pull'
alias gc='git commit'
alias please='sudo $(history -p !!)'

# 保存并生效
source ~/.bashrc

2. Windows 和 Linux 互操作

# 在 Linux 中打开 Windows 程序
notepad.exe ~/test.txt
explorer.exe .
calc.exe

# 在 Linux 中使用 Windows 环境变量
echo $PATH
echo $WINDIR

# 在 Windows 中运行 Linux 命令
wsl ls -la
wsl python3 script.py

3. 网络代理配置

# 如果 Windows 使用代理,在 ~/.bashrc 中添加:
export http_proxy="http://127.0.0.1:7890"
export https_proxy="http://127.0.0.1:7890"
export all_proxy="socks5://127.0.0.1:7890"

# 或使用脚本自动获取 Windows 代理
export host_ip=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}')
export http_proxy="http://$host_ip:7890"
export https_proxy="http://$host_ip:7890"

4. 设置默认用户

# 创建 /etc/wsl.conf 文件
sudo nano /etc/wsl.conf

# 添加以下内容:
[user]
default=你的用户名

[network]
hostname = my-wsl
generateHosts = false

[interop]
enabled = true
appendWindowsPath = true

# 保存后,在 PowerShell 中重启 WSL
wsl --terminate Ubuntu
wsl

🔄 九、WSL 常用命令

WSL 管理命令

# 启动默认发行版
wsl

# 关闭 WSL
wsl --shutdown

# 终止特定发行版
wsl --terminate Ubuntu

# 以特定用户登录
wsl -u root

# 运行特定命令
wsl ls -la
wsl --exec bash -c "npm install"

发行版管理

# 查看所有发行版
wsl --list --verbose

# 设置默认发行版
wsl --set-default Ubuntu-22.04

# 导出发行版(备份)
wsl --export Ubuntu D:\wsl-backup\ubuntu.tar

# 导入发行版(恢复)
wsl --import Ubuntu-import D:\wsl\import D:\wsl-backup\ubuntu.tar

# 卸载发行版
wsl --unregister Ubuntu

⚠️ 十、常见问题解决

1. WSL 无法启动

# 以管理员身份运行 PowerShell:

# 重新启用 WSL 功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

# 重启电脑

# 设置 WSL 2 为默认
wsl --set-default-version 2

# 更新 WSL
wsl --update

2. 网络连接问题

# 重置 WSL 网络
# 在 PowerShell 中:
wsl --shutdown
netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns

# 重启电脑

3. 磁盘空间不足

# 查看 WSL 磁盘使用情况
wsl --system -d Ubuntu df -h

# 压缩虚拟硬盘(以管理员身份运行 PowerShell)
diskpart
# 在 diskpart 中:
select vdisk file="C:\Users\用户名\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_xxx\LocalState\ext4.vhdx"
compact vdisk
detach vdisk
exit

4. 权限问题

# 修复文件权限
sudo chown -R 用户名:用户名 /home/用户名
sudo chmod -R 755 /home/用户名

# 修复 WSL 权限配置
sudo nano /etc/wsl.conf

# 添加:
[automount]
enabled = true
options = "metadata,umask=22,fmask=11"
mountFsTab = false

5. 忘记 Linux 密码

# 在 PowerShell 中以 root 登录
wsl -u root

# 重置用户密码
passwd 用户名

# 退出
exit

🎯 十一、最佳实践建议

1. 项目文件存放位置

  • 推荐:将项目文件放在 Linux 文件系统中(/home/用户名/projects/
  • 避免:在 Windows 文件系统中(/mnt/c/)运行性能敏感的操作

2. 备份和迁移

# 定期备份 WSL 发行版
wsl --export Ubuntu D:\backup\ubuntu-$(date +%Y%m%d).tar

# 恢复备份
wsl --import Ubuntu D:\wsl\ D:\backup\ubuntu-20240313.tar

3. 性能优化

# 创建 .wslconfig 文件进行全局配置
# 在 Windows 用户目录创建 C:\Users\用户名\.wslconfig

[wsl2]
memory=4GB
processors=4
localhostForwarding=true
swap=2GB

📚 十二、参考资料


最后更新:2024年3月

适用版本:WSL 2,支持 Windows 10/11