MarkdownとBullet Journal

いわゆるプログラマーのつぶやき

WindowsのLinuxシェル環境

広がる選択肢

Windows上で動作するLinux Likeなシェル環境の選択肢が増えてきた。VMエミュレーターのCygwin64やMSYS2,GitBash、WSL1,2と選ぶことが出来る。その概要をまとめてみる

vm

  • 仮想マシンの略
  • VMwareVirtualboxなどを利用して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

  • こちらは逆にgccインストーラ
  • Git Bash同様にLinuxアプリが付いてくる(やや少な目)
  • これを選ぶぐらいなら次のMSYS2を入れた方がよい

MSYS2

Cygwin64

  • 最もLinuxに近づけたエミュレーター。互換性重視。完全なPOSIX層の提供を目標にする。
  • しかしインストールが難関。Linuxに熟練していないと難しい
  • こちらよりはMSYS2の方がお勧めだと思う

WSL1

WSL2

お気に入りはどれ?

単にLinuxに近いものを良しとするならばWSL2が一番で, WSL1, Cygwin64, MSYS2, Git bashの順に並ぶが、ピュアなLinuxに近づくほどWindowsとの連携性が悪くなる。

私はこの中ではGit bashが一番のお気に入りだ。エミュレーターと言えど主要なLinuxコマンドは使えるしPythonRubyも開発できる。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を用いた操作の方がはるかに優れていると私は思う。