1. 程式人生 > >Win+Linux單系統解決方案——WSL(入門篇)

Win+Linux單系統解決方案——WSL(入門篇)

介紹

作為一名程式設計師很多時候需要Linux環境,但是由於PS等某些工具,也不能拋棄Windows,需要雙系統來回切 換很是麻煩,用虛擬機器又擔心效能損耗,但是這麼久也是將就著過來了,直到知道了WSL.
這篇文章介紹了安裝WSL中的一些坑,希望將來的人能少走一些彎路(教程足夠詳細萌新都能看懂的那種).

WSL(Windows Subsystem for Linux) 適用於Linux的Windows子系統

(總感覺這個官方翻譯有點怪怪的,是不是直譯成 Windows的Linux子系統更合適,雖然還是怪怪的).
這個專案已經啟動了很長的時間,剛開始有著很多問題,甚至連子系統的存在都沒有意義,所以一直沒有安裝, 但是看更新日誌專案似乎已經成熟了就決定試一試,結果看來常用的軟體包如GCC.JDK,GIT,SSH等都沒有問題值得一用,而且拿來入門也不差啊.

開始

在開始之前先確定一下Windows版本是不是Windows10,然後建議更新到最新版.
開啟 Microsoft Store , 搜尋 Linux 會有三個結果 Ubuntu , openSUSE Leap42 , SUSE Linux Enterprise Srever


因為日用為主所以這裡選擇 Ubuntu,用Ubuntu作為示範(WSL裡的Ubuntu自帶git,vim,ssh等常用軟體,其他的沒用過不清楚).
傻瓜式安裝完成之後(連下一步都沒有),會彈出通知直接開啟就行,如果沒有通知可以去開始裡找到剛剛安裝好的 Ubuntu 開啟就行了

但是,這個時候會發現,不能用提示沒有開啟WSL,需要啟動後重試

需要到 控制面板\所有控制面板項\程式和功能 中選擇 啟用或者關閉Windows功能
找到 適用於Linux的Windows子系統 並勾選,然後 確定 選擇 立即重新啟動重啟之後再次開啟 Ubuntu 就可以使用了,根據提示輸入使用者名稱,兩次輸入密碼就可以看見熟悉的命令列
然後熟悉的套路,先設定root使用者
sudo passwd root

先輸入剛剛設定的使用者密碼,然後兩次輸入要設定的root使用者密碼


su root

然後輸入root使用者的密碼即可,接著更換 apt 的資料來源

cd /etc/apt  #進入配置檔案所在目錄
cp sources.list sources.list.bak  #備份配置檔案
vim sources.list  #編輯配置檔案

將下面的配置覆蓋 sources.list 中的配置

在用vim進行這部操作的時候,用 +p 貼上系統剪下板會出現錯誤(具體大家可以試試,如果有人能成功還請告知一下方法)
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse  
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse  
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse  
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse  
##測試版源  
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse  
# 原始碼  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse  
##測試版源  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse  
# Canonical 合作伙伴和附加  
deb http://archive.canonical.com/ubuntu/ xenial partner  
deb http://extras.ubuntu.com/ubuntu/ xenial main  

於是我就想,既然這是安裝在Windows上的子系統,那是不是應該有著類似於共享資料夾的東西,於是找到了這麼一個資料夾

C:\Users\zga96\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs

這個就是 Ubuntu WSL版的根目錄,接著到 *etc\apt* 下找到 sources.list 用之前貼的配置檔案覆蓋即可.接著更新資料來源

sudo apt-get update  #更新源  
sudo apt-get upgrade  #更新軟體 

更新源的過程中有可能會報錯(如上圖)重新執行即可(404可以無視),更新軟體需要等待的時間稍微偏長大概5-10分鐘,但是沒關係我們可以再開一個窗口乾別的事啊,不然怎麼是Linux呢,在開始選單再次點選 Ubuntu 就可以再開啟一個會話視窗(或者在狀態列的圖示上右鍵,然後點選 Ubuntu 也行).
這個時候可以秀一波 screenfetch (滑稽),好了現在來解決下一個坑,在某些電腦中會話視窗的配色有很嚴重的問題,即藍色很暗看不清,但是有些電腦又沒有問題(不清楚觸發條件,我給公司電腦裝的時候有問題,家裡電腦又沒問題,系統內部版本相同,難道是I卡和A卡的區別?逃),WSL的會話視窗配色實際上取決於 CMD 屬性裡顏色標籤裡面的配色,發現兩臺電腦的配色的色值還真不一樣(如下圖)

這就需要用到一個開源的CMD調色工具ColorTool下載解壓zip檔案,然後用 CMD 開啟到解壓的路徑 ,然後

colortool.exe -b deuteranopia
colortool.exe -b OneHalfDark
colortool.exe -b OneHalfLight
colortool.exe -b solarized_dark
colortool.exe -b solarized_light
這五套主題自己看著選,如果看重了就開啟CMD的屬性和預設值分別點一次確定,然後重新開啟Ubuntu就會發現配色修改好了(當然CMD的配色也被修改了)

上面是公司的非正常配色修改之後,下面是我的筆記本用的原始配色的比對圖

好了接下來就和正常玩shell一樣了,盡情的享受執行WSL吧(另附標準結局)