前置条件: #
管理员权限启动 PowerShell 运行一下代码
# 启用适用于 Linux 的 Windows 子系统
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 启用虚拟机功能
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
或在Windows搜索 启用或关闭Windows功能 开启 启用适用于 Linux 的 Windows 子系统 和 启用虚拟机功能 后需要重启电脑
安装 #
启用 WSL 功能
wsl --install # 此时会默认安装最新的Ubuntu发行版
wsl --update
将WSL2设置为默认版本
wsl --set-default-version 2
查看所有 Linux 系统版本
wsl --list --online
安装指定版本
wsl --install -d <发行版名称>
通过如下指令,查看电脑装了哪些Linux系统,并进行卸载:
# 查看本机安装了哪些子系统:
wsl --list --all
wsl -l -v
# 卸载:
wsl --unregister <System_name>
转移到D盘
mkdir D:\WSL
# 导出已安装的Ubuntu
wsl --export Ubuntu-24.04 D:\WSL\Ubuntu-24.04-latest.tar
# 注销(删除)原来的分发版
wsl --unregister Ubuntu-24.04
# 重新导入到D盘
wsl --import Ubuntu-24.04 D:\WSL\Ubuntu D:\WSL\Ubuntu-24.04-latest.tar
# 删除临时文件
Remove-Item D:\WSL\Ubuntu-24.04-latest.tar
wsl --shutdown
解决“wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理”的问题
在 Windows 中的C:\Users\\<your_username>目录下创建一个**.wslconfig**文件,然后在文件中写入如下内容:
(以下配置设置:限制内存、自动清理内存、网络)
[wsl2]
memory=4GB
swap=4096MB
[experimental]
autoMemoryReclaim=gradual
sparseVhd=true
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true
然后用wsl --shutdown关闭WSL,之后再重启,提示就消失了。
Linux查看ip
ifconfig # 需要 sudo apt install net-tools
hostname -I
ip addr show eth0
ip addr show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'
配置
# 更新源
sudo apt update && sudo apt upgrade -y
Windows终端设置 #
一般来说安装好了之后Windows会自动设置好了,终端可以直接开一个新的Ubuntu-24.04的标签页。
如果没有的话,那就手动添加一个,本质还是命令行启动罢了。
C:\WINDOWS\system32\wsl.exe -d Ubuntu-24.04 -u root --cd ~
这个命令行的意思是启动wsl的Ubuntu-24.04发行版,以root身份登录,默认启动目录是~(即用户默认目录),Ubuntu-24.04可以改成自己对应的发行版;参数-u可选添加,后面填写登录的用户名;--cd参数可选,后面写启动目录。
添加新的终端配置填入以上的命令行即可食用,其他设置可根据个人喜好,这个Windows终端配置文件本身是一个JSON文件
参考:
{
"adjustIndistinguishableColors": "always",
"bellStyle": "taskbar",
"colorScheme": "One Half Dark",
"commandline": "C:\\WINDOWS\\system32\\wsl.exe -d Ubuntu-24.04 -u root --cd ~",
"cursorShape": "emptyBox",
"font":
{
"face": "MesloLGS NF",
"size": 13.0
},
"guid": "{dcf338c3-49c9-4536-ae80-d621c8dd0813}",
"hidden": false,
"historySize": 32768,
"icon": "D:\\WSL\\Ubuntu\\shortcut.ico",
"name": "Ubuntu-24.04 (ROOT)",
"suppressApplicationTitle": true
}
备注:**MesloLGS NF**字体需要另外安装,这是一款适合zsh的p10k主题的字体。
gui配置(可选,但非常不推荐,毛病和坑多) #
sudo apt purge -y acpid acpi-support modemmanager
sudo apt-mark hold acpid acpi-support modemmanager
# 安装GNOME桌面
sudo apt install ubuntu-desktop -y
# 安装xrdp服务
sudo apt install xrdp -y
# 启动xrdp服务:
sudo systemctl start xrdp
# 将xrdp用户添加到ssl-cert用户组
sudo adduser xrdp ssl-cert
# 重启xrdp服务
sudo systemctl restart xrdp
修改xrdp默认端口(可选)
由于xrdp安装好后默认配置使用的是和Windows远程桌面相同的3389 端口,为了防止和Windows系统远程桌面冲突,建议修改成其他的端口
$ sudo vim /etc/xrdp/xrdp.ini
# 修改下面这一行,将默认的3389改成其他端口即可
port=3390
在Windows上使用远程桌面连接(mstsc):
- 按下Windows键+R,输入"mstsc"并回车
- 在远程桌面连接中输入
localhost:3389或localhost:3390 - 连接后输入您的Ubuntu用户名和密码
进一步:使用 Xfce4 桌面环境和轻量级桌面xubuntu
# 安装 Xfce4 桌面环境:
sudo apt install xfce4 xfce4-goodies -y
# 安装xfce4过程中会出现选择显示管理DM选择的提示,建议用lightdm
# 如果错过了安装过程中出现的这个向导,那么可以在安装完成后执行下面的命令重新设置DM
sudo dpkg-reconfigure lightdm
解决黑屏:
sudo nano /etc/xrdp/startwm.sh
添加以下内容:
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
. $HOME/.profile
创建或修改XRDP启动脚本:
sudo nano /etc/xrdp/startwm.sh
在文件末尾注释掉这两行(如果存在):
#test -x /etc/X11/Xsession && exec /etc/X11/Xsession
#exec /bin/sh /etc/X11/Xsession
添加以下行:
startxfce4
为当前用户指定登录session类型
vim ~/.xsession #写入 xfce4-session
或
echo xfce4-session > ~/.xsession
参考链接和文档 #
如何使用 WSL 在 Windows 上安装 Linux – Microsoft
开始通过适用于 Linux 的 Windows 子系统使用 Visual Studio Code – Microsoft
超详细的WSL教程:Windows上的Linux子系统 - 技术爬爬虾 - BiliBili
【保姆级教程】Windows上安装Linux子系统,搞台虚拟机玩玩
ping www.google.com
sudo vi ~/.bashrc
source ~/.bashrc