Masayan tech blog.

  1. ブログ記事一覧>
  2. 【WSL2】WindowsにLinuxを入れてWindows Terminalで使うと便利すぎた件

【WSL2】WindowsにLinuxを入れてWindows Terminalで使うと便利すぎた件

公開日

前置き

本記事では、WindowsでLinuxを使用する方法(WSL2)について紹介しています。

WSLはWindows Subsystem for Linux 2の略でWindows 10上でLinuxを動作させるための仕組みであるWSLのバージョン2です

WindowsだとUNIXコマンドが使用できないので、何かしら(Git bashなど)ツールをインストールして使用する必要があります。

職場の先輩スーパーエンジニアに教えていただいた内容なのですが、Windows Terminalと組み合わせて使うと便利すぎてMacよりwindowsの方がいいかも....って思ってしまうほどです。

導入手順は大きく以下です。

  1. 事前準備
  2. WindowsにUbuntuをインストール
  3. Ubuntu初期設定
  4. WSLを起動
  5. Windows Terminalをインストール
  6. Windows Terminalを起動
  7. Windows Terminalのおすすめ設定
  8. 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で使うと便利すぎたので本記事に記載しておきました。