なぜこのエラーが発生するのでしょうか?コーディング中にターミナルが開かないことほど、作業を停滞させるものはありません。このエラーは通常、VS Codeが特定の場所でシェル(BashやPowerShellなど)を探したものの、そこに見つからない場合に発生します。Windows版Gitのアップデート後、インストールフォルダの移動、またはIntel MacからApple Siliconへの移行時によく見られます。
デスクトップ上の壊れたショートカットのようなものだと考えてください。VS Codeは、移動、名前変更、または削除されたファイルを実行しようとしています。具体的には以下の警告が表示されます:
The terminal process failed to launch: Path to shell executable "/path/to/shell" does not exist.
デバッグのチェックリストVS Code自体が故障しているわけではありません。設定に保存されている古い指示に従っているだけです。原因となっている箇所を特定する方法は以下の通りです:
1. 報告されたパスを確認するエラーメッセージを注意深く読んでください。多くの場合、失敗している正確な場所が示されています。例えば、C:\Program Files\Git\bin\bash.exeを指しているのに、最近GitをD:ドライブに再インストールした場合は、それが原因です。
2. 設定ファイル(JSON)にアクセスするこの修正では設定画面(UI)は使いません。生のコードを直接編集したほうがずっと早いです。Ctrl + Shift + P (Windows/Linux) または Cmd + Shift + P (macOS) を押してコマンドパレットを開きます。**「基本設定: ユーザー設定 (JSON) を開く (Open User Settings (JSON))」**と入力してEnterを押します。
3. 非推奨のキーを特定するJSONファイル内で以下の古い設定を探してください。これらが存在する場合、最新のデフォルト設定を上書きしている可能性があります:
terminal.integrated.shell.windows-terminal.integrated.shell.osx-terminal.integrated.shell.linux## 解決方法### 方法1:ターミナルプロファイルに移行する(推奨)バージョン1.55以降、VS Codeは単一のシェルパスではなく「プロファイル」を使用します。設定にまだ古い.shellキーが残っている場合は、アップグレードのタイミングです。最新のプロファイルでは、複数のシェルを定義して簡単に切り替えることができます。 まず、シェルの実際の場所を確認します。OSのターミナル(VS Code外)を開き、Windowsならwhere bash、macOSならwhich zshと入力してください。その後、settings.jsonを以下のように更新します:
// 例:WindowsのGit Bashプロファイルを修正する場合
"terminal.integrated.profiles.windows": {
"Git Bash": {
"path": "C:\\Program Files\\Git\\bin\\bash.exe",
"icon": "terminal-bash"
}
},
"terminal.integrated.defaultProfile.windows": "Git Bash"
方法2:設定をリセットしてやり直す「急がば回れ」です。terminal.integrated.shell で始まる行がある場合は、それらをすべて削除してみてください。ファイルを保存して VS Code を再起動します。エディタは PowerShell や Zsh などの標準的なシェルを自動検出するのが得意です。多くの場合、手動の上書き設定を削除するだけで、問題が即座に解決します。
方法3:macOSのアーキテクチャ移行に対応するMacユーザーは、M1/M2/M3チップへの移行時にこの問題に遭遇することがよくあります。Homebrewのデフォルトインストールパスが /usr/local/bin から /opt/homebrew/bin に変更されたためです。設定が古いIntelベースのパスを指していると、ターミナルは起動しません。以下のコマンドを実行してパスを確認してください:
ls -la /opt/homebrew/bin/zsh
ファイルがそこに存在する場合は、それに応じて settings.json を更新してください。わずかなパスの不一致が、macOSでのターミナル起動失敗の主な原因です。
予防のためのプロのヒント異なるコンピュータ間で同期される settings.json の管理は複雑になりがちです。WindowsデスクトップとMacBookの間で設定を移動する際、私はToolCraftの YAML ↔ JSON Converter を使用しています。これにより、複雑なネスト構造のプロファイルを可視化したり、設定の解析を妨げるカンマの付け忘れを見つけたりしやすくなります。
特定のバージョン番号を含むパスをハードコーディングするのは避けましょう。.../v1.2.3/shell.exe のように指定すると、そのソフトウェアをアップデートした瞬間にターミナルが動かなくなります。可能な限り、主要な実行ファイルのパスを使用するようにしてください。
修正のテスト確認は簡単です。以下の手順に従ってください:
- 下部パネルにある「ゴースト」ターミナルプロセスをすべて終了させます。- VS Code を再起動して、新しい JSON 設定が読み込まれるようにします。-
Ctrl + `` (バッククォート) を押してターミナルを呼び出します。- エラーのポップアップが表示されずにプロンプトが表示されれば、復旧完了です。## まとめ- **アップデートによる場所の変更:** Git や Homebrew などのツールをアップデートした後は、必ず物理的なパスを確認してください。- **プロファイルを使用する:**terminal.integrated.profilesシステムは、古い.shell設定よりも安定しています。- **OSを意識する:** クラウド同期中に設定が衝突しないよう、OS固有のサフィックス(.windows,.osx`)を使用して設定を分けてください。

