win10的WSL(Windows Subsystem for Linux)使得可以在win10下运行linux系统作为其子系统。作为一个既尝试过win10+vmware虚拟机ubuntu以及双系统的,说一下我自己的感受以及为什么使用WSL:
==>本文内容:主要记录WSL2下安装与使用ubuntu,WSL中ubuntu的图形界面的安装,以及对图形界面的调教。另外,本文作为一个how to教程,没啥创新性,基本是我自己网上找到的各个问题解决方案的集合。
=>本部分可以参考官网教程:适用于 Linux 的 Windows 子系统安装指南 (Windows 10)
=>为了使用WSL2,还需要启用BIOS虚拟化(不然没法把WSL1下的ubuntu转换成WSL2下的ubuntu),参考这个教程
=>如果原先装了WSL的ubuntu转换成WSL2的ubuntu,参考这个教程
安装ubuntu超简单,完成了上述启用WSL步骤后,直接在windows应用商店搜ubuntu,随便安装18.04LTS版本还是20.04LTS版本。不过如果要使用ubuntu桌面,目前我测试成功的只有ubuntu18.04LTS。如下:
安装完后建议执行——换源,换成清华源:
# sudo vi /etc/apt/sources.list use `:%d` command empty file contents
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
我个人需要用ubuntu写代码,需要趁手的IDE,所以需要图形界面。在我找到的解决方案里,一种是通过在ubuntu中安装xfce4桌面,目前我找到的大部分可行方案都是这种,比如:
另外一种是给ubuntu安装ubuntu-desktop,安装一个X显示服务器程序,把图形界面显示转发到本地的X显示服务器,因为我个人比较习惯ubuntu桌面,所以使用的是这种方法。(另外,安装ubuntu桌面然后使用xrdp远程连接的方式我也试过,没找到成功的例子)。下面介绍的ubuntu桌面的安装以及其使用优化。
=>在WSL2下ubuntu18.04LTS中安装ubuntu桌面并使用VcXsrv显示服务器程序显示,参考本文使用的这个教程,但是这个方法在ubuntu20.04LTS下测试失败。
更正1-2021.3.13可以使用以上方法安装ubuntu20.04桌面环境,只要遵循以下两步:
systemd
。据说gnome桌面是基于systemd
,而WSL不支持systemd
,所以需要先安装systemd
,参考这篇博客(不知道为何这篇博客访问有点问题,可以直接去参考这个教程或者去原git repository:https://github.com/DamionGans/ubuntu-wsl2-systemd-script;如果访问github有问题,直接下载仓库到本地然后参照readme步骤执行,百度云下载链接,提取码:i2a5)安装完ubuntu桌面并通过VcXsrv显示效果如下:
可以进一步优化该图形界面,提高美观度与可用性。
sudo apt install language-pack-zh-hans
fcitx
sudo apt install fcitx
dpkg
安装deb
包,将其改为使用apt
安装更好:sudo apt install --fix-missing ./sogoupinyin_2.4.0.3469_amd64.deb
更正1-2021.3.13:上述方法在ubuntu20.04测试成功。只需要先执行以下步骤:
pidof fcitx | xargs kill
pidof sogou-qimpanel | xargs kill
nohup fcitx 1>/dev/null 2>/dev/null &
nohup sogou-qimpanel 1>/dev/null 2>/dev/null &
界面美化参考其他美化ubuntu的教程,应该是与ubuntu实体机一样折腾。过程略。
更正1-2021.3.13:使用gnome-tweaks可以优化窗口效果,安装gnome-tweaks——sudo apt install gnome-tweaks gnome-shell-extensions
=>开启窗口最大最小化按钮、开启桌面图标显示、开启ubuntu dock栏、开启应用菜单,如下操作:
因为在dock栏点击“显示应用程序”,列出所有程序的快捷方式时还比较卡。 针对dock栏里显示所有程序会出现较严重拖影问题,改为使用gnome-tweaks提供的"应用程序菜单"功能来查看所有程序,开启方式如下:
查看所有程序方法如下:
==>其他的主题更改、壁纸更改、字体更改、terminal换成zsh等等与ubuntu实体机下基本一样,查看其它教程,略过。
参考了一些教程,说是在windows下启动脚本bat让ubuntu子系统启动时执行一些命令来实现子系统的部分开机自启操作,未实践过。
更正1-2021.3.13:没必要,当前的启动方式已经较为简易了:
gnome-session
==>可以设置开机自启动,与实体机ubuntu是一样的——在系统工具里提供的“启动应用程序”里添加即可;或者在“优化”里“开机启动程序”中添加,与系统提供的功能是一样的
我们知道WSL中中window的各个盘符分别在/mnt/盘符
下,通过这种方式可以访问windows下的文件以及共享文件给windows系统,以下是我个人在ubuntu的文件浏览器中设置的快捷方式:
其中,win-desktop
对应windows下的桌面,如果有其他需要快捷访问的windows目录也可添加,直接把目录拖到ubuntu的侧边栏然后改名即可。
默认的桌面上不会显示任何图标,把快捷启动方式放进~/Desktop
中也不会显示在桌面上(不知道为啥),访问程序的方式之能是点击Activities
,然后点击图标,显示所有程序,较为麻烦。
可以在设置(settings)-设备(device)-键盘(Keyboard)中设置快捷键,
如下面是打开文件浏览器的快捷键:
我一般有以下几个快捷键:
nautilus 打开位置的绝对路径
-快捷键:CTRL+E(为了避免与windows本身的win+E冲突)gnome-screenshot -i
-快捷键:CTRL_ALT+Pxkill
-快捷键:CTRL+K更正2-2021.4.10:
因为想到可能随着ubuntu的使用,装的东西越来越多,容易占满C盘,故把wsl移动到非系统盘。(当然如果一开始就安装在非系统盘那就不需要了):
/d/linux
下./move-wsl
本教程尚未完全成功(如中文输入法就没有装成),不写了懒得折腾,以后有机会再搞。
更正1-2021.3.13:
最后的界面如下:
目前的问题:
后续,