前置き
本記事では、WindowsでLinuxを使用する方法(WSL2)について紹介しています。
WSLはWindows Subsystem for Linux 2の略でWindows 10上でLinuxを動作させるための仕組みであるWSLのバージョン2です
WindowsだとUNIXコマンドが使用できないので、何かしら(Git bashなど)ツールをインストールして使用する必要があります。
職場の先輩スーパーエンジニアに教えていただいた内容なのですが、Windows Terminalと組み合わせて使うと便利すぎてMacよりwindowsの方がいいかも....って思ってしまうほどです。
導入手順は大きく以下です。
- 事前準備
- WindowsにUbuntuをインストール
- Ubuntu初期設定
- WSLを起動
- Windows Terminalをインストール
- Windows Terminalを起動
- Windows Terminalのおすすめ設定
- WSL2でのWindows <-> Linux間のファイルアクセスの仕組み
環境
windows10
Ubuntu20.04
事前準備
管理者権限でPower shellを起動し、以下を実行してWSLを有効化する
dism.exe/online/enable-feature/featurename:Microsoft-Windows-Subsystem-Linux/all/norestart
続いて以下を実行。実行後、PCを再起動
dism.exe/online/enable-feature/featurename:VirtualMachinePlatform/all
WSL 2 Linux カーネルの更新ページ からWSL2用Linuxカーネルをダウンロードし、インストールする

Linuxディストリビューションをインストールする際に、デフォルトでWSL2を使うように設定するため、power shellから以下を実行
wsl --set-default-version 2
WindowsにUbuntuをインストール
Microsoft Storeでubuntuをインストール

Ubuntu初期設定
初回起動時にUbuntu用ユーザIDとパスワードを設定して完了

※Docker Desktop App をWSL2で使用する場合は、デフォルトだとDokcerを起動すると、The command 'docker' could not be found in this WSL 2 distro.というエラーが生じるので、
図のように、settingsからUse the WSL based engineをオンにしてあげる必要があります。

WSLを起動
インストールしたLinuxディストリビューションは通常のアプリケーションと同様に、スタートメニューから起動可能です。

これだけでもLinuxコマンドを使用してwindowsのファイルシステムを操作できるのですが、Windows Terminalを組み合わせるとさらに強力なものになるので、以下で紹介します。

Windows Terminalをインストール
Microsoft StoreでWindows Terminalをインストール
Windows Terminalを起動
インストール後、Windows Terminalを起動。デフォルトだとPower Shellが起動するかと思いますので、下図のようにUbuntuのタブを追加します

こんな感じで、複数タブごとにシェルを起動できますし、linuxコマンドを使用してWindowsを操作できます。

Windows Terminalのおすすめ設定
デフォルトだとカレントディレクトリがホスト側(Windows)のパスになっていたり、PowerShellが起動するようになっていたりするので、おすすめの設定一覧を別途記事にまとめる予定です
WSL2でのWindows <-> Linux間のファイルアクセスの仕組み
ホスト(Windows) -> Linux
エクスプローラを開き、パスに\\wsl$
を入力すると、WSLのディストリビューション毎のファイルシステムにアクセスできます。

Linux -> ホスト(Windows)
WindowsのCドライブがLinuxの/mnt/c
にマウントされているのでLinux上で/mnt/c
にアクセスすることで、Windows上のファイルにアクセス可能。
まとめ
いかがでしたでしょうか。本記事では、WindowsだとUNIXコマンドが使用できないので、何かしら(Git bashなど)ツールをインストールして使用する必要があります。職場の先輩スーパーエンジニアに教えていただいた内容なのですが、WindowsにLinuxを入れてWindows Terminalで使うと便利すぎたので本記事に記載しておきました。