简介
WSL是什么?微软的解释是:适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销。
微软式中文晦涩难懂。简单来说,就是不需要虚拟机,就能实现windows和linux同时运行并且文件资源互通,功能非常强大,可谓是最佳Linux发行版。
WSL有两个版本,WSL和WSL2,他们的区别和优劣见微软的WSL文档。
这里我安装的是WSL,它已经充分满足了我的使用需求。
安装
- 控制面板-程序和功能-启动或关闭Windows功能-勾选 适用于Linux的windows子系统-重启电脑
- 下载DeepinWSL-我选择的是Release 1050-下载deepin-wsl-1050.zip
- 解压deepin-wsl-1050.zip至除C盘以外的目录-双击deepin.exe
- 打开cmd\powershell\Windows Terminal,这里推荐使用Windows Terminal,Microsoft Store里免费下载
- 输入wsl,即可进入deepin的终端
中文支持
默认情况下,deepinWSL是英文的,而且无法正常识别中文路径,这里需要做一些工作
- 终端输入
apt update
更新软件源 - 终端输入
apt install locales
安装locales - 终端输入
cd /etc
- 终端输入
vim locale.gen
用VIM编辑locale.gen - 找到
# zh_CN.UTF-8 UTF-8
这一行,按i
进入编辑模式,删除前面的#和空格 - 按
ESC
,输入:wq
保存并退出 - 终端输入
locale-gen
启动中文支持 - 终端输入
cd ./default
- 终端输入
vim locale
- 下面加入一行
LANG=zh_CN.utf8
,前面不要有其他符号,保存并退出,切换默认语言为中文 - 终端输入
vim /etc/vim/vimrc
加入vim的中文支持 - 在最下面加上脚本
set fileencodings=utf-8,gb2312,gbk,gb18030 set termencoding=utf-8 set encoding=prc
保存并退出
- 终端输入
exit
退出 - cmd\powershell输入
wsl --shutdown
关闭linux - 启动deepin,完成
DNS无法解析的问题
部分版本的WSL可能会出现Linux无法正确解析域名的问题,直观表现是可以ping通IP地址却ping不通域名,解决方案为手动指定DNS服务器
cd /etc
vim wsl.conf
- 写入
[network] generateResolvConf = false
保存并退出
touch wsl.conf
rm resolv.conf
vim resolv.conf
- 输入
nameserver 114.114.114.114
,保存并退出 - 终端输入
exit
退出 - cmd\powershell输入
wsl --shutdown
关闭linux - 重新启动