WSL 使用指南 07 通过脚本提高效率
本文最后更新于 2018-12-08,文章内容可能已经过时。
本文最初在发布于GitHub,在此重新发布是为了汇总作品。本文撰写时(2018)基于第一代WSL技术,在此发布时(2024)微软已经发布第二代WSL技术并被主要应用。如果你在使用 WSL 2,请注意内容适用性。
我们往往会写一些自动化脚本来完成重复的任务,在WSL中,也存在可以通过脚本简化的工作。在前文,我们为Ubuntu
发行版安装了桌面环境,虽然能够正常运行,但是每次启动都需要我们手动开启VcXsrv
,然后在WSL中手动启动相关组件(compiz
等),这种重复的过程无疑是可以通过脚本实现"一键启动"桌面环境的。脚本的大体思路为:启动VcXsrv
,然后登陆Ubuntu执行命令。具体步骤如下:
进入
VcXsrv
程序的存储路径。打开XLauncher
,进行任意配置,最终打开一个VcXsrv
窗口。右键单击任务栏
打开任务管理器
,在进程
标签内右键单击VcXsrv windows xserver
进程选择打开文件所在位置
,打开的资源管理器
窗口即代表VcXsrv
程序的位置。在
VcXsrv
程序所在的文件夹内新建一个文本文档并重命名为run-ubuntu-desktop.bat
(注意扩展命也要修改),接下来为这个bat
文件创建一个桌面快捷方式,最后右键单击快捷方式选择编辑
打开记事本
窗口。在打开的
记事本
窗口中添加以下命令并保存。cd /d %~dp0 start vcxsrv.exe :0 -clipboard -wgl -keyhook -nodecoration sleep 2 powershell.exe -WindowStyle Hidden -c ubuntu
**PS:**如果同时安装了同一发行版的多个版本,如
ubuntu-16.04
和ubuntu-18.04
,ubuntu
命令总会启动最新的18.04版。如果需要启动指定版本的发行版,请按以下步骤操作:- 打开新的
powershell
终端。 - 执行
wsl -l
命令,查看系统已安装的发行版。 - 执行
wsl -d <想启动的发行版名称>
命令,测试发行版是否被正常启动,然后将上面的最后一行代码换成:
powershell.exe -WindowStyle Hidden -c "wsl -d <想启动的发行版名称>"
- 打开新的
接下来在
Ubuntu
中将以下内容添加到/etc/profile
文件最后面。这样每次打开Ubuntu
的Bash
窗口都会尝试启动桌面环境,如果没有正在运行的X Server
,则停止启动。nohup compiz >/dev/null 2>&1 & nohup plank >/dev/null 2>&1 &
关闭
VcXsrv
程序和所有Bash
窗口,单击run-ubuntu-desktop.bat
的快捷方式,稍等片刻,迎来的将是见证奇迹的时刻。Enjoy!