デュアルブートもVMももういらない！WSL2＆Windows TerminalでLinux環境を構築しよう【WSL2】

* 2019年のMS Buildにて、WSL2の発表がありました
   * https://www.youtube.com/watch?v=GtVcDo1G8r8
   * de:codeのKeyNoteでの発表動画です。54:40あたりがWSL2の紹介になります
* WSL2をインストールすることにより、WindowsにLinuxのカーネルが含まれる状態になるので、Linux環境を構築するためのVMやデュアルブートが不要な状態になります
* de:code 2019のKeyNoteでは`npm isntall`の実行がめちゃくちゃ速くなるよ！というデモもやってました

## WSL2をインストールする（Ubuntu）
* MS公式のこちらのドキュメントを参考にしました：https://docs.microsoft.com/ja-jp/windows/wsl/wsl2-install

#### WindowsのバージョンをPreview版に更新
* まずWSL2を利用するためには。WindowsのPreview版バージョンを利用する必要があります
   * （Preview版のため、万が一のためにバックアップを取っておくことをおススメします）
* Windows Insiderに参加し、Preview版Windowsをインストールします
![1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/264566/a721a64d-5dd1-1dfb-0379-7226b73476a4.jpeg)


* バージョンを確認するには、コマンドプロンプトで`ver`コマンドを実行し、Windowsのバージョンが`10.0.18917`以上であることを確認します

```
C:\Users\user1>ver
Microsoft Windows [Version 10.0.19041.21]
```

#### Linuxのディストリビューションをインストールする
* まず、Linuxディストリビューションがインストールされているか確認します
   * Linuxがインストールされていない場合は下のメッセージが出てきます
 
```powershell
PS C:\Users\user1> wsl -l
Linux 用 Windows サブシステムには、ディストリビューションがインストールされていません。
ディストリビューションは Microsoft Store にアクセスしてインストールすることができます:
https://aka.ms/wslstore
```

* `https://aka.ms/wslstore`にアクセスするとMicrosoft Storeが開き、インストール可能なディストリビューションが表示されます
   * 今回はUbuntuをインストールしてみます
![4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/264566/5f7e9339-79cd-769a-4ff0-2cc02ea14be8.jpeg)

* ストアからUbuntuを起動すると、サブシステムのインストールが始まります
![2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/264566/41b6f259-f29b-fe5b-abc9-65e09b446ff1.jpeg)

```
Installing, this may take a few minutes...
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: myuser
Enter new UNIX password:
```

* Linuxコマンドももちろん打てます。これでインストールできてますね！

```
myuser@DESKTOP-KH1ORKF:~$ ls
myuser@DESKTOP-KH1ORKF:~$ cd ..
myuser@DESKTOP-KH1ORKF:/home$
```

#### WSLを有効化する
* WSLを有効化するために下の2つのコマンドを入力した後、PCを再起動します

```
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
```

```
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
```

* 再起動後に`wsl -l`コマンドを入力すると先ほどインストールしたディストリビューションが表示されます

```powershell
PS C:\Users\user1> wsl -l
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu (既定)
```

* 最後に、WSL2のUbuntuディストリビューションを設定します

```powershell
PS C:\Users\user1> wsl --set-version Ubuntu 2
変換中です。この処理には数分かかることがあります...
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
変換が完了しました。
```

* これでWSL2が使えるようになりました！

## Windows Terminalをインストールする
* Linuxの環境構築はWSL2だけのインストールで完了ですが、せっかくなのでWSL2と同時期に発表されたWindows Terminalも使ってみます
* Windows Terminalは簡単に言うと「コマンドプロンプトの進化版」です
   * コマンドプロンプトやPowerShellはもちろん、WSLをインストールすることでLinuxのターミナルもこのWindows Terminal1つで実行できてしまう優れものです
   * Windows Terminal紹介動画：https://www.youtube.com/watch?v=8gw0rXPMMPE
* Windows TerminalはMicrosoftストアからPreview版をインストールできます
![5.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/264566/838ed913-517c-4c45-2881-f37522e5c2bd.jpeg)
* Windowsターミナルを起動すると、先ほどインストールしたUbuntuのターミナルもちゃんと選べる状態になっていますね
<img width="650" alt="6.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/264566/8f65c87b-2ae2-849a-92ed-69e37596b10f.jpeg">