前情提要
https://hwdes.tw/p/FKRTaV
[[toc]]
## Windows Subsystem for Linux
---
WSL如其名,可以讓你在Windows系統中執行Linux相關應用。
在2021/10發布的Windows 11中,甚至有了GUI的官方支援。
這篇目前僅先針對Windows 10(2004/20H1以上版本)
會列出所有初期應該完成的設置
## 注意事項
---
WSL2是基於Hyper-V的架構,若使用可能造成其他虛擬機或模擬器無法啟動。
若要同時使用其他虛擬機軟體,請安裝合適可支援Hyper-V的版本(VirtualBox6以上、VMware15.5.5以上、BlueStacks hyper-V測試版...)。
若必須使用其他無法相容的虛擬機架構,只能暫時放棄WSL2的使用。
## 下載WSL2(含Ubuntu發行版)
---
#### 步驟:
1. 以系統管理員身分執行PowerShell或cmd(命令提示字元)
2. 執行`wsl --install`(會安裝當下預設提供的Ubuntu版本)
( 若需使用 NCL 請改成 `wsl --install -d Ubuntu-20.04` )
4. Enter 等待下載安裝完成
5. 重啟電腦
流程可參考以下文件:
https://docs.microsoft.com/zh-tw/windows/wsl/install#prerequisites
## 完成安裝Ubuntu
---
#### 步驟:
1. 利用工具列的搜尋功能 找到並開啟Ubuntu
2. 等待安裝完成(若報錯請依指示修復或重啟)
3. 依指示設定用戶名稱(英文)、密碼(不會顯現,打完按Enter就對了)
## Ubuntu基本設置
---
#### 複製貼上快捷鍵:
1. 右鍵點Ubuntu terminal上端,叫出「內容」→「選項」。
2. 接著找到編輯選項中的「使用Ctrl+Shift+C/V 進行複製/貼上」勾起
設定sudo免密碼:
- 參考此連結說明
- 游標用鍵盤移動,編輯完依序按
Ctrl+O
、Enter
、Ctrl+X
存檔離開。
更新套件:
-
sudo apt update && sudo apt upgrade -y
-
sudo apt-get update && sudo apt-get upgrade -y
- 建議在每過一段時間後,要裝東西前都做一次更新。
裝gfortran:
-
sudo apt-get install gfortran -y
裝GrADS:
-
sudo apt-get install grads -y
裝rar壓縮解壓縮:
-
sudo apt install rar unrar
裝wget:
-
sudo apt install wget -y
裝net-tools:
-
sudo apt install net-tools
- 即可用
ifconfig
查看自己的ip位置,不裝的話 ip addr
也有相同功能。
裝Anaconda3:
(其實沒什麼需要裝在WSL底下)
-
參考此網頁
-
預先安裝相關套件(Debian)
sudo apt-get install libgl1-mesa-glx libegl1-mesa libxrandr2 libxrandr2 libxss1 libxcursor1 libxcomposite1 libasound2 libxi6 libxtst6 -y
-
從前面網頁內文Installation處 ,找到Anaconda適用「您wsl所裝的發行版」的載點,複製其連結。
-
接著cd一次回到您的家目錄,再執行wget 複製的載點連結
完成下載。
-
下載完成後,以ls
查看並複製其檔名,再執行sudo bash 複製的檔名.sh
。
-
前步執行後連按Enter直到閱讀完條款,之後依指示輸入yes按enter,再輸入指定安裝位置/opt/Anaconda3
按enter繼續安裝。
-
完成安裝後看到"Do you wish the installer to initialize Anaconda3 by running conda init?" 請答yes。
-
關閉並重啟WSL,或執行source ~/.bashrc
。
-
若init沒有成功(conda command not found),須依序執行source /opt/Anaconda3/bin/activate
、conda init
。
-
接著執行conda config --set auto_activate_base False
。
讓您的WSL終端機不要每次開啟就自動進(base)環境
-
最後可cd回您的家目錄,找到前面下載的Anacondaxxxx.sh檔刪除之。
-
conda環境管理指令可參考此網頁
裝NCL:
- 依此官網教學 ,以下2~7點供參。
- 跳過前面wsl指引,從 "Install additional packages" 開始看。
- 善用複製連結以 wget 下載檔案、必要時給予sudo權限
- "additional packages" 中的 libgfortran3 可能無法直接安裝(過舊),須考慮以此方法下載安裝。
- 若使用 Windows10 21H2以上 或 Windows 11,這些作業系統支援 WSLg,可略過 "Install and run Xming" 那段,且無須再 "Set DISPLAY environment variable" 。
- 下載與安裝
若wsl下沒有~/Downloads資料夾,先自己建一個
mkdir /home/your-username/Downloads/
。
- 安裝完 進到測試階段後,執行
ncl -V
若有libraries相關報錯,可參考以下討論:
librtmp.so.0
sudo ln -s /usr/lib/x86_64-linux-gnu/librtmp.so.1 /usr/lib/x86_64-linux-gnu/librtmp.so.0
libssl.so.1.0.0 (參考Verter的回答)
wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl1.0/libssl1.0.0_1.0.2n-1ubuntu5.11_amd64.deb
sudo dpkg -i libssl1.0.0_1.0.2n-1ubuntu5.11_amd64.deb
掛載外接硬碟、隨身碟、記憶卡:
- 若要掛載的隨身碟為F:
sudo mkdir /mnt/f
sudo mount -t drvfs F: /mnt/f
- 若要掛載的隨身碟為H:
sudo mkdir /mnt/h
sudo mount -t drvfs H: /mnt/h
每次重啟WSL需要重新mount一次外部硬碟
可用下個方法簡化之
自訂指令:
執行 nano ~/.bash_aliases
開始編寫自訂指令(以鍵盤移動游標)
範例如下:
# remove file after confirmation
alias rm='rm -i'
# remove directory after confirmation
alias rmdir='rm -rI'
alias cp='cp -i'
alias cpdir='cp -rI'
alias mv='mv -i'
alias mvdir='mv -rI'
alias c='clear'
# 'h 30' 即顯示30條歷史指令
alias h='history'
# fortran compile
alias gfortran='gfortran -ffixed-line-length-132'
# open GUI
alias open='explorer.exe'
# usb mounting
alias usb_mount='sudo mount -t drvfs H: /mnt/h'
# some paths
alias user='cd /mnt/c/Users/user'
alias desk='cd /mnt/c/Users/user/Desktop'
alias down='cd /mnt/c/Users/user/Downloads'
# alias path1='cd 想要的路徑'
# alias path2='cd /mnt/h/想要的路徑'
# conda command
alias act='conda activate'
alias deact='conda deactivate'
注意指令usb掛載的路徑要依需求變動、#
為註解
編寫完成後,依序按 Ctrl+O
、Enter
、Ctrl+X
存檔離開。
回到終端機執行 source ~/.bash_aliases
刷新
日後Ubuntu終端機若輸入等號左邊指令,就會依等號右邊對應指令執行。
執行 alias
會列出之前設定好的alias
#### 開機(啟動wsl)自動執行指令或腳本:
執行 `nano ~/.bashrc`
以鍵盤移動游標到文件最下方,加入想要在開機時執行的指令或shell script。
範例如下:
# mount usb
usb_mount
# cd && ls
function cd() {
new_directory="$*";
if [ $# -eq 0 ]; then
new_directory=${HOME};
fi;
builtin cd "${new_directory}" && ls
}
編寫完成後,依序按 Ctrl+O
、Enter
、Ctrl+X
存檔離開。
回到終端機執行 source ~/.bashrc
刷新
以此範例,usb可自動完成掛載,不用再每次手動輸入alias的usb_mount。
Fortran 編譯與執行:
<法1>
gfortran -o a.exe 檔名.f90 (生成a.exe)
./a.exe (執行 a.exe)
<法2> !須完成前項自訂指令第18行!
gfortran 檔名.f90
./a.out (執行 a.out)
從終端機執行Windows檔案總管:
<法1>
explorer.exe .
可透過檔案總管開啟終端機目前所在之位置
explorer.exe 檔名/路徑
可以Windows GUI開啟指定內容
<法2> !須完成前項自訂指令第21行!
open .
可透過檔案總管開啟終端機目前所在之位置
open 檔名/路徑
可以Windows GUI開啟指定內容
Ubuntu檔案位置以Windows系統下之VScode開啟:
- 指令執行
code .
(中間空一格)
- 即可透過VScode開啟所在目錄內的程式碼
- 還可連接WSL2的終端機
wsl更新
以系統管理員身分執行PowerShell或cmd
執行wsl --update
若有安裝更新,需執行wsl --shutdown
才會生效。
WSLg (2022.11)
WSLg 支援已下放 Win10 (21H2版以上),若已經有裝過 WSL2 更新一樣簡單!
有WSLg 以後,就可以實現一些基本的GUI應用了。
## 更多
---
1. [WSL 2: Getting started](https://youtu.be/_fntjriRe48?t=164)
此影片02:44處,Turn Windows features on or off,中文是「開啟或關閉Windows功能」
不過至少在Win10 2004以上版本已經不需要這麼做,輸入`wsl --install`會自動幫你開啟所有需要的。
2. 同位ytb介紹強大的Windows Terminal
[Windows Terminal: Finally!](https://youtu.be/uWNpXOT-Zbo)
3. WSL搭配Win 11執行GUI應用
[Windows 11: Install WSL and run Linux GUI apps](https://youtu.be/FQ6ahcJOVz0?t=150)
## 在Win 10下的WSL使用GUI應用
---
作業系統沒有支援WSLg才需要用以下的方法
下載MobaXterm(Home/Portable)
點選以下檔案解壓縮
點選可攜程式直接執行
建立Session
確保右上方X server維持開啟狀態、安裝需要GUI的軟體、進入快捷鍵設定
自訂貼上快捷鍵為Ctrl+V
設定終端機選項
勾選右鍵貼上功能
設定游標樣式(閃爍直線)
實例:運行GrADS
搭配Xfce4桌面環境:sudo apt update && sudo apt upgrade -y && sudo apt install xfce4
下載完成後彈出,按Enter選取gdm3。
建一個新Session
進入剛建好的(擁有xfce4桌面環境的WSL)新session(須等待數秒)