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條街。再說了,這並不做爲咱們工做的內容,因此接下來你本身看着辦。