[安利] WSL Linux 子系統,真香!附完整實操

WSL 初體驗html

WSL Linux 子系統體驗原生 Docker,真香!node

Windows 的 linux 子系統出來挺長時間了,你體驗過了嗎?python

今天就帶你折騰一下吧,畢竟想甩掉超佔用硬件資源的大塊頭VM,好比VMwarelinux

本文獻給愛折騰的你,折騰吧,後浪!nginx

簡單說下這篇文章的重點:web

  • 安裝 WSL 的全過程
  • 選擇性升級到 WSL 2 的全過程
  • WSL 2 中體驗原生 Docker

啥是 WSL ?

WSL 是 Windows Subsystem for Linux 的縮寫,意思是 linux 版的 window 子系統。docker

引用自:微軟官網 https://docs.microsoft.com/zh...shell

The Windows Subsystem for Linux lets developers run a GNU/Linux environment -- including most command-line tools, utilities, and applications -- directly on Windows, unmodified, without the overhead of a virtual machine.ubuntu

You can:vim

  • Choose your favorite GNU/Linux distributions from the Microsoft Store.
  • Run common command-line tools such as grep, sed, awk, or other ELF-64 binaries.
  • Run Bash shell scripts and GNU/Linux command-line applications including:

    • Tools: vim, emacs, tmux Languages: NodeJS, Javascript, Python, Ruby, C/C++, C# & F#, Rust, Go, etc. Services: SSHD, MySQL, Apache, lighttpd, MongoDB, PostgreSQL.
  • Install additional software using own GNU/Linux distribution package manager.
  • Invoke Windows applications using a Unix-like command-line shell.
  • Invoke GNU/Linux applications on Windows

簡單的說就是,Linux 的 Windows 子系統讓開發人員無需虛擬機就能夠直接在 Windows 上運行 Linux 環境,包括大多數命令行工具、程序和應用。

使用 WSL 的好處是:

  1. 與在虛擬機下使用 Linux 相比,WSL 佔用資源更少,更加流暢;
  2. WSL 能夠對 Windows 文件系統下的文件直接進行讀寫,文件傳輸更方便;
  3. 剪貼板互通,能夠直接在 Windows 下其它地方複製文本內容,粘貼到 WSL;

備註:其實我挺喜歡虛擬機的,畢竟是模擬了硬件,比較成熟,穩定。

開啓WSL支持

使用管理員權限的 Shell 才能安裝 WSL。

按 Win+X, 找到 Windows PowerShell (管理員),並複製執行命令。

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

以上命令會激活 WSL 服務,而後須要重啓系統

重啓以後,Win + R,輸入 appwiz.cpl,左上角找到「啓動或關閉 Windows 功能」,會看到這個選項處於選中狀態。

其實吧,上面的命令就至關於手動去勾選這個功能。

直接命令執行效率可能更高些。

image-20200606122027686

安裝 WSL 發行版

在 Windows 應用商店搜索 ubuntu ,選擇本身喜歡的版本,安裝便可。

這裏我選擇的是 Ubuntu 20.04 LTS,以後的全部內容也是基於 WSL Ubuntu 編寫。

image-20200606122740396

下載,安裝以後,第一次打開會初始化一會

而後設置個用戶名,密碼

image-20200606125309524

到這裏,其實我們的 WSL 就安裝好了。

接下來咱們讓它更好用吧!

apt 換源

Debian / Ubuntu 的官方源在國內訪問很慢,我們更換爲清華大學 TUNA 的軟件源鏡像

PS:也能夠用阿里雲的鏡像,我體驗了沒那麼快(可能我姿式不對),就不推薦了。

  • 執行下面命令,備份 apt 安裝源:
$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
  • vim 編輯 sources.list :
$ sudo vim /etc/apt/sources.list
  • 將 sources.list 中的內容替換以下

注意:這裏是Ubuntu 20.04 LTS的,

若是是其餘版本的ubuntu,自行訪問[ 清華大學開源軟件鏡像站]去查找對應版本的鏡像配置

# 默認註釋了源碼鏡像以提升 apt update 速度,若有須要可自行取消註釋
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

# 預發佈軟件源,不建議啓用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

更新軟件

  • 更新軟件源中的全部軟件列表,能夠看到飛快的在刷屏,嘩嘩嘩的
$ sudo apt-get update
  • 更新軟件
$ sudo apt-get upgrade
# 更新內容稍多,差很少幾分鐘,玩會手機吧。。。

配置SSH服務器

我們用慣了 相似 xshell ,SecureCRT 這種 SSH 工具鏈接 Linux,因此順便把 SSH 功能打通吧,用的順手,畢竟 PowerShell 用的不是太方便!

WSL 上的 SSH 服務器沒有自動配置,須要手動從新安裝,首先能夠運行如下命令來檢查

$ sudo service ssh stop
$ sudo /usr/sbin/sshd -d

image-20200607000536951

若是輸出信息包括以上信息,即找不到 key,從新安裝 openssh-server 就能夠解決問題

$ sudo apt purge openssh-server
$ sudo apt install openssh-server

