エンジニア向けWindowsのターミナルとシェル環境
エンジニア向けWindowsのターミナルとShell環境
エンジニアは何かとターミナルやシェルを使うことが多い。
MacやLinuxをクライアントOSとして好む人も多いが、会社の方針やプロジェクトの要件等でWindowsを使わないといけないケースも多い。
文句を言っても仕方ないので、Windowsで快適に使える環境を調べた。
やりたいこと
Shellを使いたい
エンジニアはとにかくShellを使う場面が多く、かつ好んで使う。
とはいってもShellと言ってもWindowsのコマンドプロンプトを指すことはない。
Linuxで使われているbashやzsh等のshellだ。
残念ながらMacには標準で入っているが、Windowsには入っていない。
Shellには、find
, grep
, xargs
, awk
等々便利なコマンドがある。
サーバーサイドと同じ操作がクライアントOSでできることは価値が高い。
使いやすいターミナルがほしい
仮にShellが使えたとしても、使いづらい状態では不満だ。
私はMacのiTerm2を愛用している。
スタイルを変更
したり、標準出力から任意の文字列検索
が出来たり、多くのユーザビリティ向上の機能が備わっている。
WindowsのコマンドプロンプトやPowerShellは標準ではなにもできない。拡張ソフトを入れることで多少マシになるが、目指すゴールには程遠い。
やはりWindowsにも使いやすいターミナルソフトが必要だ。
理想
つまりWindowsで自由に使えるbashとユーザビリティに優れるターミナルが欲しいということになる。
要件をまとめると以下だ。
- Windowsで不自由ないshellが使える。
- 便利なターミナル
- 標準出力検索ができる
- コピペが楽
- テーマ等のpluginがある
- 画面分割・タブが使える
- OS環境を問わないクロスプラットフォーム
Shellの比較
結論から書くとMSYS2
が良い。
パッケージマネージャとしてpacman
が利用可能なことと、Windowsとの親和性が良く、扱いやすい。
Windows Subsystem for Linux
通称WSLはWindows10に組み込まれたUbuntuだ。
WSL1は少々野心的な実装をしており、Linuxカーネルを利用せずにWindows上で動作する。
一部Linuxカーネルを必要とするネットワーク系コマンド等が動作しない。
大抵の操作は可能だがサブシステムとしてubuntuがあるということを意識しないといけないのがデメリットと感じる。
WSL2ではどちらかというとLinuxカーネルを組み込み、Hyper-V使ったVMに近い構成をとっている。
このためコンテナ技術等が利用可能になる。
Git for Windows
Git for Windows
これはWindows向けのGitクライアントソフト。
gitはCUIツールであり、Windowsで動作するbashが同梱された状態で配布される。
標準状態でminttyによるターミナルが操作可能で、使い勝手は良い。
ただ、git以外のパッケージ管理ができずそのままでの利用は難しい。
MSYS2
MSYS2
Git for Windowsからgitを取り払い、パッケージマネージャとしてpacman
を導入したもの。
シンプルな構成でかつpacman経由でパッケージ導入が可能なため、使いやすい。
ArchLinuxが好みの人には非常に大きなメリットとなるだろう。
同様なものにcygwinがあるが、独自のライブラリある等で少々Windowsとの分離性が大きく、WLS同様少々サブシステムとして意識した構成となる。
ターミナルの比較
mintty
mintty
MSYS2やGit for Windowsで採用されている。
文字列の拡大機能や右クリックでのペースト機能、文字色のテーマ等が備わっている。
使いやすいが、タブや画面分割機能はなく少々物足りない。
cmder
cmder
名の知れたWindows向けターミナルソフト。
とにかく設定が豊富で細かいところまで調整可能。
Github上の開発も盛んで今後も安心して使えそう。
mini版とfull版が提供されている。
標準でgit for windowsやPowerShellをサポートしており、安定した動作が期待できる。
Hyper
Hyper
最近聞くようになったのがこのHyperというターミナル。
特徴はレンダリングにWebGLを使っており、Electron等のWeb系の技術で構成されている。このため、クロスプラットフォームで動作しMac, Linux, Windowsで利用可能。
またPluginやテーマも豊富だ。
すでにVersionは3で、githubのStar数も多く、OSSLicenseはMITのため、業務でも安心して使える。
MacユーザでHyperを使う人も多く、これがWindowsで使えるというのは非常にメリットだろう。
まとめ
Windowsで使えるShellとターミナルを比較した。
ShellはWindowsとの親和性とパッケージ管理が可能なMSYS2
を使うことにした。
ターミナルはクロスプラットフォームでかつ機能も豊富なHyper
を使うことにした。