Windows不安裝虛擬機如何使用Linux系統(tǒng)作為開發(fā)工具?
哈嘍,大家好,我是仲一。作為嵌入式開發(fā)程序員,常常需要在Linux環(huán)境下編譯一些代碼。安裝虛擬機比較方便,但是,太占用內(nèi)存了。性能不好的電腦開了一臺虛擬機后,可能就干不了其他事情了。安裝雙系統(tǒng)也比較麻煩,常常需要重啟電腦來完成系統(tǒng)的切換。
今天給大家介紹一款windows上的Linux工具,既不需要虛擬機也不需要雙系統(tǒng),就能在windows上輕松使用Linux。
WSL簡介
Windows Subsystem for Linux(簡稱WSL)是一個為在Windows 10上能夠原生運行Linux二進制可執(zhí)行文件(ELF格式)的兼容層。
它是由微軟與Canonical公司合作開發(fā),目標是使純正的Ubuntu 14.04 "Trusty Tahr"映像能下載和解壓到用戶的本地計算機,并且映像內(nèi)的工具和實用工具能在此子系統(tǒng)上原生運行。
簡而言之,使用WSL相當于在Windows中內(nèi)嵌了一個Linux系統(tǒng),它與所屬的Windows系統(tǒng)可以互相訪問本地系統(tǒng),可以使用Windows的網(wǎng)絡訪問互聯(lián)網(wǎng),繼承Windows中配置的hosts等,除了Linux GUI操作以外的其他操作,都可以在wsl中使用。
WSL當前有兩個版本,WSL 1和WSL 2,目前的最新版本是2,相對于版本1,WSL 2主要的區(qū)別是提高了文件系統(tǒng)的性能和系統(tǒng)調(diào)用的兼容性。推薦使用WSL 2。
安裝WSL
確認windows版本
并不是所有windows都支持WSL,需要確保系統(tǒng)版本在 Windows 10 Build 16237或更新版本??梢酝ㄟ^ 【設(shè)置】查看系統(tǒng)版本號。
開啟WSL服務
需要先在Windows中啟用“適用于Linux的Windows子系統(tǒng)”。
打開“控制面板”->“程序和功能”,在左側(cè)欄選擇“啟用或關(guān)閉Windows功能”,在打開的對話框中找到“適用于Linux的Windows子系統(tǒng)”并打勾,點擊【確定】關(guān)閉對話框,等待系統(tǒng)安裝新功能完成,并按提示重啟電腦。
Microsoft Store安裝WSL
在微軟應用商店搜索 Linux,可以看到一系列 Linux 發(fā)行版,根據(jù)自己需要選擇適合自己的發(fā)行版,這里我選用 Ubuntu 20.04,下載完成后啟動,等待安裝完成,輸入賬戶和密碼,我們便得到了一個 Linux 環(huán)境了。
WSL基本設(shè)置
配置用戶名和密碼
在開始菜單中打開 Ubuntu 后,Ubuntu 會進行較長時間的安裝和初始化,之后會提示你設(shè)置 Linux 的用戶名和密碼。
更換源
更換/etc/apt/sources.list文件里的源
安裝好ubuntu20.04后,默認的軟件更新源是國外的,在國內(nèi)使用速度很慢,需要更換成國內(nèi)的源,這樣才能正常安裝和更新軟件。
備份源列表
Ubuntu配置的默認源并不是國內(nèi)的服務器,下載更新軟件都比較慢。首先備份源列表文件sources.list:
# 首先備份源列表
sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup
打開sources.list文件修改
選擇合適的源,替換原文件的內(nèi)容,保存編輯好的文件, 我們選擇的是中科大源。
# 打開sources.list文件
sudo vim /etc/apt/sources.list
編輯/etc/apt/sources.list文件, 在文件最前面添加阿里云鏡像源:
#中科大源
deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
#添加阿里源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
#添加清華源
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 multiverse
刷新列表
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential
安裝SSH服務
默認情況下,首次安裝Ubuntu時,不允許通過SSH進行遠程訪問。
在Ubuntu上啟用SSH非常簡單。以root 用戶或具有sudo特權(quán)的用戶執(zhí)行以下步驟:
sudo apt update
sudo apt install openssh-server
安裝完成后,SSH服務將自動啟動??梢酝ㄟ^鍵入以下命令來驗證SSH是否正在運行:
sudo service ssh status
輸出顯示該服務正在運行,并已啟用以在系統(tǒng)引導時啟動:
* sshd is running
現(xiàn)在,就可以通過SSH連接到Ubuntu系統(tǒng)。
啟用SSH登陸
使用cp 命令將 SSH 相關(guān)配置文件進行備份:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
使用 vim 編輯器編輯 「sshd_config」文件:
sudo vim /etc/ssh/sshd_config
Port 8022(因為 Windows 10 的 SSH 端口已經(jīng)默認被占用,所以我換成了一個新的端口)
ListenAddress 0.0.0.0 (去掉前面的 #)
PermitRootLogin yes (修改成 yes)
PasswordAuthentication yes(改成 yes)
然后輸入命令:service ssh start 啟動 SSH。
這樣,就可以通過遠程登錄工具登陸WSL了。
安裝圖形化界面
windows 安裝VcXsrv
WSL目前并不支持圖形界面,首先下載VcXsrv, 直接根據(jù)安裝程序一直默認安裝即可,可以換一下安裝路徑。
安裝以后會有兩個程序,分別是XLaunch和VcXsrv,可以用來遠程訪問linux。
啟動XLaunch,選擇:“one large window”,Display number設(shè)置成0,其它默認即可:
Ubuntu內(nèi)安裝桌面環(huán)境
sudo apt-get install ubuntu-desktop unity compizconfig-settings-manager
sudo apt-get install xfce4
執(zhí)行以下指令
export DISPLAY=localhost:0
ccsm
自動彈出ccsm的配置界面。
按照下圖配置,完成后點close即可
將下列命令寫入~/.bashrc,每次開機自動執(zhí)行。
export DISPLAY=`cat /etc/resolv.conf | grep nameserver | awk '{print $2}'`:0
然后執(zhí)行source ~/.bashrc命令即可。
再在 WSL 中啟動 Xfce 會話
startxfce4
XLaunch中出現(xiàn)如下畫面即為安裝成功。
注意事項
在使用 sudo systemctl start ssh 啟動ssh服務時,系統(tǒng)產(chǎn)生如下報錯:
System has not been booted with systemd as init system (PID 1). Can't operate.
原因:WSL 使用的是經(jīng)典的SysV init(sysvinit)系統(tǒng)。
可以通過 ps -p 1 -o comm=命令查看當前系統(tǒng)使用哪個init系統(tǒng)。
hongyi@DESKTOP-LHH3HQP:/home$ ps -p 1 -o comm=
init
解決方法:不要使用systemctl命令,而是使用等同的sysvinit命令。
本文轉(zhuǎn)載自微信公眾號「嵌入式與Linux那些事」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系嵌入式與Linux那些事公眾號。