
WSL 使用指南——07 通过脚本提高效率
我们往往会写一些自动化脚本来完成重复的任务,在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 ubuntuPS:如果同时安装了同一发行版的多个版本,如ubuntu-16.04和ubuntu-18.04,ubuntu命令总会启动最新的18.04版。如果需要启动指定版本的发行版,请按以下步骤操作:
1. 打开新的powershell终端。
2. 执行wsl -l命令,查看系统已安装的发行版。
3. 执行wsl -d <想启动的发行版名称>命令,测试发行版是否被正常启动,然后将上面的最后一行代码换成:
powershell.exe -WindowStyle Hidden -c "wsl -d <想启动的发行版名称>"4. 接下来在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!
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名Wang Jiaxiang(包含链接:https://github.com/iWangJiaxiang/WSL-Guideline),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。