WSL子系统 ¶
常用命令 ¶
cmd
1dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
2
3dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
4
5wsl -l -v # 列出所有已安装的 Linux 发行版
6
7wsl # 启动默认的 Linux 发行版
8
9wsl -d <DistributionName> # 启动指定的 Linux 发行版
10
11wsl --set-default <DistributionName> # 设置默认的 Linux 发行版
12
13wsl --set-default-version 2 # 设置默认的 WSL 版本
14
15wsl --update <DistributionName> # 更新 Linux 发行版到 WSL 2
16
17wsl --unregister <DistributionName> # 卸载 Linux 发行版
18
19wsl --update-kernel # 更新 WSL 2 内核
20
21wsl --export Ubuntu-24.04 D:\wsl\ubuntu24.tar # 导出备份
22
23wsl --import Ubuntu-24.04 D:\wsl\Ubuntu-24.04 D:\wsl\ubuntu24.tar # 导入备份
24
25wsl --shutdown # 关闭所有 WSL 实例
26
27wsl --shutdown <DistributionName> # 关闭特定的 WSL 发行版
28
29# 手动安装
30# 1.下载 https://learn.microsoft.com/zh-cn/windows/wsl/install-manual
31# 2. Add-AppxPackage .\Ubuntu.appx配置 ¶
域名 ¶
方式1:wsl子系统 dns 总是会默认通过请求变成 windows 的 dns ,配置
/etc/resolv.confconf1nameserver 223.5.5.5 2nameserver 223.6.6.6方式2:使用
.bashrc, 添加下面命令shell1export RESOLV_CONF="/etc/resolv.conf" 2alias set-dns='sudo echo "nameserver 223.5.5.5" > $RESOLV_CONF && sudo echo "nameserver 223.6.6.6" >> $RESOLV_CONF'然后命令行执行
bash1source ~/.bashrc # 应用最新配置文件 2set-dns # 修改/etc/resolv.conf文件,设置域名
系统代理 ¶
配置系统代理
shell
1export hostip=$(ip route | grep default | awk '{print $3}')
2export hostport=10808
3# add for proxy
4alias set-proxy='
5 export https_proxy="socks5://${hostip}:${hostport}";
6 export http_proxy="socks5://${hostip}:${hostport}";
7 export all_proxy="socks5://${hostip}:${hostport}";
8 echo -e "Acquire::http::Proxy \"http://${hostip}:${hostport}\";" | sudo tee -a /etc/apt/apt.conf.d/proxy.conf > /dev/null;
9 echo -e "Acquire::https::Proxy \"http://${hostip}:${hostport}\";" | sudo tee -a /etc/apt/apt.conf.d/proxy.conf > /dev/null;
10'
11alias un-proxy='
12 unset https_proxy;
13 unset http_proxy;
14 unset all_proxy;
15 sudo sed -i -e '/Acquire::http::Proxy/d' /etc/apt/apt.conf.d/proxy.conf;
16 sudo sed -i -e '/Acquire::https::Proxy/d' /etc/apt/apt.conf.d/proxy.conf;
17'命令行执行
bash
1set-proxy # 开启代理
2un-proxy # 关闭代理docker代理 ¶
方式1: 直接新建或修改文件
/etc/docker/daemon.jsonjson1{ 2 "registry-mirrors": ["https://l2z6apov.mirror.aliyuncs.com"], // 这个是阿里镜像 3 "proxies": { 4 "http-proxy": "socks5://172.17.208.1:10808", 5 "https-proxy": "socks5://172.17.208.1:10808" 6 } 7}重启服务
bash1systemctl daemon-reload 2systemctl restart docker方式2: 使用
.bashrc, 添加下面内容bash1# 变量hostip、hostport在前面系统代理时已经定义过了 2# export hostip=$(ip route | grep default | awk '{print $3}') 3# export hostport=10808 4alias set-docker-proxy=' 5 echo -e "{\"proxies\": {\"http-proxy\": \"socks5://${hostip}:${hostport}\", \"https-proxy\": \"socks5://${hostip}:${hostport}\" }}" | tee /etc/docker/daemon.json > /dev/null; 6 systemctl daemon-reload; 7 systemctl restart docker; 8' 9alias un-docker-proxy=' 10 echo -e "{}" | tee /etc/docker/daemon.json > /dev/null; 11 systemctl daemon-reload; 12 systemctl restart docker; 13'运行命令
bash1source ~/.bashrc # 应用最新配置文件 2set-docker-proxy # 设置docker代理,并重启docker 3un-docker-proxy # 取消设置docker代理,并重启docker
压缩 WSL 的虚拟磁盘 ¶
运行
diskpart在命令提示符中输入以下命令并回车:
bash1diskpart选择虚拟磁盘文件
输入以下命令,指定你的 WSL 虚拟磁盘文件路径
bash1select vdisk file="D:\wsl\Ubuntu-24.04\ext4.vhdx"确保路径和文件名完全正确,否则会报错。
压缩虚拟磁盘
输入以下命令以压缩虚拟磁盘:
bash1compact vdisk这个过程可能需要一些时间,具体取决于磁盘的大小和当前的使用情况。
分离虚拟磁盘
输入以下命令将虚拟磁盘从当前会话中分离:
bash1detach vdisk退出
diskpart输入以下命令退出
diskpart:bash1exit