Linux|WSL打造Windows下更顺畅的双系统

Posted by 琉璃康康 on January 10, 2021

这篇文章已经在list待了太久(好像有两年了吧),作为一名通信工程师,Linux是必不可少的操作环境,所以在公司升级到Win10系统后果断就放弃了Cygwin和VMWare虚拟机,通过WSL建立了一个微软原生支持的Linux操作环境。

WSL是Windows Subsystem for Linux的缩写,是微软和Canonical公司合作开发的一个兼容层,从而在Win10上运行原生Linux成为现实。

1

在之前不管是使用Cygwin还是VMWare虚拟机,都会额外的占用很大的CPU、内存、硬盘等资源,对于日常需要快速使用,甚至直接引用Windows下的文件等等,都需要额外的操作来完成。

所以借助Win10的WSL功能,可以打造一个轻快便捷的Linux环境,对于日常工作带来了更多的方便。

那么如何使用呢?

1. 开启子系统功能

默认情况下对于子系统的支持是关闭的,所以首要的一步就是要开启此功能,开启后需要重启电脑。

2

3

4

2. 安装一个Linux系统

接下来就是要安装一个Linux系统,打开微软商店,然后搜索Linux就会看到诸多Linux版本,比如注重安全的Kali,日常熟悉的Debian、Ubuntu、Suse等等。

5

6

7

选择自己想使用的系统安装即可,比如我选择了Ubuntu。

8

3. 初始化Linux配置

安装完成后,通过开始菜单栏打开运行Linux系统(当然也可以直接搜索Linux的名字打开)。

9

打开后会通过一段时间初始化,然后就会提示添加一个新用户,此用户会默认带sudo功能(什么是sudo?不知道的可以留言),然后设置用户名密码。

10

4. 运行Linux系统

有三种方法运行Linux系统。

一是搜索bash打开:

11

二是通过Win10的命令行模式,打开cmd之后运行bash命令,就可以进入Linux系统:

12

三是通过开始菜单栏打开安装的Linux系统或搜索Linux系统名,比如我使用的Ubuntu:

13

5. 开启远程接入

不管是通过cmd运行bash,还是开始菜单栏运行Linux系统,在使用中不是很方便,比如复制粘贴、记录log等等,都无法很舒爽的实现。

在简单的摸索后,终于实现了使用putty、secureCRT、xshell等软件的远程登录。

第一步是要先检查子系统中是否开始了sshd服务,如果没有开启,使用相应命令开启。

14

然后配置一下sshd服务(vi /etc/ssh/sshd_config),比如修改一下port等等,比较重要的是要检查是否允许使用密码登录,修改完成需要重启ssh服务:

15

Note:对于图片中could not load host key的错误,可以通过执行“dpkg-reconfigure openssh-server”来解决:

16

接下来就可以通过远程登录Linux子系统了(IP: 127.0.0.1. Port:​sshd_config中设置)。

17

6. 开机自启动WSL的ssh服务

在使用的过程中发现一个问题,就是每次Windows系统重启后,都需要打开Linux系统,然后开启ssh服务后才能再次远程登录,完全没有了什么便利性。

多次尝试后找到了其解决办法,就是通过Windows开机自启动功能调用一个子系统里的脚本来实现,具体设置如下。

首先,要在Linux系统里写一个脚本,并通过chmod命令给脚本添加运行权限,脚本内容如下:

1
echo "<在第三章中设置的密码>" | sudo -S /usr/sbin/service ssh start

18

然后在Windows下写一个vbs程序(如wsl.vbs),并放到开机自启动的路径下。​ vbs内容如下:

1
2
3
set ws=wscript.createobject("wscript.shell")
ws.run "C:\Windows\System32\bash.exe",0
ws.run "C:\Windows\System32\bash -c '/usr/sbin/ssh_start'",0

自启动路径:%AppData%\Microsoft\Windows\Start Menu\Programs\Startup

19

接下来就可以开机后直接打开secureCRT等远程登录软件顺畅使用Linux子系统了。

7. 体验如何?

目前已经使用两年多,整体体验舒爽,已经作为日常工作不可或缺的Linux环境。

子系统直接调用Windows主机资源,默认联网,这样就可以直接安装自己需要的Linux软件,比如没有python,安装之。

20

另外子系统也可以直接读取主系统文件,主系统的各个分区自动挂载到子系统里。

21

但是,子系统也有一些限制,比如不能直接使用Linux图形界面(CLI不香吗?)、使用docker也有问题等等,所以如果想做更多的实验还是最好使用VirtualBox或者VMware的虚拟机方案。

以上!

希望可以让日常的工作环境更加舒畅。


欢迎关注公众号:七禾页话(qiheyehk),旅行、摄影。。。偶尔分享技术周边