WSL(Windows Subsystem for Linux)已经装在电脑上好一阵子了,谁若是还没装的,能够看看本文,至少知道个大概,以为有用的话知道该如何作。shell
WSL简单说就是一个能让你在Windows上跑Linux程序的子系统,什么是子系统?贴个图:windows
其实咱们一直在用子系统,它就是Windows子系统,它提供了一系列咱们的Windows应用程序所须要的接口,是子系统将对这些接口的调用转变为对Windows内核的调用,才使得咱们的应用程序可以正常运行,如今多了一个WSL,它能把Linux程序对各系统接口的调用转变为对Windows内核的调用,所以,Linux应用程序能够在Windows系统里跑起来了。Cool!反过来,我能不能在Linux系统里弄一个相似的东西跑Windows程序呢?其实这东西早就有了,叫“Wine”,本身去查。服务器
不是,说了,是子系统,Linux程序与原生Windows程序是并列的。虚拟机与系统彼此隔离,而子系统并不隔离,文件系统能够互访,共用IP地址。还有一点很重要:WSL的资源消耗比虚拟机小得多,你装上了也不会以为系统变慢。ssh
Linux的定义是什么?Mac OS X是否是Linux?其实我我的以为不用太纠结这种问题,WSL用的显然是Windows内核,但它具备至关完整的Linux系统的功能,可以运行几乎全部的Linux程序,它确定是*真正*的Linux,你甚至能够选择不一样的发行版,呃,所谓发行版就是Ubuntu,CentOS,Fedora之类的。ide
固然是可使用Linux上各类强大的工具了,好比ssh,你不用再纠结去哪里下个Windows版之类的了,各类牛X的工具,想要什么,apt-get一下,信手沾来,Linux下那些酷炫的shell命令,如今全都供你差遣,固然你还能够轻轻松松用几个命令搭建一台Web服务器,总而言之,比Windows的命令行界面(如今还有人称之为DOS)高不知哪去了。工具
有,因为它用的是Windows内核,我第一反应就是依赖于Linux内核的CGroups功能的Docker应该是没戏(但也不排除之后会支持,微软daddy太强大),Windows下搞Docker仍是老老实实用虚拟机吧。另外,微软官方说了,WSL不太适合用来当生产环境的服务器,由于它原本就不是为这个设计的,生产环境的服务器仍是用Linux虚拟机吧。ui
哈,想行动了吧?我才不会再写一套“教程”呢,目前网上一搜一大把了。不过我仍是推荐一下:你在应用商店里搜“WSL Guideline”,这个是一个不错的向导,你看这个好了。命令行
目前应用商店有如下这些发行版:设计
我工做用的Linux发行版是CentOS7.4,这里竟然没有,网上有攻略如何安装任意发行版的Linux,但我懒得折腾了,直接选了个Ubuntu,其实大同小异,不一样发行版无非就是一些目录及软件包的区别,习惯如下就行了,好比我习惯用yum,Ubuntu默认没有安装,用apt-get装上就好了,其它同理。code
Linux访问Windows很简单,Windows的C盘会挂到“/mnt/c”去,同理还有“/mnt/d”和“/mnt/e”等,这里面的文件能够直接读写;反过来就有点麻烦,Linux的文件实际上是在这个目录下:
%LOCALAPPDATA%\Packages\{Linux发行版}\LocalState\rootfs
(Linux发行版在我这里是CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc)
这个目录一来藏得比较深,二来你尝试直接在Windows里把文件复制到这个目录的话,Linux是读不出来的,因此要共享文件的话仍是用Windows的文件系统吧。
默认用户是你本身windows的帐号,root用户默认没有密码,你来改一下吧:sudo passwd
其实我也不知道,我只知道它好用,至于要玩得多酷炫我并不在行。好比图形界面,这个是很酷啊,但我以为图形界面仍是Windows的好,Windows图形界面甩KDE/Gnome N条街。再说了,这并不做为咱们工做的内容,因此接下来你本身看着办。