WSL 的常用指令和简易使用

什么是WSL?

WSL (Windows Subsystem for Linux) 是微软为开发者提供的一种在Windows系统上运行Linux环境的解决方案,无需传统虚拟机的开销。它让Windows用户能够直接使用Linux命令行工具和应用程序,大大提高了跨平台开发效率。

目前有两个版本:

  • WSL 1:使用转译层实现Linux系统调用
  • WSL 2:使用虚拟化技术和真实Linux内核,性能更好

安装WSL

一键安装(Windows 10 2004版本及以上)

打开PowerShell或Windows Terminal(管理员模式),执行:

1
wsl --install

此命令会自动执行以下操作:

  • 启用WSL和虚拟机平台功能
  • 下载并安装最新Linux内核
  • 设置WSL 2为默认版本
  • 安装Ubuntu发行版

手动安装(旧版Windows)

  1. 启用WSL功能:
1
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  1. 启用虚拟机平台功能(WSL 2需要):
1
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  1. 重启计算机

  2. 下载并安装Linux内核更新包:
    WSL2 Linux内核更新包

  3. 设置WSL 2为默认版本:

1
wsl --set-default-version 2
  1. 从Microsoft Store安装Linux发行版

WSL常用命令

基本管理命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 列出所有可用Linux发行版
wsl --list --online

# 安装指定发行版
wsl --install -d Ubuntu-20.04

# 列出已安装的Linux发行版
wsl -l -v

# 启动指定发行版
wsl -d Ubuntu-20.04

# 以特定用户身份启动
wsl -d Ubuntu-20.04 -u root

# 终止指定发行版
wsl --terminate Ubuntu-20.04

# 关闭所有WSL实例
wsl --shutdown

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

# 设置指定发行版为WSL 1或WSL 2
wsl --set-version Ubuntu-20.04 2

# 卸载发行版
wsl --unregister Ubuntu-20.04

WSL中的Linux命令

启动WSL后,你可以使用几乎所有Linux命令,例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 更新软件包列表
sudo apt update

# 升级所有软件包
sudo apt upgrade -y

# 安装软件
sudo apt install nodejs npm

# 查看系统信息
uname -a

# 查看发行版信息
cat /etc/os-release

文件系统交互

从WSL访问Windows文件

Windows驱动器会自动挂载到/mnt/目录下:

1
2
3
4
5
6
7
8
# 访问C盘
cd /mnt/c/

# 访问桌面
cd /mnt/c/Users/你的用户名/Desktop/

# 使用Windows浏览器打开当前文件夹
explorer.exe .

从Windows访问WSL文件

推荐的安全访问方式:

  1. 通过WSL文件资源管理器:
1
2
# 在WSL中打开文件浏览器
explorer.exe .
  1. 通过网络路径访问:
1
\\wsl$\Ubuntu-20.04\home\username
  1. 使用WSL命令从Windows终端访问:
1
wsl ls -la ~/projects

网络配置

端口转发

WSL 2中的应用端口可以从Windows直接访问:

1
2
3
4
5
6
# 在WSL中启动服务
cd ~/project
npm run serve # 假设在3000端口运行

# 在Windows浏览器中访问
# http://localhost:3000

WSL 2的IP地址

1
2
# 查看WSL 2的IP地址
ip addr show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'

实用技巧

设置默认Linux用户

1
Ubuntu2004 config --default-user username

自定义WSL启动配置

创建或编辑 %UserProfile%\.wslconfig 文件:

1
2
3
4
[wsl2]
memory=4GB
processors=2
localhostForwarding=true

与VSCode集成

在WSL中安装VS Code Server:

1
code .

这会自动安装VS Code Server并打开当前目录。

使用Windows应用

可以直接从WSL调用Windows程序:

1
2
3
4
5
# 打开记事本
notepad.exe myfile.txt

# 使用Edge浏览器
/mnt/c/Program\ Files\ \(x86\)/Microsoft/Edge/Application/msedge.exe https://bing.com

性能优化

文件系统性能

为获得最佳性能,将项目文件存储在WSL文件系统中(避免使用/mnt/c/):

1
2
3
4
5
6
# 查看当前位置
pwd
# /home/username/projects # 良好性能

# 而不是
# /mnt/c/Users/username/projects # 较差性能

内存使用优化

1
2
# 在WSL中释放未使用的内存
sudo sh -c "echo 1 > /proc/sys/vm/drop_caches"

常见问题解决

网络连接问题

1
2
3
# 重置WSL网络
wsl --shutdown
netsh winsock reset

文件权限问题

/etc/wsl.conf中添加:

1
2
[automount]
options = "metadata,umask=22,fmask=11"

然后重启WSL:

1
wsl --shutdown

更新WSL内核

1
wsl --update

进阶使用

图形界面应用

WSL 2支持运行Linux图形应用程序:

  1. 安装X服务器(如VcXsrv)
  2. 在WSL中设置DISPLAY变量:
1
2
echo 'export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk "{print $2}"):0' >> ~/.bashrc
source ~/.bashrc
  1. 安装并运行图形应用:
1
2
sudo apt install gedit
gedit

Docker集成

WSL 2与Docker Desktop完美集成:

  1. 安装Docker Desktop并启用WSL 2集成
  2. 在WSL中直接使用Docker命令:
1
2
docker ps
docker run -it ubuntu bash

结语

WSL为Windows用户带来了Linux的强大功能,既保留了Windows系统的便利性,又提供了Linux开发环境的灵活性。掌握这些命令和技巧,能让你的开发工作更加高效。如果你有任何WSL相关问题,欢迎在评论区交流讨论!