はじめに
Visual Studio Code (VS Code) は、Windows・macOS・Linux に対応した広く使われているコードエディタです。インフラエンジニアにとっては、ターミナル操作とファイル編集を 1 つの画面にまとめられる作業環境としても活用できます。
ただし Windows 版では、統合ターミナルを開くと既定で PowerShell が起動します。普段コマンドプロンプトを使い慣れている場合や、SSH 鍵の作成などで Linux コマンドを使いたい場合には、別のシェルへ切り替えたい場面が出てきます。
- VS Code の既定ターミナルをコマンドプロンプトに変更する手順
- 「恒久設定」と「今回だけの一時利用」の使い分け
- settings.json を直接編集して切り替える方法
- Git Bash へ切り替える場合の手順と使いどころ
- Remote-SSH 接続時に出る「command not found」への対処
既定ターミナルの変更は、Terminal: Select Default Profile コマンドを使えば画面操作だけで完結します。以前は settings.json の手編集が中心でしたが、現在は一覧から使いたいシェルを選ぶだけで切り替えられます。一時的に別のシェルを使いたいときは、ターミナルのドロップダウンから直接選ぶ方法も用意されています。
VS Code の既定ターミナルを確認する
VS Code の画面下部に表示される統合ターミナルは、Windows 版では既定で PowerShell が起動する設定になっています。これは VS Code が OS ごとに既定シェルを判定しているためで、Windows では PowerShell、macOS・Linux では環境変数 $SHELL で指定されたシェルが選ばれます。
インフラ作業では、使い慣れたコマンドプロンプト (cmd.exe) や、Linux コマンドが扱える Git Bash のほうが都合のよい場面もあります。次のセクションで、既定のシェルをコマンドプロンプトへ変更する手順を見ていきます。
ターミナルをコマンドプロンプトに変更する手順
既定のシェルは、コマンドパレットの Terminal: Select Default Profile(既定のプロファイルの選択)から変更できます。設定を保存すると、以降に開くターミナルすべてに反映されます。一度だけ別のシェルを使いたい場合は、後述の一時利用の方法が便利です。
参考: Visual Studio Code 公式ドキュメント(Terminal Profiles)
“Configure your default profile by running the Terminal: Select Default Profile command”
(既定のプロファイルは Terminal: Select Default Profile コマンドを実行して設定します)
https://code.visualstudio.com/docs/terminal/profiles
既定プロファイルを変更する(恒久設定)
新しいターミナルを開いたときに、常にコマンドプロンプトが起動するように設定を変更します。
- メニューの「表示」>「ターミナル」を選択するか、ショートカットキー Ctrl + @(または Ctrl + ` )でターミナルパネルを表示します。
- ターミナルタブ右側にある「+」ボタン横の下矢印(∨)をクリックします。
- 表示されたメニューから「既定のプロファイルの選択」をクリックします。
- 画面上部に出てくる一覧から「Command Prompt」を選択します。
これで設定は完了です。次回以降、「+」ボタンで新しいターミナルを開くと、コマンドプロンプトが起動します。

今回だけ切り替える(一時利用)
既定の設定は変えずに、今回だけ別のシェルを使いたい場合は、下矢印(∨)をクリックして一覧から直接「Command Prompt」を選びます。この方法では、選んだシェルのターミナルがその場で開き、既定プロファイルの設定には影響しません。
settings.json で設定する場合
GUI での選択結果は、内部的に settings.json へ書き込まれます。設定ファイルを直接編集したい場合は、次の手順で記述できます。
- Ctrl + Shift + P でコマンドパレットを開きます。
- 「基本設定: ユーザー設定を開く (JSON)」を選択します。
- 次のキーを追記して保存します。
{
"terminal.integrated.defaultProfile.windows": "Command Prompt"
}値を "Git Bash" にすると Git Bash、"PowerShell" にすると PowerShell が既定になります。以前は settings.json への手編集が主な方法でしたが、現在は前述の画面操作で同じ設定が行えます。どちらの方法も有効なので、好みに合わせて選べます。
Git Bash に切り替える場合
コマンドプロンプトではなく、ssh-keygen による SSH 鍵の作成や grep・sed といった Linux コマンドを Windows 上で使いたい場合は、Git Bash への切り替えが便利です。Git Bash は Git for Windows に同梱される bash 環境で、Windows 上で Unix 系コマンドを扱えます。
切り替え手順は、前述の既定プロファイル変更と同じです。
- 「+」ボタン横の下矢印(∨)をクリックします。
- 「既定のプロファイルの選択」を開きます。
- 一覧から「Git Bash」を選択します。
今回だけ使いたい場合は、下矢印(∨)から直接「Git Bash」を選びます。なお、Git for Windows がインストールされていない環境では、一覧に Git Bash が表示されません。その場合は Git for Windows( https://git-scm.com/download/win )を導入してから、再度一覧を確認してください。
従来手法と VS Code の比較
VS Code に Remote-SSH を組み合わせると、これまで複数のツールに分かれていた作業を 1 つの画面にまとめられます。従来の構成との違いを整理します。
| 項目 | 従来手法(Tera Term + WinSCP 等) | VS Code(Remote-SSH) |
|---|---|---|
| ターミナル操作 | Tera Term などの SSH クライアント | 統合ターミナルで操作 |
| ファイル転送 | WinSCP などの FTP/SCP ソフト | ドラッグ&ドロップで転送 |
| ファイル編集 | vi、または転送してから編集 | エディタで直接編集・保存 |
| 画面構成 | ツールごとに別ウィンドウ | 1 画面に集約 |
| 学習コスト | 各ツールの操作を個別に習得 | VS Code の操作に集約 |
どちらを選ぶかは作業内容によって変わります。多段の踏み台を経由する接続や、独自プロトコル・厳格な接続制約がある環境では、従来の専用クライアントが適している場合もあります。一方、日常的なサーバー保守・設定変更・ログ確認・スクリプト編集が中心であれば、VS Code への一本化が作業効率の向上につながります。
Remote-SSH で「command not found」が出るときの対処
Remote-SSH でサーバーへ接続しようとした際、接続に失敗し、出力ログに次のようなメッセージが表示されることがあります。
bash: powershell: command not foundこれは、PowerShell 向けのコマンドが、PowerShell を持たないシェル(Linux リモートの bash など)へ送られている状態で発生します。Windows 環境の変更(OS のアップグレードなど)のあとに出やすいことが報告されています。
対処は、公式のトラブルシューティング手順に沿って次の順で切り分けると整理しやすくなります。
出力ログを確認する:
VS Code の出力パネルで「Remote-SSH」を選び、どのコマンドで失敗しているかを確認します。
remote.SSH.useLocalServer を切り替える:
設定でこの項目の値を変更し、両方の値で接続を試します。
remote.SSH.useExecServer を無効化する:
この項目が有効になっている場合は、無効にして接続を試します。
リモートプラットフォームの判定を確認する: remote.SSH.remotePlatform で対象ホストが linux と認識されているかを確認します。Linux のサーバーが誤って Windows と判定されると、PowerShell 向けのコマンドが送られ、このエラーにつながる可能性があります。
参考: Remote-SSH Troubleshooting(公式 Wiki)
“Try connecting using both values of the remote.SSH.useLocalServer setting”
(remote.SSH.useLocalServer の両方の値で接続を試してください)
https://github.com/microsoft/vscode-remote-release/wiki/Remote-SSH-troubleshooting
Remote-SSH の接続設定(config の書き方や公開鍵認証)そのものについては、関連記事『VS Code Remote-SSH でサーバーに接続する手順』をご参照ください。
まとめ
VS Code の統合ターミナルは Windows では既定で PowerShell が起動しますが、Terminal: Select Default Profile から画面操作だけでコマンドプロンプトや Git Bash へ切り替えられます。恒久設定と一時利用を使い分ければ、作業内容に応じたシェルを選べます。Remote-SSH 接続時の「command not found」も、設定の切り分けで対処の見通しが立てやすくなります。
- 既定ターミナルの変更はコマンドパレットの操作だけで完結
- 恒久設定はプロファイル変更、一時利用はドロップダウンで切り替え
- settings.json では defaultProfile.windows の値で指定
- Git Bash の利用には Git for Windows の事前導入が必要
- Tera Term + WinSCP の構成を VS Code 一本に集約できる利点
- Remote-SSH の command not found は useLocalServer 等で切り分け
- リモートの Windows 誤判定も command not found の一因
以上、最後までお読みいただきありがとうございました。
