以前UnixコマンドをWindowsで使いたいというタイトルで、UnixコマンドをWindowsにインストールすることなく使える方法を提示しました。WSLを使うとインストールする必要はありますが、Unixコマンドを使うことができます。今回はWSLを使ってWindows上でUnixコマンドを使える環境を説明します。
繰り返しになりますが、Windows上でUnixコマンドを使いたい時は、巨大なファイルの検索とか、切り出しとか、WindowsのテキストエディタやExcelなどのアプリケーションで開けない場合や、Unixコマンドを使い慣れた方には一つの解決策になります。

WSLは、LinuxがWindowsを操作できるインターフェースを提供します。WSLのポイントは以下です。
- Microsoft 標準提供です
- Windowsのフォルダやファイルを操作可能です
- UnixコマンドだけなのでWindwosのリソースを無駄に消費しない
目次
WSLを使うメリットとデメリット
WSLを使うメリット
WSLはLinux向けにWindowsを操作できるインターフェースをします。この機能を使うと、WSLに対応したLinuxからWindowsを操作できます。
今具体的には、LinuxコマンドでWindowsのファイルを操作えきることくらいです。PowerShellのような形でUbuntuのLinuxコマンドが使えます。
Linuxコマンドに慣れた人にとっては,、サードパーティのフリーソフトを探す必要がないことです。
WSLを使うデメリット
WSLを使うデメリットは、UNIXコマンドをWindowsで使いたい!で紹介したUnxUtilsがインストール不要であるのに対して、WSLはインストールが必要であることとと、コマンドプロンプトから直接使うことができないことです。
Windowsのフォルダにアクセスするには、WSLを起動した後にLinuxコマンドでディレクトリを少し移動する必要があります。
WSLの機能を有効化
WSLの機能を有効にするにはWindowsの再起動が必要ですので、再起動ができない時は避けましょう。Windowsの機能の有効化と無効化を開きます。まずは管理者権限のあるアカウントでWIndowsにログインします。

上の図のように、①スタートメニューをクリックして、②設定をクリックします。

上の図のように、WIndowsの設定ウィンドウが開きます。赤枠内の検索ボックスに「機能の有効化」と入れると、すぐ下に「Windowsの機能の有効化または無効化」が表示されますので、それをクリックして設定するウィンドウを表示します。

上の図のように、「Windowsの機能の有効化または無効化」ウィンドウが表示されます。右のスクロールを動かし下から1/3くらいのところに上の図の赤枠のようにWindows Subsystem for Linuxがあります。ここにチェックを入れます。

上の図のように、チェックを入れて、右下のOKボタンをクリックします。

上の図のように進めば後は完了を待つだけです。WSLの有効化が終わるとWindowsの再起動を求められますので、再起動します。
Windowsの再起動が完了するとWSLの機能は有効になっています。
WSLに対応したUbuntuをインストール
WSLが有効になった後は、利用するユーザーでUbuntuをMicrosoft Storeからインストールします。

上の図のように利用するユーザーでタスクバーのMicrosoft Storeアイコンをクリックします。

上の図のように、Microsoft Storeのウィンドウが表示されたら、右上の赤枠にある検索をクリックします。

上の図のように、赤枠内の検索窓に「ubuntu」と入力して検索します。

上の図のように、Ubuntuは3種類表示されます。Linuxコマンドを使うだけなら最新版でも問題なく使えますので、上の図の赤枠の20.04を選択します。

上の図のように、WSLに対応したUbuntu 20.04が表示されます。右上の赤枠「インストール」をクリックしてインストールを開始します。Microsoftへのログインが表示されても、ログインしなくてもインストールできます。

上の図のようにインストールをクリックした箇所の左側にバーが出てインストールしている状態を表示します。

上の図のように、右上が「起動」になればインストールは完了です。
WSLを使ってみる
WSLを使ってみます。初回起動は少し時間がかかります。
Ubuntu専用のターミナルを立ち上げる

上の図のように、①スタートメニューとなりの検索アイコンをクリックして「ubuntu」と入力し、②上に表示される「Ubuntu 20.04 LTS」をクリックします。

上の図のように、ユーザー名の入力が必要な状況になれば初期設定は完了です。ユーザー名とパスワードを入力してプロンプトを表示させます。
あとはUbuntuのコマンドラインです。ただし、ディレクトリ構成が特殊で、Windowsのファイルは/mnt/以下にドライブ名とともにマウントされています。cdコマンドで移動してWindowsのファイルにアクセスします。例えばCドライブは/mnt/cディレクトリに、Dドライブは/mnt/dにマウントされます。
コマンドプロンプト上でWSLを起動する
コマンドプロンプトを起動して、ubuntu2004と入力するとWSL対応Ubuntuが起動します。起動したあとは同じです。ディレクトリも変わりますので、Cドライブにアクセスしたいなら/mnt/cディレクトリに移動します。
このあたりはPowerShellと同じですね。ただ、初期のディレクトリが違います。これは.bashrcとかで記述するとうまく元居たフォルダに移動できるかもしれません。と思っていたのですが…。
さらに調べてみると、コマンドプロンプト上でwslと入力すると今のディレクトリでUbuntuのLinuxコマンドが使える状態になりました。

コンピュータ名やユーザー名を隠したら、上の図のようによくわからないイメージになりましたが、伝えたいことは「コマンドプロンプトでwslと入力すると使いやすいです」ということです。
まとめ
WSLは今のところ、LinuxコマンドをWindowsで使えるところまでしか使いこなせていない私ですが、これだけでもUnixコマンドが使えるのはとても助かります。
これまではUnixのコマンドを使ってデータ処理したい場合は、別途Unixを別マシンで立ち上げる必要がありました。そういう煩わしい作業が要らないので、今後の発展に期待したいです。