# WSL基礎知識 > [!Note] > microsoft 推出 WSL, 可以快速的在 windows 上建立出 linux 核心的子系統. > powershell 升級成 core 比較不會有字集上的問題. > 環境: WSL2 + powershell core + Ubuntu 18.04 LTS ### 首先升級 powershell:(出處保哥部落格 搜尋 sandbox) ``` powershell # 首先調整 ExecutionPolicy 等級到 RemoteSigned(讓下載的程式可被執行, 有一定風險. 請做好確認於下載的第三方套件) Set-ExecutionPolicy RemoteSigned -Force # 安裝 Chocolatey Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) # 建議使用 PowerShell Core 當成主要的命令提示字元環境,問題會少很多,主要差異在:1).所有 In/Out 預設皆使用 UTF-8 編碼 2).預設選用 Unicode 字型 # choco 只會下載最新版的 choco install powershell-core -y ``` ## 本機操作 WSL 子系統的空間 共有幾種方式: - [# WSL用檔案總管開啟目錄](http://jdev.tw/blog/6117/wsl2-intreract-with-windows#top "Back to top") - [# WSL存取Windows磁碟](http://jdev.tw/blog/6117/wsl2-intreract-with-windows#top "Back to top") - [# WSL存取USB隨身碟等移動磁碟](http://jdev.tw/blog/6117/wsl2-intreract-with-windows#top "Back to top") - [# WSL存取網路磁碟](http://jdev.tw/blog/6117/wsl2-intreract-with-windows#top "Back to top") - [# Windows 開啟WSL目錄或檔案](http://jdev.tw/blog/6117/wsl2-intreract-with-windows#top "Back to top") 目前只有將 windows 檔案傳送到 linux 上的需求,經測試 utf-8 的檔案直接透過複製貼上,不會有亂碼的問題 ### 安裝 WSL For Ubuntu 18.04 LTS ```powershell # 開啟 windows Subsystem feature $ DISM /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart # 開啟虛擬機器 feature $ DISM /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart # 重新啟動 $ Restart-Computer # 若第一次開啟 WSL 建議手動更新 Windows update # 設定預設版本: Version 1 Or 2 # 這裡選擇 2 $ wsl --set-default-version [Version] # 查看可用版本 $ wsl --list --online # 安裝指定版本 $ wsl --install -d Ubuntu-18.04 # 移除指定版本 $ wsl.exe --unregister Ubuntu-18.04 # 查看已安裝 WSL 對應的 名稱, 狀態, 版本. $ wsl -l -v # 關閉特定的 WLS $ wsl -t WLinux # 使用 WSL 第一次安裝 ubuntu,可先更新和升級套件 $ sudo apt update && sudo apt upgrade ``` **如果發現版本是 WSL1** ``` bash # 以系統管理員開啟PowerShell $ Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform # 輸入指令將當前存在電腦裡的WSL轉換成WSL2 $ wsl --set-version [name] 2 ``` **app: terminal 無法開啟指定應用** - [安裝 windows terminal](https://github.com/microsoft/terminal) - [錯誤原因](https://github.com/microsoft/terminal/issues/12474) - 使用 terminal 操作 wsl 時,會提供方便的快捷鍵讓你快入啟動安裝的應用。但第一次使用時會發現無法開啟,原因是設定 profile 對應的啟動程序中 **command line** 操作符的問題,請如下調整 ``` terminal_setting // 預設 C:\Windows\system32\wsl.exe -d Ubuntu-20.04 // 調整為 C:\Windows\system32\wsl.exe ~ -d Ubuntu-20.04 // save ``` **將 WSL 子系統的空間變成是網路空間** ```bash $ net use U: \\wsl$\[子系統名稱 ex: Ubuntu-18.04] ``` **到網路空間後,就可以透過檔案管理 UI 去操作,也可透過指令先確認** ```bash $ U: $ dir $ cd .\home\kevin\download\ $ dir ```