背景
自己最近開始了複習數據結構以及刷題,因爲不太喜歡Windows下IDE解決所有問題的方式,而且想要再練習練習Makefile的編寫以及GDB調試所以需要搭建一個Linux環境來進行代碼的編譯運行,擺在我面前有三種方案:
- Linux實體機
- Linux虛擬機
- WSL(Windows Subsystem for Linux,Windows下的Linux子系統)
爲什麼選擇這個方案
搭建Linux實體機對我來說還是不太舒服的,前段時間用了一個多月的Manjaro KDE桌面的實體機系統,但是感覺還是有很多軟件不方便,沒有用Windows用的舒服,以後如果有兩臺筆記本電腦了我可能纔會再用一臺電腦來主力跑Linux。
Linux虛擬機是我以前在Windows下開發的慣用方案,無論是寫驅動還是做一些應用開發都是在虛擬機下完成的,但是這次我爲何放棄呢,是因爲我每次想要打代碼還得打開虛擬機,或者就是常年掛着,這樣不但在沒用的時候還吃着我的內存,而且因爲分配的核心不多內存不多,做一些較大項目的編譯時是很費勁的。
最後就是WSL的方案了,這個方案現在可以說是微軟一個還在發展中的項目,WSL2也已經開始測試,我們不對它的細節做太多的深究,簡單來說就是在Windows中搞出了一個能原生運行 Linux 二進制可執行文件(ELF格式)的兼容層,當然貌似並不是完整的Linux內核,但是我們來做一些編程開發還是足夠的,更重要的是它沒有圖形界面,而且和Windows共享CPU以及內存資源,可以最大化系統的性能。
爲什麼使用VScode
VScode是微軟的一個編輯器,應該很多人都用過,我就不過多介紹了,它好就好在輕量(比起它的老哥Visual Studio)、免費、可拓展(海量的插件)
我使用它來作爲開發工具的主要原因是它有一個Remote-ssh/wsl的插件,可以在VScode中使用ssh協議來進行遠程編輯代碼、使用終端以及上傳下載文件,這簡直是相當的方便了(愛了愛了)
插件如下圖
安裝步驟
安裝WSL
首先進入微軟應用商店,搜索Ubuntu
顯然它已經明白了我們要幹嘛,選擇Ubuntu 18.04LTS(長期支持版本)下載安裝
安裝成功後它就會出現在開始菜單中,點擊運行,會出現如下的窗口
經過設置用戶名以及密碼後我們就可以正常使用了
Ubuntu系統設置
接下來就是些常規設置,大概有幾項
- 更改軟件源
- 設置SSH
- 安裝需要的軟件包
更改軟件源
備份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
編輯
vim /etc/apt/sources.list
使用如下內容替換
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
保存退出後執行更新操作
sudo apt-get update
設置SSH
對原始 ssh 配置文件進行備份
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
編輯ssh配置文件
sudo vim /etc/ssh/sshd_config
更改如下內容
Port 8022
ListenAddress 0.0.0.0
PermitRootLogin yes
StrictModes yes
PasswordAuthentication yes
重新啓動SSH
sudo service ssh restart
這樣我們就可以使用ssh連接WSL主機了
安裝需要的軟件包
這個就因人而異了,它自帶VIM、GIT,我又安裝了GCC、GDB
這就是常規的Ubuntu下安裝軟件的方式
sudo apt-get install 軟件包
需要什麼裝什麼就OK
VScode配置
VScode中安裝上面的插件後會在左邊的欄裏出現如下按鈕
進去以後選擇WSL,它會自動檢測系統中的WSL子系統,然後輸入用戶名和密碼連接即可
如果是連接遠程主機或者虛擬機,則選擇SSH
ssh 用戶名@xxx.xxx.xxx.xxx
接着輸入密碼即可
這樣就完成連接了,可以隨心使用了,打開文件夾,拷貝文件可以直接拖進去,可以打開終端,很方便,以下是我的使用截圖
希望大家也可以嘗試下這樣的開發方式