前言
之前一度使用過WSL,但是由于各種不兼容,以及檔案系統與Windows共享,導致無法進行Android原始碼編譯(需要大小寫敏感的檔案系統等),故一直使用雙系統的方案;
最近受到越來越多朋友的安利,說WSL2如何如何的爽;
于是,WSL2搞起!
步驟
以下步驟主要參考官網介紹:https://docs.microsoft.com/zh-cn/windows/wsl/install-win10
用藍色高亮部分是我遇到的坑,以及解決方案:
1. 以管理員模式運行PowerShell并輸入:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
完成后重啟電腦;
2. 下載WSL內核并安裝:(建議從官網鏈接跳轉下載,下方鏈接可能會失效)
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
3. 再次以管理員模式運行PowerShell并輸入:
wsl --set-default-version 2
4. 打開Microsoft Store,下載對應的Linux分發版本,我選擇的是Ubuntu;
5. 點擊獲取、安裝;
6. 安裝完成后點擊運行;
7. 在設定默認帳號密碼時,我遇到了如下問題:
Installing, this may take a few minutes...
The attempted operation is not supported for the type of object referenced.
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username:
中文版報錯應該是:參考的物件型別不支持嘗試的操作,
解決方案二選一:
1. 關閉所有VPN,或基于VPN原理的各種加速器(比如UU加速器),然后命令列或者PowerShell中運行netsh winsock reset
2. 使用https://www.proxifier.com/tmp/Test20200228/NoLsp.exe中提供的可執行檔案,在命令列或PowerShell中運行NoLsp.exe C:\windows\system32\wsl.exe
8. 在設定完成后,我進入Ubuntu,發現已經錯過新用戶添加的步驟了,只能默認以root用戶登錄;因此需要手動添加用戶:
以下命令在Ubuntu下以root用戶執行:
adduser ryan
然后按照提示輸入密碼與詳細資訊即可;
用戶創建完成后,需要在PowerShell中再修改一下默認登陸的用戶:
ubuntu config --default-user ryan
重新登陸Ubunbu,即是默認使用ryan用戶登陸的狀態;
美化
安裝Windows Terminal
默認Ubuntu的終端只能是“能用”的狀態,完全無法滿足生產力需求,因此,使用更為強大的終端則是下一步關鍵事務;
首先嘗試使用微軟最近熱推的Windows Terminal,安裝非常簡單,在Microsoft Store中搜索Windows Terminal即可找到:

安裝完成后打開,可以看到這玩意非常全能,PowerShell/CMD/WSL全支持:

快捷鍵與Ubuntu的Gnome Terminal基本一致,使用上手非常快;
將Windows Terminal添加到右鍵背景關系選單中
網上有比較全的內容,搜索“Windows Terminal 右鍵”即可,可能結果各有不同,但主要都是通過修改注冊表實作;
這里講一個我使用的,也是自認為最快、最原始的手動修改方法:
1. 運行regedit,即注冊表編輯器
2. 在注冊表編輯器中,找到如下路徑:HKEY_CLASSES_ROOT - Directory - Background - shell
3. 在該路徑下,創建一個Key,名為wt;
4. 在該Key的default鍵中,撰寫背景關系選單的名字,比如“Windows terminal here”
5. 再在wt下床架一個子Key,名為command;
6. 為command下的default鍵中,寫上Windows terminal的可執行檔案名(可以通過cmd或powershell嘗試,如果PATH變數是正確設定過的,這里填wt.exe即可,否則需要輸入完整路徑)
最終結果如圖:


7. 然后,Windows terminal here選項應該就可以出現在目錄右鍵的背景關系選單中了;
8. 但是可以發現,目前無論在哪里點擊右鍵,其打開的Windows Terminal都是$HOME變數定義的目錄;因此需要做如下修改:
9. 在Windows Terminal中打開Settings (設定),這是一個settings.json檔案,或者通過如下路徑手動打開:
$HOME\AppData\Local\Packages\Microsoft.WindowsTerminal_***\LocalState\settings.json
打開后在list對應的專案下,追加"startingDirectory": null這一鍵值對,注意格式(可能需要在上一鍵值對后面添加逗號)
結果參考如圖:

10. 既然都改到了這里,那么把Windows Terminal默認開啟的型別也改了吧,默認是PowerShell,而我們安裝Windows Terminal主要是為了使用WSL,因此可以將其默認改為打開WSL終端;
修改是通過修改defaultProfile這一鍵值對實作的,值修改為Windows Terminal的guid即可,例如我這里就這么修改:
"defaultProfile": "{2c4de342-38b7-51cf-b940-2309a097f518}",
后續使用右鍵打開Windows Terminal即是默認用WSL打開,且目錄為當前目錄;
更多關于Windows Terminal的美化以及易用性配置,持續更新中;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/244203.html
標籤:其他
