【WSL】code not foundエラーの原因とVSCode起動手順

WSL2やWSL 3.0のターミナル(Ubuntuなど)で作業中に、エディタを開こうとして code . や code コマンドを実行した際、エラーが表示されてVisual Studio Codeが起動しないトラブルに直面することがあります。

$ code .
Command 'code' not found, but can be installed with:
sudo snap install code

ターミナルには「sudo snap install code でインストールできます」と案内されますが、指示に従ってLinux側にsnapでVS Codeを入れてはいけません。WSLの設計思想は「Windows側のVS CodeからLinux内のファイルをリモート操作する」ことであり、Linux内に重複してGUIエディタをインストールすると環境が壊れる原因になります。

この記事では、「Command ‘code’ not found」が発生する根本原因と、Windows側のVS CodeをWSLから正常に呼び出すための確実な解決手順を分かりやすく解説します。

この記事で行うこと

  • 「Command ‘code’ not found」エラーの発生原因(PATH未共有・拡張機能未導入)を理解する
  • 対処法1:VS Codeの「WSL」拡張機能を確認・再インストールする(最も推奨される解決策)
  • 対処法2:環境変数PATHにWindows側VS Codeのbinフォルダーを追加する(手動設定)
  • 対処法3:/etc/wsl.conf の相互運用設定(appendWindowsPath)を確認する
  • 設定反映のためのWSL再起動(wsl --shutdown)と動作確認を行う

前提条件・対象読者

項目内容
対象OSWindows 11、Windows 10
対応バージョンWSL 2、WSL 3.0以降
必要ツールWindows版 Visual Studio Code、Windows Terminal(またはWSLシェル)
対象読者WSLターミナルから code . でVS Codeが起動せず困っている方

本記事の手順は、Windows 11環境上のWSL 2およびWSL 3.0.1(Ubuntu 24.04 LTS)とVS Code最新版にて動作確認を行っています。

1. エラーが発生する主な原因

WSL側から code コマンドが認識されない主な原因は以下の3点です。

  • 原因1(環境変数PATH): Windows側にインストールされているVS Codeの実行ファイル(code スクリプト)のパスが、WSLの環境変数 PATH に登録されていない
  • 原因2(公式拡張機能): Windows側のVS Codeに公式拡張機能「WSL(ms-vscode-remote.remote-wsl)」が正しく入っていない
  • 原因3(相互運用設定): /etc/wsl.conf で appendWindowsPath = false が設定されているため、Windows側のコマンド呼び出しが無効化されている

2. 対処法1:VS Codeの公式拡張機能「WSL」をインストールする(推奨)

最も安全かつ公式に推奨される解決策は、Windows側のVS Codeに「WSL」拡張機能をインストールすることです。

  1. Windows側でVisual Studio Codeを通常通り起動します
  2. 左サイドバーの拡張機能アイコン(四角いブロックのマーク、または Ctrl + Shift + X)を開きます
  3. 検索窓に WSL と入力します
  4. Microsoft公式の「WSL」(拡張機能ID: ms-vscode-remote.remote-wsl)が表示されたら、「インストール」をクリックします
  5. インストール完了後、VS Codeを一度完全に終了します

その後、PowerShellで wsl --shutdown を実行してから再度WSLターミナルを開き、code . を実行してみてください。拡張機能の導入によって自動的にPATH連携スクリプトが構成され、解決することが多いです。

3. 対処法2:.bashrc で Windows側のVS CodeへPATHを通す

拡張機能を入れても code が見つからない場合は、環境変数 PATH にWindows側VS Codeの実行パスを手動で追加します。

手順1:Windows側のVS Codeインストールパスを確認する

一般的なWindows環境におけるVS Code(ユーザーインストーラー版)の配置パスは以下のとおりです。

C:\Users\ユーザー名\AppData\Local\Programs\Microsoft VS Code\bin

これをWSLのLinuxパス形式に変換すると、以下のようになります(ユーザー名 はご自身のWindowsアカウント名です)。

/mnt/c/Users/ユーザー名/AppData/Local/Programs/Microsoft\ VS\ Code/bin

手順2:.bashrc にPATH設定を追記する

WSLのターミナルを開き、ホームディレクトリの .bashrc を編集します。

nano ~/.bashrc

ファイルの末尾に、以下のexportコマンドを1行追記します(ユーザー名 の部分をご自身のWindowsアカウント名に書き換えてください)。

export PATH=$PATH:"/mnt/c/Users/ユーザー名/AppData/Local/Programs/Microsoft VS Code/bin"

ファイル保存(nanoの場合は Ctrl + O → Enter、終了は Ctrl + X)を行います。

手順3:設定を再読み込みして動作確認する

編集した設定を現在のシェルに即時反映させます。

source ~/.bashrc

反映後、現在のフォルダーでVS Codeを起動してみます。

code .

Windows側のVisual Studio Codeが自動的に立ち上がり、左下に「WSL: Ubuntu」などのリモート接続バッジが表示されてプロジェクトフォルダーが開けば成功です。

4. 対処法3:/etc/wsl.conf の相互運用設定を確認する

手動でPATHを通しても起動しない場合、WSLのシステム設定でWindowsコマンドの呼び出しがブロックされている可能性があります。

WSL内の /etc/wsl.conf を確認します。

cat /etc/wsl.conf

もし以下のような記述がある場合、Windowsバイナリの実行やPATHの引き継ぎが無効化されています。

[interop]
enabled = false
appendWindowsPath = false

Windows側の code コマンドを実行するには、これらの設定を削除するか、以下のように true に変更する必要があります。

[interop]
enabled = true
appendWindowsPath = true

編集した場合は、WindowsのPowerShellから wsl --shutdown を実行してWSLを完全に再起動してください。

まとめ

WSL環境で「Command ‘code’ not found」が発生した際の重要ポイントは以下のとおりです。

  • snapやaptでLinux側にVS Codeを直接インストールしない(Windows側のVS Codeと連携させるのが正解)
  • Windows側VS Codeに公式拡張機能「WSL」をインストールすると自動解決しやすい
  • 解決しない場合は、~/.bashrc にWindows側VS Codeの bin フォルダーへのパスをexport追加する
  • 設定後は source ~/.bashrc または wsl --shutdown で設定を反映させる

エクスプローラー連携やターミナルコマンドを使いこなし、スムーズな開発環境を維持してみてください。

参考情報