毎日誰かが同じ質問をします:
「Windows Terminal vs Git Bash vs WSL — どれを使えばいい?」
この質問はもっともらしく聞こえますが、よくある誤解をはらんでいます。この3つは 競合ではありません。全く別のレイヤーに属しています。
| レイヤー | コンポーネント | 役割 / 主な機能 |
|---|---|---|
| フロントエンド (ターミナルエミュレータ) | Windows Terminal | タブ、画面分割 (スプリットペイン)、配色テーマ、GPU レンダリング、ショートカット |
| バックエンドエンジン (内部シェル) | PowerShell, CMD, Git Bash, WSL | コマンドの受付・解釈、プログラムの実行 |
シェル(Git Bash や WSL Bash)を選ぶのはあなた。Windows Terminal はそのシェルを表示してくれる、きれいなウィンドウです。
ELI5: フロント vs エンジン#
映画館を想像してください。
- スクリーン = ターミナルのフロント
- 映写機 = シェル
- フィルム =
gitやbunのようなプログラム
スクリーンはどの映画を映すか選びません。同じスクリーンで何本も映せます。Windows Terminal がスクリーン。Git Bash と WSL は映写機。1つのスクリーンに複数台の映写機を向けて、クリックひとつで切り替えられます。
Git Bash は実際は何?#
Git Bash = ターミネエミュレータ (mintty) + Bash シェル + GNU/Unix ツール群 (ls, grep, sed, ssh…) を、Git for Windows のインストール時にセットで同梱したもの。
2014年当時は画期的でした。Windows に Unix らしきものが何もなかったからです。ただし:
- 古い mintty を使う(タブなし、GPU描画なし、見た目が古い)。
- Unix ツールは 翻訳レイヤー — 本物の Windows プログラムは変な動きをしがち。
- Bash しか手に入らない。PowerShell や cmd をきれいな UI で同一画面に持つ場にはならない。
じゃあ最初から WSL にすれば?#
WSL(Windows Subsystem for Linux)は Windows の中に 本物の Linux カーネル を動かします。Linux ネイティブ開発(docker、node、Ruby gems、ネイティブライブラリ)には最強です。
でも WSL には壁が2つあります。
- 別マシン扱い。 ファイルは Windows のドライブではなく
ext4仮想ディスクに置かれます。Windows と Linux(/mnt/c)を往復するのは遅いです。 - 結局 Windows Terminal を使う。 WSL を開くと、シェルの出力を表示するウィンドウが要ります。そのウィンドウは — そしてそうあるべき — Windows Terminal です。
つまり WSL vs Windows Terminal は実は本当の対決ではありません。レイヤーが違うので、両方 必要です。
比較表#
| 能力 | Windows Terminal | Git Bash (単独) | WSL ターミナル |
|---|---|---|---|
| 何か | ターミナル(フロント) | ターミナル + Bash + ツール | Linux OS + シェル |
| タブ | あり | なし | フロント次第 |
| 分割ペイン | あり | なし | フロント次第 |
| GPU描画 | あり (DirectWrite) | なし (mintty GDI) | フロント次第 |
| 真の 24bit 色 | あり | 一部 | フロント次第 |
| Unicode / emoji / CJK | 優秀 | 弱い | フロント次第 |
| マルチシェル | CMD, PowerShell, WSL, SSH | Bash のみ | Bash のみ |
| テーマ / acrylic / 透明 | あり | なし | フロント次第 |
| 本物の Linux アプリ | なし | なし | あり |
| コマンドパレット | あり | なし | フロント次第 |
傾向: 「見た目 / UX」の列は Windows Terminal の勝ち。「Linux ランタイム」は WSL の勝ち。欠けるところ同士を補う組み合わせです。
Windows Terminal で全部まとめる#
- Windows Terminal ↗ を入れる — Windows 11 では既に 標準ターミナル。
- WSL 2 ↗ を入れて本物の Linux。
- Git for Windows で Git Bash プロフィール。
- お好みで PowerShell 7 ↗。
タブの ∨ マークを押すと全プロフィールが見えます。いくつでも並べて開けます。
┌─ Ubuntu (WSL) ──┐┌─ PowerShell 7 ─┐
│ $ ls ││ PS> node ver │
│ ... ││ ... │
└─────────────────┘└────────────────┘text便利なショートカット#
| 操作 | ショートカット |
|---|---|
| 新しいタブ | Ctrl+Shift+T |
| タブ切り替え | Ctrl+Tab / Ctrl+Shift+Tab |
| 分割ペイン (横) | Alt+Shift+- |
| 分割ペイン (縦) | Alt+Shift++ |
| コマンドパレット | Ctrl+Shift+P |
| 検索 | Ctrl+Shift+F |
| 設定を開く | Ctrl+, |
設定ファイルでカスタム#
{
"profiles": {
"defaults": {
"font": { "face": "Cascadia Mono" },
"opacity": 90,
"useAcrylic": true
}
}
}jsonすべてオープンソース (MIT)。
[!TIP] 最速・最安全: Git Bash を Windows Terminal の 中 でプロフィールとして
C:\Program Files\Git\bin\bash.exeに設定して動す。Unix ツールはそのまま、タブ・GPU・分割・現代的な色を手に入れられます。
注意点#
[!WARNING] WSL と Windows は別のファイルオペレーションを使います。作業ファイルは Linux 側(
~/projects)に置くと速いです。node/docker で/mnt/cへ頻繁に入ると遅くなります。
それぞれの使い分け#
- PowerShell で Windows 管理 (レジストリ・サービス・AD): Windows Terminal 内で PowerShell。
- 本物 Linux が必要: WSL 2 — ただし Windows Terminal から開く。
- git + Unix コマンドだけで速く、セットアップ軽く: Windows Terminal 内の Git Bash。
- 素の mintty / Git Bash ショートカットや既定の
cmdはもう使わない。 タブ・色・GPU を全部失います。
まとめ#
- Windows Terminal はシェルではありません。Git Bash と WSL はターミナルのフロントではありません。
- 違う OS レイヤーを解くものなので、「どちらか」ではなく 一緒に 使います。
- Windows Terminal がタブ、ペイン、GPU描画、テーマ、全シェルの共通ホームを提供。
- WSL が本物の Linux ランタイム、Git Bash はカーネルなしで Unix ツール。