1. 程式人生 > >啟用Win10的Linux子系統

啟用Win10的Linux子系統

Linux on Windows簡介

    Win10一週年版推出了用於Windows的Linux子系統這一功能,最近體驗了一下感覺極佳。不說別的,有一個完整的Linux環境就可以完爆一切bash環境了,痛快地解除安裝了Git for Windows/Cygwin/minGW/msys/babun吧!

    Linux子系統和Windows的結合真是有一種神互補。子系統可以掛載windows的檔案系統,於是就可以在現有的檔案系統下幹一個完整的Linux環境所能幹的事情。軟體豐富更適合日常使用的Windows與開源且適合開發的Linux結合使得開發更加簡便,不用再考慮雙系統虛擬機器這種效率不高的結合方式了,Linux on Windows用一種應用軟體的方式實現了系統軟體的功能,這一點可以說讓人驚豔了。重要的是這樣同時執行的兩個系統並不是相互獨立的,而是可以協作的,以後完全可以使用Windows下的工具進行編碼,然後在Linux子系統進行Git提交,當然,它所能夠發揮的作用遠遠不僅於此。

如何啟用

啟用Linux子系統

備註:在新版本的win10中,直接更改系統功能就可以從應用商店下載Ubuntu,然後通過Ubuntu應用進入就可以自動開始下載。

啟用開發者模式

    系統模式的設定位於所有設定->更新和安全->針對開發人員, 更改後如下:

更改系統功能

    使用win+X快捷鍵調出系統管理選單後點擊程式與功能,選擇啟用或關閉Windows功能,修改“適用於Windows的Linux子系統一項”,勾選之,確認並重啟。

安裝系統

    使用cmd下載Linux系統。開啟功能以後系統中其實還沒有安裝Linux,需要使用cmd完成安裝,這一步可能比較漫長。如果PC中已經安裝了bash工具如msys(git for Windows),開啟管理員許可權的cmd,輸入bash

,按照提示一步一步下載即可。下載的過程比較漫長,耐心等待。

下載完成以後配置使用者名稱密碼即可愉快地使用ubuntu啦!

啟用root許可權並建立使用者

    接下來可以輸入sudo passwd root建立root使用者(最高許可權)。如果需要的話可以再使用adduser username建立一個新user(不建議使用useradd), 使用者的切換通過su username完成。

切換到root使用者輸入su即可。

完成升級

    啟用了root使用者,接下來操作就比較方便了,先使用su切到root使用者,然後直接使用apt-get完成軟體包的升級。(apt-get update

apt-get upgrade)。

    如果升級過程中出現連線錯誤(__Assertion__、method dies),先把命令再輸一次試試。如果cmd保持一個類似於宕機的狀態太久(比如20分鐘),先按一次ctrl+C試試。

基本配置

修改源

    源的修改有兩種方式:

  1. 通過修改源列表;
  2. 通過apt-add-repository命令。

    源列表檔案位於/etc/apt/sources.list,可以使用vim直接完成修改,建議先儲存原檔案cp /etc/apt/sources.list /etc/apt/sources.list.backup,然後再使用vim編輯,將找到的源直接加在列表後面。使用cmd開vim比較方便的在於可以直接將系統剪貼簿的內容帖進去。在插入模式下(按i進入)將游標移到合適的位置,然後滑鼠右鍵點選cmd標題欄,編輯->貼上即可。修改完成以後按Esc退出插入模式,輸入:x並回車儲存並退出。完成以後可以apt-get updateapt-get upgrade來一次。

升級系統

    輸入lsb_release -a可以看到當前的系統版本為:ubuntu 14.04.4 LTS, 最新版本為16.04.1 LTS, 可以更新一下。

  1. apt-get install update-manager安裝更新管理器;
  2. do-release-upgrade -f DistUpgradeViewNonInteractive -d完成更新。

如果上述步驟沒有達到更新效果,可以再嘗試以下步驟:

  1. dpkg --configure -a
  2. apt-get update,更新包列表,這一步可能會詢問是否繼續,YES即可。
  3. apt-get upgrade,升級軟體包;
  4. apt-get dist-upgrade,完成升級;
  5. apt-get autoremove,自動刪除不需要的包。

如果遇到網路問題,參照完成升級 ,解決。完成以後再輸入lsb_release -a就是金光閃閃的16.04啦~

優雅地使用

使用zsh

    ubuntu的預設shell使用bash,但是外觀不太好看而且功能不夠強大。zsh是一個相對好用一點的shell,可以使用zsh替換預設shell。

使用步驟

安裝zsh

1
$ apt-get install zsh

安裝wget和git

1
$ apt-get install wget git

執行oh-my-zsh配置指令碼

1
$ wget --no-check-certificate https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

替換預設shell

1
$ chsh -s /bin/zsh

    到這裡zsh的安裝就完成啦,可以關閉命令列然後重新輸入bash進入Linux,然後輸入su登入root賬戶檢視效果。這時可以輸入echo $SHELL檢視當前的shell版本。

    注意:輸入bash進入Linux後其實是一種未登入的狀態,需要輸入su username切換到指定使用者才能正常使用。

zsh配置

    儘管zsh非常強大,但是預設設定還是不夠完美,可以通過修改/root/.zshrc檔案完成配置的更改,修改完成以後輸入source /root/.zshrc即可檢視效果。

    zsh的主題可以在這裡 找到,修改檔案中的ZSH_THEME="robbyrussell"即可更改主題。不過由於cmd本身使用單個字型檔案顯示字元,所以一些很漂亮的主題可能不太好用,建議選擇沒有太多特殊符號的主題。由於zsh的配置其實是一件非常有趣的事情,故其包含的內容也非常多,這裡就不多說了。

cmd設定

    儘管zsh非常漂亮,但是在cmd中的顯示依然要通過cmd的支援,所以建議對cmd也進行一些修改,右鍵標題欄->預設值可以設定預設屬性,屬性項裡的設定可以設定本次會話的顯示效果。cmd預設使用點陣字型,但是不太好看,推薦使用TrueTypeFont字型。下載好TrueTypeFont字型檔案並安裝後如果在cmd中無對應選項,可以修改登錄檔中關於concole的設定。

    找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont\新增項即可。如新增000項,值為要新增的字型名。

更好的選擇

    推薦使用cmder代替cmd,外觀極美的一個命令列工具,關鍵字高亮、配色和字型都很棒,可定製性很強。不過在cmder中使用Linux on Windows只有登陸後才能正常使用,登入前(輸入bash而未切換到具體使用者)甚至沒有關鍵字高亮和命令重複的支援。

    此外,cmder還提供了對mintty/poweshell等的支援。很優雅~

    使用cmder時可以新建一個空的task,在start-up的框中填入%windir%\system32\bash.exe即可。這樣可以避免歷史命令檔案的讀取異常,保證正常使用上下鍵回看歷史命令。不過由於cmder對vim的支援不太好,可能會有方向鍵的問題。解決方法如下:在框中填入%windir%\system32\bash.exe ~ -cur_console:p:n即可。介面如下:

    如果遇到vim的visual block模式無法進入的問題,在設定中關閉Ctrl+v的貼上功能就好:settings->keys&macro->paste->paste mode #2->do nothing

進階

    w2qw 提供了一種通過bash執行圖形介面軟體的方法。主要步驟如下:

  1. 在Linux中安裝圖形介面的程式(如Firefox)
  2. 在Linux中輸入DISPLAY=:0 firefox)。

    有興趣可以體驗一下~