而後須要配置 /etc/ssh/sshd_config,用 sudo 權限運行 vim 修改以下三個關鍵字

記得刪除 #

Port 22
# 這兩行容許了 root 帳戶和密碼登陸
PermitRootLogin yes
PasswordAuthentication yes

image-20200607001214265

而後記得重啓 ssh 服務

$ sudo service ssh restart
$ sudo service ssh status

若是須要用密碼登陸 root 帳戶,還須要設置密碼

$ sudo passwd root

而後就可使用 SSH 工具進行鏈接啦,本地直接 localhost 便可

image-20200607001637550


OK,到此,我們的 WSL 已經配置完畢。

盡情體驗,安裝 Nginx,Redis,MySQL .... 折騰吧後浪!


這就完了???

對,差很少就完了。

以上內容就是 WSL 安裝的所有內容。

客官要體驗下 WSL2 嗎?

去年Build大會,WSL2 正式推出。

WSL2 附帶了一個真實的 Linux 4.19 內核,可以帶來完整的系統調用兼容性,而且可以直接藉助自動更新進行升級維護,無需更新整個Windows Linux的子系統。

同時,WSL2將比第一代的WSL1版本運行速度更快,提高了文件系統的I/O性能和與Linux的兼容性,且可本機直接運行 Docker 容器等這點我喜歡,嘿嘿)。

那麼我們來查看一下咱們上面安裝的 WSL 版本,

執行命令 wsl -l -v,若是是這個結果,那麼恭喜你呀,WSL 1!

image-20200607102652775

什麼?個人結果不是這樣???怎麼我執行命令控制檯提示什麼無效的命令選項????
相似下面這樣的結果,沒事,我知道你會這樣,畢竟我是一步步爬着過來的,跟我一塊兒繼續往下看。

image-20200607111719671

那麼,我們接下來講,WSL2 使用是有門檻的

你的系統,須要是知足版本的內部版本,強調一下內部版本,其實就是預覽(不穩定)版本。

image-20200607112203509

因此,下面要不要升級到 WSL2,有兩方面考慮,

  • 一個是你的 windows 版本能不能跟的上
  • 另外一個你能不能承擔升級預覽版本帶來的風險?

若是知足不了,就折騰 WSL 1 也挺好,最起碼體驗一把 windows 的進步。

先升級到內部預覽版本

步驟就不寫了
百度找一篇給你 【Windows】WIN10如何獲取內部預覽版本

注意:不是你填個信息申請一下立馬就能夠用到內部預覽版了,要等 windows 推送給你,我大概等了三四天,發現有更新了,而後更新後再執行 wsl -l -v,就正常了。

image-20200607114436053

更新後,主界面,右下角,會有一些內部預覽版的標識。。。

image-20200607214630606

準備好了嗎?下面我們開始更新到 WSL2 吧,跟我一塊兒不停的重啓電腦。。。

更新到 WSL 2

啓用「虛擬機平臺」可選組件

安裝 WSL 2 以前,必須啓用「虛擬機平臺」可選功能。

以管理員身份打開 PowerShell 並運行:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

image-20200607112931349

從新啓動計算機,以完成 WSL 安裝並更新到 WSL 2。

將 WSL 2 設置爲默認版本

在 Powershell 中運行如下命令,將 WSL 2 設置爲默認版本:

# 1.WSL 提供了版本轉換工具,將 wsl1 轉爲 wsl2,
# 注意轉換時間可能較長,耐心等待,若是時間過久沒反應,時不時按下 Enter 看看有沒有更新
wsl --set-version Ubuntu-20.04 2
# 2.將 WSL2 設置爲默認版本
wsl --set-default-version 2

image-20200607134904093

如今咱們運行wsl -l -v,看到 VERSION 已是 2 了!

再次恭喜,咱們已經成功將 WSL 1 升級爲 WSL 2 了!!!

一個真正的 Linux 內核的系統已經在你的 Windows 裏了!

在WSL2子系統Ubuntu中安裝Docker-CE

其實我升級WSL 2 的目的,是想體驗原版的 Docker 的,哈哈,來吧,既然都跟到這裏了,就開始吧!
安裝 Docker-CE
$ curl -skSL https://mirror.azure.cn/repo/install-docker-ce.sh | sh -s -- --mirror AzureChinaCloud
http://mirror.azure.cn/help/d...

image-20200607154054964

啓動Docker,查看 Docker 版本
$ sudo service docker start
$ sudo docker version
跑個應用?

你說你裝好了,卻是跑個應用看看呀?

好吧,

像 Docker 官網的安裝步驟同樣,也會有這麼一步,經過運行 hello-world 映像來驗證 Docker Engine 是否已正確安裝。

$ sudo docker run hello-world

image-20200607155649450

我成功了,你呢?

感興趣能夠跟下來實操哦,畢竟我是一點點坑爬上來的纔有這篇文章,爲了復原真實步驟,裝了兩次 WSL。

只點贊或收藏等於學會?不存在的,實操一下吧!

相關文章
相關標籤/搜索