メニュー 閉じる

WindowsでUNIXコマンドを使いたい場合はどうする?

こんにちは。「UNIXコマンド使えないじゃーん!」

今回はその対処法としてGit for WindowsやWindws Subsystem for Linuxというものを使って、
Windows環境下でUNIXコマンドを使えるようにする方法をご紹介します。

 

touchコマンドが通らなくて気づくWinとUNIXの小さくて大きな壁

Windowsで開発をしようとしたときにUNIXコマンドが通らず困った人は少なくないと思います。

プログラマの皆さんは現場ではWindowsを使っていることが多いと思いますが、
なんちゃって開発をしてきた私はずっと一人でMacで開発をしてきました。

するとWindowsを使ってみて一番びっくりしたのは、
コマンドプロンプトでUNIXコマンドが使えないということです!
(当たり前すぎてバカみたいに思われそうですが)

でも面白いのはフォルダを作るmkdirコマンドはWindowsでも使えるのですが
ファイルを作るときによく使われるtouchコマンドはなぜかつかえません。

普通にディレクトリを開いてファイルを作ればいい話なのですが、
ちょっと気になるので、せっかくですからWindows でもUNIXコマンドを使えるようにしたいなと思いますよね。

そんな人のためにWindowsでUNIXコマンドを使えるようにする方法を簡単にシェアします。

 

一番簡単なのはGit for Windowsをインストールする

 

シンプルにbashを使えるようにしたいならgitをインストールしてみてください。
Git for Windowsというものを公式サイトからダウンロードしてインストーラーでインストールするだけです。

 

Git Bashって使ってる?Windowsで動く意外にすごい便利ツール

 

とても簡単にWindowsでUNIXコマンドが使えるようになります!

 

Windows Subsystem for Linuxを使えるようにする

 

あまり詳しくない!という人にはおすすめはしませんが、
実はWindowsのサブシステムとしてLinuxを使えるようにすることができます。
それがこのWindows Subsystem for Linux(以下WSL)です。

今まではなんだか面倒なVMwareやBootCampなど複雑すぎていろんな意味で、
ユーザーにもマシンにも負担をかけるような方法で共存させてきた人も多いと思いますが、
Windows10からはこのWSLがしっかりと使えるようになりました。

 

「プログラムの機能」から「Windowsの機能の有効化または無効化」をクリックすると、
このWSLが選択できるはずなのですが…

 

ないですね。

 

もう少しちゃんと調べてみました。

 

1. Linux 用 Windows サブシステムのオプションを有効化する

Windows 公式からインストール手順が紹介されていました。

https://docs.microsoft.com/ja-jp/windows/wsl/install-win10

これによるとまずは「 “Linux 用 Windows サブシステム” オプション機能を有効にする必要」があるとのことです。
以下のコマンドを入力してみましょう。

Windows PowerShell
PS C:\Windows\system32> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

展開イメージのサービスと管理ツール
バージョン: 10.0.19041.329

イメージのバージョン: 10.0.19041.508

機能を有効にしています
[==========================100.0%==========================]
操作は正常に完了しました。
PS C:\Windows\system32>

つぎに「仮想マシンの機能を有効にする」コマンドを同じくPowerShellの管理者権限で実行します。

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

 

2. Linux カーネル更新プログラム パッケージをダウンロードする

基本的には以下のリンク先のパッケージを利用します。
例外的にARM64 マシンを使用している場合は、ARM64 パッケージをダウンロードしてください。

インストーラーはとてもシンプルで考えることなしに完了させることができます。

 

3. WSL 2 を既定のバージョンとして設定する

以下のコマンドでWSL2がデフォルトのWindows Subsystem for Linuxとして選択されます。

wsl --set-default-version 2

4. Linuxディストリビューションを選択してインストールする

このWSLを使うにはそれを動かすOSを選択しなければなりません。
種類は今のところ以下の通りで Microsoft Store ページからダウンロードすることができます。

例えばUbuntu 20.04でよければこちらからどうぞ。

Ubuntu 16.04 LTS
Ubuntu 18.04 LTS
Ubuntu 20.04 LTS
openSUSE Leap 15.1
SUSE Linux Enterprise Server 12 SP5
SUSE Linux Enterprise Server 15 SP1
Kali Linux
Debian GNU/Linux
WSL のための Fedora リミックス
Pengwin
Pengwin Enterprise
Alpine WSL

 

5. 新しいディストリビューションを設定する

ダウンロードしたディストリビューションはMicrosoft Store上からインストールすることができます。
すぐにコンソール画面が表示され、自動的にインストールされますが、
最初はLinuxによくあるユーザー名とパスワードの設定が必須です。

Windowsのようにパスワードを入力しないということはできませんので、
忘れないようなパスワードを設定しておきましょう。

これでWindowsのサブシステムとしてUbuntuが導入されました。

 

おまけ VS Codeからbashを使ってみよう

例えば統合開発環境でVS Codeを使っている場合は自動的にエクステンション(拡張)機能で、
「remote-wsl」というプラグインを使いますか?と聞いてくると思います。

もし、特にVS Codeから聞いてこなかった場合は以下のURLよりプラグインをインストールします。
https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl

一度インストールして再起動をすると右下がこのように緑色となり、
Ubuntu(ディストリビューションとしてUbuntuを選択した場合)と表示されます。

これでbashが使えるようになりました。
ターミナルを開いてみるとほらこのとおり。