広がる選択肢
Windows上で動作するLinux Likeなシェル環境の選択肢が増えてきた。VM、エミュレーターのCygwin64やMSYS2,GitBash、WSL1,2と選ぶことが出来る。その概要をまとめてみる
vm
- 仮想マシンの略
- VMwareやVirtualboxなどを利用してLinuxを入れる
- VMwareはWindows10 May 2020 Updateから後述のWSL2とも共存出来る様になった
- 元のPCの中にあたかも別のPCが存在するかの様に構築するのでオーバーヘッドが多く性能が落ちることが多い(WSL2はこの辺りを改善している)
- 機能的にはWSL2と同様なので省略
Git bash
- Windows版gitのインストールと共にインストールされるLinuxエミュレーター
- 便利なLinuxコマンドが色々と付いてくる(gccなどの開発ツールを除く)
- 不足コマンドは後述のMSYS2のリポジトリから追加出来る。必要なコマンドの実行ファイルを解凍後にgit下のusr/binにコピーすればよい
- 但しgit専用にカスタムされたコマンドもあるとの事で、MSYS2との併用は問題が生じる場合もあるらしい
MinGW
MSYS2
Cygwin64
WSL1
- Microsoftが作った Windows Subsystem Linux。
- エミュレーターとVM(Hyper-V)の中間の様な構成。軽快に動く
- カーネルはAPI変換してWindowsが処理するのでカーネル操作を必要とするプログラムは動作できない。例えばDockerは動かない
WSL2
お気に入りはどれ?
単にLinuxに近いものを良しとするならばWSL2が一番で, WSL1, Cygwin64, MSYS2, Git bashの順に並ぶが、ピュアなLinuxに近づくほどWindowsとの連携性が悪くなる。
私はこの中ではGit bashが一番のお気に入りだ。エミュレーターと言えど主要なLinuxコマンドは使えるしPythonもRubyも開発できる。nord.js、yarnや、reactなどFrontEnd用ライブラリなども純粋なLinux機同様に利用出来る。edなど不足するコマンドはMSYS2のリポジトリから追加出来る。
なのでカーネル操作のニーズが無い限りGit bashの利用で十分だと考える。少なくとも私はこれで間に合っている。もちろんローカルでDockerは動かずコンテナは使えないが、AWS CLOUD 9 など利用すれば良いだけである。
それよりも初心者の内は、Git bashで得られるメリットの方が大きいだろう。様々な初期設定が行われる。例えばエクスプローラーで対象のフォルダを右クリックすると「Git bush here」の選択肢が登場し、選択するとターミナルが開いてbashが使える。Vim等による編集やスクリプト作業が日常となっている方ならとても便利な機能だろう。ちなみにGUIのgitもインストールされるが、こちらは正直今ひとつであり、VSCode+gitを用いた操作の方がはるかに優れていると私は思う。