安装WSL
方法1:使用 WSL 命令安装
安装WSL后,重启 Windows
wsl --install
wsl --update
通过「Windows 功能」启用 WSL2
- 使用
Windows + R
快捷键打开运行
对话框,输入OptionalFeatures
打开Windows 功能
- 勾选「适用于 Linux 的 Windows 子系统」和「虚拟机平台」,然后点击「确定」。
安装后重启Windows
更新WSL版本
wsl --version
wsl --update
# 安装最新的预发行版(可选):
wsl --update --pre-release
# 如果更新之后遇到问题或出现故障,可以回滚到上一版本:
wsl --update --rollback
文件系统
- 推荐使用
\\wsl$
驱动器上的路径,性能速度更高。 - windows的C盘, D盘,默认挂载到
/mnt/c
和/mnt/d
。 - 在 WSL 的 Terminal 终端中,使用
explorer.exe .
命令,用文件资源管理器打开当前目录。 - 在 windows 中,运行linux命令。如
wsl ls -la
,wsl sudo apt-get update
- 在 WSL 中运行 windows 工具。如
notepad.exe "C:\temp\foo.txt"
// 虚拟磁盘路径:
C:\Users\<username>\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx
// WSL共享目录位置(文件资源管理器打开):
\\wsl$
导入导出
// 1. 关闭wsl
wsl --shutdown
// 2. 查看wsl信息
wsl -l -v
NAME STATE VERSION
* Ubuntu-18.04 Running 1
Ubuntu-20.04 Running 2
// 3. 导出虚拟机到.tar文件 wsl --export <DistroName> <PathToTarArchive>
wsl --export Ubuntu-20.04 E:\WSL2\Ubuntu-20.04-WSL2\ubuntu.tar
// 4. 注销原有虚拟机 wsl --unregister <DistroName>
wsl --unregister Ubuntu-20.04
// 5.导入虚拟机至新位置 wsl --import <DistroName> <PathToDistroNewDirectory> <PathToTarArchive>
wsl --import Ubuntu-20.04 E:\WSL2\Ubuntu-WSL2 E:\WSL2\Ubuntu-20.04-WSL2\ubuntu.tar
// 6. 使用 wsl -d <DistroName> 运行新导入的 Linux 发行版。
wsl -d Ubuntu-20.04
开启SSH连接
sudo vim /etc/ssh/sshd_config
...
Port 22
PasswordAuthentication yes
...
sudo /etc/init.d/ssh start
// 若提示: sshd: no hostkeys available -- exiting 错误。执行如下命令:
cd /etc/ssh && ssh-keygen -A
WSL2 中访问宿主机Windows 的代理
#!/bin/sh
# proxy.sh
hostip=$(cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }')
wslip=$(hostname -I | awk '{print $1}')
port=1080
PROXY_HTTP="http://${hostip}:${port}"
set_proxy(){
export http_proxy="${PROXY_HTTP}"
export HTTP_PROXY="${PROXY_HTTP}"
export https_proxy="${PROXY_HTTP}"
export HTTPS_proxy="${PROXY_HTTP}"
}
unset_proxy(){
unset http_proxy
unset HTTP_PROXY
unset https_proxy
unset HTTPS_PROXY
}
test_setting(){
echo "Host ip:" ${hostip}
echo "WSL ip:" ${wslip}
echo "Current proxy:" $https_proxy
}
if [ "$1" = "set" ]
then
set_proxy
elif [ "$1" = "unset" ]
then
unset_proxy
elif [ "$1" = "test" ]
then
test_setting
else
echo "Unsupported arguments."
fi
运行 . ./proxy.sh set
或 source ./proxy.sh set
设置代理。
unset 取消代理,test 查看代理状态
可以在 ~/.bashrc
文件中加入以下2行:
# 为脚本设置别名 proxy
alias proxy="source /path/to/proxy.sh"
# 每次启动shell时自动设置代理
. /path/to/proxy.sh set
Docker 远程容器入门
https://docs.microsoft.com/zh-cn/windows/wsl/tutorials/wsl-containers
Docker Desktop ext4.vhdx
文件位置: %LOCALAPPDATA%\Docker\wsl
C:\Users\yourname\AppData\Local\Docker\wsl\data
C:\Users\yourname\AppData\Local\Docker\wsl\distro
https://www.cnblogs.com/yanglang/p/13518449.html
拯救被WSL占满的C盘
项目首页: https://github.com/pxlrbt/move-wsl
- PowerShell中运行
wsl --shutdown
命令停止WSL - 下载项目zip压缩包并解压缩, 运行
.\move-wsl.ps1
. 详见项目首页README.md文件。 - 回收Docker环境中的空间:
> wsl --shutdown
# open window Diskpart
> diskpart
# 选择虚拟机文件执行瘦身
> select vdisk file="D:\WSL\docker-desktop-data\ext4.vhdx"
> attach vdisk readonly
> compact vdisk
> detach vdisk
> exit
WSL 的基本命令 https://docs.microsoft.com/zh-cn/windows/wsl/basic-commands
Windows 11:WSL 2 安装和管理指南,3 种方法任你选 https://www.sysgeek.cn/install-wsl-2-windows/
wsl/wsl2 更换虚拟硬盘位置(导出,导入) https://www.ownpublic.com/post/29.html
拯救被WSL占满的C盘 https://mdnice.com/writing/eaa47325d1c341f2b6e814b4385bcd77
WSL2 中访问宿主机Windows 的代理 https://zinglix.xyz/2020/04/18/wsl2-proxy/