用WSL,MobaXterm,cmderlinux配置linux開發環境
離不開Windows的理由很多,作為後端開發需要使用linux的情況也很多,雙系統總歸是不方便,而且linux下的GUI體驗也沒用Win 10好. 如果使用虛擬機器,那麼檔案交換和網路等各種問題也需要解決,對系統的記憶體要求也更高一些.微軟為了讓更多的開發人員留在Win10上面,開發了WSL功能.目前的實際體驗已經很棒,今天介紹一下如何打造一個視覺化的linux開發環境--即在Win10啟動linux的GUI軟體,例如vscode等.在WSL啟動vscode寫程式碼可以有效避免一些Windows和linux的編碼和換行問題.
本教程分為2部分:
- 配置WSL視覺化
- 在WSL使用docker
以下內容中 WSL
和 ubuntu
含義相同, console
和 命令列
含義相同.
知乎的md解析排版太爛了,湊合看吧
配置WSL視覺化
系統要求是Win 10 1803+版本(低於1803的WSL功能有問題),必須是專業版或教育版才有WSL功能.以下內容的命令列如果開頭有 >
字元請忽略.
1. 開啟WSL功能: 控制面板\程式\程式和功能\開發或關閉Windows功能 > 勾選 '適用於linux的Windows子系統'和 'hyper-V'(docker for Windows需要這個功能,也可以使用virtualbox代替), 重啟電腦.

2. Windows store搜尋"WSL"或者"ubuntu"下載ubuntu版本. ubuntu和ubuntu1804是一個版本,ubuntu1604是舊的版本.安裝完成你的Windows應用列表會有一個ubuntu應用,點選圖示即可開啟ubuntu命令列.第一次啟動需要等待初始化,然後設定使用者名稱和密碼.由於字型難看,所以不用這個自帶的命令列而使用下面的cmder.
3. 下載cmder軟體,cmder是Windows下最強的命令列功能. 不要下載mini那個,裡面沒用vim和git.第一次啟動cmder記得修改cmder啟動目錄到d盤根目錄,修改路徑如圖所示.

4. 啟動cmder,輸入 wsl
即可啟動WSL.第一步修改軟體源,使用阿里雲的源.
> sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak > sudo sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list > sudo apt update > sudo apt upgrade -y
5. 安裝必要軟體:java,maven,git,vim
# 安裝你需要的軟體,git和vim是必須的,後面的編輯命令是使用vim >sudo apt install openjdk-8-jdk-headless openjdk-8-jre-headless maven git unzip vim -y
6. 修改WSL下Windows磁碟掛載點,預設的Windows磁碟在WSL的訪問方式是 /mnt/d/
開頭,d表示d盤.但是docker on linux的訪問路徑是 /d
,所以這裡需要修改掛載點路徑.
sudo vim /etc/wsl.conf ##新增3行內容 [automount] root = / options = "metadata"
exit退出WSL重新進入,發現 /mnt
已經沒了,當前目錄應該是 /c/xxx
或者 /d/xxx
.

7. 設定SSH功能,這樣可以藉助MobaXterm的X11轉發功能開啟GUI軟體
>sudo vim /etc/ssh/sshd_config #取消Port的註釋,並將埠改為2222 (埠需要大於1000) #將PasswordAuthentication的值改為yes. #重啟 ssh server: sudo service ssh --full-restart #將ssh server設定為服務: sudo service ssh start
8. 安裝vscode和中文字型,因為WSL沒用中文字型將顯示豆腐塊.
# install chinese fonts for WSL,font name:'Noto Sans Mono CJK SC' sudo apt install -y fonts-noto-cjk fonts-noto-cjk-extra # Win10下載vscode的deb包,cd到該目錄,使用下面命令安裝 sudo apt install ./code_1.31.1-1549938243_amd64.deb # 在WSL要啟動code必要依賴 sudo apt install libgtk2.0-0 libxss1 libasound2
9. 不要關閉cmder的WSL. 下載MobaXterm軟體,MobaXterm是Windows下最強免費ssh軟體. 這裡主要使用它的X11轉發功能. 啟動軟體,點選 左上角的Session > 點選 左上角的SSH,填寫ip,username,port:2222.連線成功的話會提示你輸入密碼.最重要的是需要注意右上角的'X server'是否在跑,預設是跑的,你可以單擊'X server'圖示,彈出是否關閉xserver的提示,說明在跑選擇 否
關閉提示

雖然MobaXterm也是一個很好用的console,但是為了命令列的歷史不要丟失(原因不明),我們所有的命令還是在cmder輸入,MobaXterm僅用於X11轉發.
10. 在cmder輸入 code .
,等待2秒,你會發現Windows工作列啟動了一個vscode,如果沒用啟動成功,說明你的MobaXterm的X11轉發功能有問題.
11. 配置vscode. 上面開啟的vscode有2個問題:中文顯示豆腐塊,和不能全屏. 開啟vscode的設定.
#在字型裡面先設定你想要英文字型,逗號跟上'Noto Sans Mono CJK SC' #搜尋titleBarStyle,將'Window: title Bar Style'設定為 native #上面2個設定也可通過直接編輯檔案設定,例如我的vscode檔案設定是 > cat ~/.config/Code/User/settings.json { "Window.titleBarStyle": "native", "editor.fontFamily": "monospace,'Noto Sans Mono CJK SC'" }
至此,已經可以在linux下面開發了.當然,其他GUI軟體沒用測試不確定是不是會有小問題.但是vscode已經可以應付很多開發工作了,效果如圖.

在WSL使用docker
目前的WSL是不支援執行docker的,但是可以在WSL使用Windows的docker,在使用上面是無感的.
- 安裝docker for Windows. 這個就不細說了,注意docker社群版也是需要註冊才能下載的.
- 啟動docker for Windows,右鍵工作列的docker圖示,"settings",勾上 "expose the daemon on tcp:/localhost:2375 without TLS",這樣在WSL可以訪問這個docker服務.

- WSL安裝docker,詳細內容可以參考官方文件,下面僅列出必要bash命令.
#安裝必要元件 sudo apt install -y apt-transport-https ca-certificates curl software-properties-common #gpg簽名 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo apt-key fingerprint 0EBFCD88 #新增docker安裝源 sudo add-apt-repository"deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" sudo apt update sudo apt install -y docker-ce #通過pip安裝docker-compose sudo apt install -y python python-pip sudo usermod -aG docker $USER pip install --user docker-compose #驗證docker安裝是否成功 docker info docker-compose --version #修改docker服務為Windows的docker echo "export DOCKER_HOST=tcp://localhost:2375" >> ~/.bashrc && source ~/.bashrc #驗證是否可以訪問Windows的docker服務,看image list命令輸出和Windows的命令列下面的image list輸出是不是完全一樣. 可以先在Windows下用docker拉幾個映象.然後在WSL驗證 docker image list
至此,WSL的docker服務也配置完成.