WSL2でVS Codeを使う入門|Remote WSL拡張でLinuxファイルをWindowsから編集する方法

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)【Linux入門】初心者のための基礎知識・講座 > WSL2でVS Codeを使う入門|Remote WSL拡張でLinuxファイルをWindowsから編集する方法
「WSL2をインストールしたのに、コードを書くときどうすればいいのか分からない。」
「ターミナルでvimを使えと言われても、操作が難しすぎる。」

WSL2でLinuxを動かせるようになったら、次の壁はエディタです。
Linuxのターミナル上でvimやnanoを使う方法もありますが、初心者にはハードルが高めです。

そこで使いたいのが、VS CodeのRemote WSL拡張機能です。
これを使えば、WindowsのVS Codeから直接WSL2のLinux上にあるファイルを開いて編集できます。WSL2のターミナルで「code .」と入力するだけで起動するので、設定も最小限です。

この記事では、Remote WSL拡張のインストールから実際の使い方、Git連携、PythonなどのWSL2側への拡張機能インストール、よくあるエラーの対処まで、初心者向けにゼロから解説します。

※動作確認環境: Windows 11 / WSL2(Ubuntu 24.04 LTS)/ VS Code 1.99

この記事のポイント

・「code .」コマンドでWSL2のLinuxファイルをVS Codeで即座に開ける
・Remote Development拡張のインストールは5分もかからない
・Python・Git・ESLintなどの拡張機能はWSL2側にもインストールが必要
・「code: command not found」は再インストールで解決するケースがほとんど


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

VS CodeのRemote WSL機能とは何か

VS Code(Visual Studio Code)はMicrosoftが提供する無料のエディタです。
通常はWindowsのファイルを編集しますが、「Remote WSL」という拡張機能を追加すると、WSL2のLinux環境に直接接続してLinux上のファイルを編集できるようになります。

仕組みとしては、VS Codeの見た目(UI部分)はWindowsで動きながら、裏側でWSL2のLinux上に「VS Code Server」という小さなサーバーを起動しています。
WindowsのVS CodeとLinux上のVS Code Serverがつながることで、あたかもLinux上でVS Codeが動いているかのように使えます。

この方式のメリットを整理すると、こうなります。

ファイルパスがLinuxネイティブ:/home/user/project のようなLinuxのパスでそのまま作業できる
ターミナルもLinux:VS Code内蔵ターミナルを開くとWSL2のbashが自動で起動する
拡張機能もLinux側で動く:PythonやNode.jsの拡張機能がWSL2のインタープリタを正しく認識する
ファイルアクセスが高速:プロジェクトをWSL2のファイルシステム(/home/以下)に置くと、Windowsの/mnt/c経由より大幅に速くなる

VS Code Remote WSLとWSL2の組み合わせでできること(まとめ)
項目 Remote WSL接続なし Remote WSL接続あり
ファイルの編集場所 Windowsのファイルシステム WSL2(Linux)のファイルシステム
内蔵ターミナル WindowsのPowerShell / cmd WSL2のbash(Linuxコマンドが使える)
Python拡張機能 WindowsのPythonを参照 WSL2(Linux)のPythonを参照
Gitコマンド WindowsのGitを使用 WSL2のgitを直接使用

インストールの準備と確認

1. WSL2が動いているか確認する

まずWSL2が正常に動いているか確認します。
Windowsのコマンドプロンプトまたはターミナルで以下を実行してください。

# Windows側のコマンドプロンプトで実行する > wsl --list --verbose NAME STATE VERSION * Ubuntu-24.04 Running 2

「VERSION」の列が「2」になっていればWSL2として動いています。
「Stopped」と表示された場合は、スタートメニューから「Ubuntu」を起動してください。
「1」と表示された場合はWSL1として動作しているため、以下のコマンドでWSL2に変換できます。

# Ubuntu-24.04をWSL2に変換する(ディストリビューション名は環境に合わせる) > wsl --set-version Ubuntu-24.04 2

2. VS Codeをインストールする

VS CodeはMicrosoftの公式サイト(https://code.visualstudio.com/)からダウンロードしてインストールします。
インストーラーを実行するときに、「PATHへの追加」オプションにチェックが入っていることを確認してください。
このチェックが外れていると、ターミナルから「code」コマンドを実行できません。

インストール済みの場合はWindowsのコマンドプロンプトでバージョンを確認できます。

# Windowsのコマンドプロンプトで実行する > code --version 1.99.3 b8a78f6b27a244b965fcedca9e25be12f74f1700 x64

3. Remote Development拡張をインストールする

VS Codeを起動して、左サイドバーの「拡張機能」アイコン(Ctrl+Shift+X)をクリックします。
検索ボックスに「Remote Development」と入力して、Microsoftが提供する同名の拡張機能をインストールします。

このパックには以下の3つの拡張が含まれています。

Remote - WSL:今回使う拡張機能。WSL2のLinux環境に接続する
Remote - SSH:SSH経由でリモートサーバーに接続する
Dev Containers:Dockerコンテナの中で開発する

3つがまとめてインストールされますが、今回使うのは「Remote - WSL」のみです。
インストール完了後、VS Codeの左下に青い「><」アイコンが表示されます。このアイコンをクリックするとWSL2への接続メニューが開きます。

WSL2のファイルをVS Codeで開く基本操作

1. WSL2のターミナルから「code .」を実行する

WSL2のUbuntuターミナルを開いて、作業したいディレクトリに移動してから「code .」を実行します。

# ホームディレクトリに練習用フォルダを作成して移動する $ mkdir ~/myproject && cd ~/myproject # VS Codeを開く(「.」は現在のディレクトリを意味する) $ code .

2. VS Code Serverのインストールと接続確認

初回は「code .」を実行すると、WSL2の中にVS Code Serverが自動でインストールされます。

$ code . Installing VS Code Server for Linux x64 (b8a78f6b27a244b965fcedca9e25be12f74f1700) Downloading: 100% Unpacking: 100% Starting VS Code Server... Extension host agent listening on 47125.

初回は数十秒ほどかかりますが、完了するとWindowsのVS Codeが自動で起動します。
左下の緑色のエリアに「WSL: Ubuntu-24.04」と表示されていれば、WSL2に正常に接続できています。
2回目以降は「code .」を実行するとほぼ即座にVS Codeが開きます。

3. ファイルを作成して動作確認する

VS Codeのエクスプローラー(左サイドバー)に「myproject」フォルダが表示されています。
「新しいファイル」ボタンで「hello.sh」を作成し、以下の内容を入力してみましょう。

#!/bin/bash echo "WSL2でVS Codeが使えています"

ファイルを保存(Ctrl+S)したら、VS Code内蔵ターミナル(Ctrl+`)を開いて実行確認します。

# 実行権限を付与して実行する $ chmod +x hello.sh $ ./hello.sh WSL2でVS Codeが使えています

メッセージが表示されれば成功です。Windowsのエディタで作成したファイルがLinux上で動いています。

4. ワークスペースの保存とプロジェクトの再接続

VS Codeのワークスペース情報は「ファイル」→「名前を付けてワークスペースを保存」で .code-workspace ファイルとして保存できます。
次回以降は保存した .code-workspace ファイルをダブルクリックするだけで、WSL2接続済みの状態でプロジェクトが開きます。

また、最近開いたフォルダはVS Codeの「ファイル」→「最近使用したファイルを開く」(Ctrl+R)から素早く再アクセスできます。
WSL2接続のフォルダには「[WSL: Ubuntu-24.04]」のラベルが付いているので、Windowsのフォルダと区別できます。

知っておきたい実践Tips

1. 拡張機能はWSL2側にもインストールする

VS Codeの拡張機能には「Windows側で動くもの」と「WSL2(Linux)側で動くもの」の2種類があります。
Pythonの補完機能やESLintなど、コードに直接関係する拡張機能はWSL2側にインストールする必要があります。

拡張機能の詳細ページを開くと、インストールボタンの横に「WSL: Ubuntu-24.04にインストール」と表示されることがあります。
この場合はそのボタンからWSL2側へインストールしてください。

WSL2側にインストール済みかどうかは、左サイドバーの「拡張機能」を開いて「インストール済みのWSL: Ubuntu-24.04用」セクションで確認できます。

2. VS Code内蔵ターミナルでLinuxコマンドを実行する

WSL2接続中にVS Codeのターミナル(Ctrl+`)を開くと、自動でWSL2のbashが起動します。
LinuxコマンドをVS Codeの画面を離れずに実行できるので、エディタとターミナルを行き来する手間が省けます。

# VS Code内蔵ターミナル(WSL2のbash)での確認例 tomohiro@DESKTOP-XXXXX:~/myproject$ uname -a Linux DESKTOP-XXXXX 5.15.167.4-microsoft-standard-WSL2 #1 SMP Tue Nov 5 00:21:55 UTC 2024 x86_64 GNU/Linux tomohiro@DESKTOP-XXXXX:~/myproject$ ls -la total 8 drwxr-xr-x 2 tomohiro tomohiro 4096 Jul 14 09:00 . drwxr-xr-x 8 tomohiro tomohiro 4096 Jul 14 08:55 .. -rwxr-xr-x 1 tomohiro tomohiro 56 Jul 14 09:00 hello.sh

「microsoft-standard-WSL2」という文字列が出力に含まれていれば、WSL2のLinux上で動いていることが確認できます。

3. 別のプロジェクトを開くときはcode .を使い回す

WSL2上の別のフォルダを開きたいときは、WSL2のターミナルでそのフォルダに移動してから「code .」を実行するのが最もシンプルです。

# 別のプロジェクトに移動してVS Codeで開く $ cd ~/anotherproject $ code .

VS Codeが別ウィンドウで開き、そのフォルダをWSL2接続の状態で編集できます。
既存のウィンドウと並べて使いたい場合は「ファイル」→「新しいウィンドウでフォルダーを開く」を使ってください。

4. Git連携はWSL2側のgitが自動で使われる

WSL2接続中のVS CodeでGitを使うと、VS Code内蔵のソース管理パネル(Ctrl+Shift+G)がWSL2のgitコマンドを直接呼び出します。
Windows側にGitをインストールしていなくても、WSL2にgitさえ入っていれば問題ありません。

# WSL2にgitをインストールする(未インストールの場合) $ sudo apt update && sudo apt install -y git # gitの動作確認 $ git --version git version 2.43.0

gitのインストール後は、VS CodeのGUIからコミット・プッシュ・ブランチ切り替えがすべてWSL2のgit経由で操作できます。
ターミナルでgitコマンドを直接打つのが苦手な方には、特におすすめの使い方です。

5. Python(conda/venv)仮想環境をVS Codeで切り替える

WSL2でPythonの仮想環境(condaやvenv)を使っている場合、VS CodeのPython拡張機能がその仮想環境を自動で検出します。
VS Codeウィンドウ右下のPythonバージョン表示をクリックするか、コマンドパレット(Ctrl+Shift+P)で「Python: インタープリターを選択」を実行すると、仮想環境を切り替えられます。

# WSL2でconda仮想環境を作成する(Minicondaインストール済みの場合) $ conda create -n myenv python=3.11 $ conda activate myenv # VS CodeのPython拡張機能(WSL2側にインストール済みの場合) # 右下のPythonバージョン表示をクリックすると「myenv」が選択肢に表示される

仮想環境を切り替えると、LinterやデバッガーもそのPython環境のライブラリを参照するようになります。
複数プロジェクトでPythonバージョンや依存パッケージを分けて管理したい場合に役立ちます。

「code: command not found」が出た時の対処法

WSL2のターミナルで「code .」を実行したときに、次のエラーが出ることがあります。

$ code . -bash: code: command not found

「codeコマンドが見つからない」というエラーです。以下の順番で確認してください。

確認1 VS CodeのPATHが通っているか:WSL2のターミナルで以下を実行する

$ echo /home/tomohiro/.npm-global/bin:/usr/local/bin:/usr/bin:/bin:/home/tomohiro/.local/bin:/home/tomohiro/.npm-global/bin | tr ':' ' ' | grep -i vscode /mnt/c/Users/tomohiro/AppData/Local/Programs/Microsoft VS Code/bin

このパスが表示されれば正常です。表示されない場合は次の確認に進んでください。

確認2 VS Codeをインストールし直す:VS Codeをアンインストールして公式サイトからインストーラーを再ダウンロードし、「PATHへの追加」にチェックを入れてインストールする

確認3 WSL2を再起動する:VS Code再インストール後は、WSL2を一度シャットダウンして起動し直す

# Windows側のコマンドプロンプトで実行する > wsl --shutdown # 再度WSL2を起動する > wsl

再起動後に「code .」を再度試してみてください。ほとんどのケースでこれで解決します。

確認4 /etc/wsl.confの設定を確認する:WSL2のターミナルで以下を実行する

# /etc/wsl.confの内容を確認する(ファイルが存在する場合のみ) $ cat /etc/wsl.conf

セクションに や が設定されている場合、WindowsのPATHがWSL2に引き継がれずVS CodeのPATHも通りません。
該当の行を削除またはコメントアウトしてからWSL2を再起動してください。

本記事のまとめ

WSL2とVS Codeを組み合わせることで、WindowsユーザーでもLinuxの開発環境を快適に使えるようになります。
「WSL2は動かせるようになったけどいまいち使い方が分からない」という方は、今日からVS Codeと一緒に活用してみてください。
やりたいこと 操作方法
WSL2のフォルダをVS Codeで開く WSL2ターミナルで code . を実行
VS Codeのターミナルをbashとして使う Ctrl+` でターミナルを開く(WSL2接続中は自動でbashになる)
拡張機能をWSL2側にインストールする 拡張機能の詳細ページで「WSL: Ubuntu-24.04にインストール」を選択
Git連携をWSL2のgitで行う WSL2にgitをインストールするだけで自動連携される
Python仮想環境を切り替える Ctrl+Shift+P → 「Python: インタープリターを選択」
「code: command not found」エラーを解消する VS Codeを再インストールしてPATH追加にチェックを入れる

関連記事 ~ 次に身につけるLinuxスキル

WSL2とVS Codeが使えるようになったら、次は実際のLinuxコマンドや設定を深く学んでいきましょう。
以下の7つのテーマで、WSL2・VPS・クラウド環境でそのまま使える実践的なスキルを身につけられます。

シェルスクリプト:set -xコマンドでシェルスクリプトをデバッグする方法|set -e・set -uとの組み合わせも ~ スクリプトのデバッグを素早く行う
セキュリティ:fail2banコマンドでブルートフォース攻撃を自動ブロックする方法|SSHの不正アクセス対策も ~ SSHへの不正アクセスを自動でブロックする
サーバー構築:scpコマンドでファイルを安全に転送する方法|公開鍵認証やディレクトリごとコピーも ~ VPSとWindowsの間でファイルを転送する
トラブルシューティング:straceコマンドでプロセスのシステムコールを追跡する方法|Permission deniedの原因特定も ~ コマンドが動かない原因を深く調べる
ネットワーク:nmcliコマンドでネットワーク接続を設定する方法|静的IP・DHCPの切替も ~ VPS・クラウドのネットワーク設定を理解する
ディスク管理:lsblkコマンドでブロックデバイスを一覧表示する方法|ディスク構成やパーティション確認も ~ WSL2やVPSのストレージ状況を把握する
現場Tips:watchコマンドで定期的にコマンドを繰り返し実行する方法|変化の検出やログ監視にも ~ コマンドを自動で繰り返して状態変化を監視する
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、
無料の「Linuxサーバー構築入門マニュアル(図解60ページ)」をプレゼントしています。
WSL2やVS Codeでの学習をさらに深めたい方は、ぜひ受け取ってみてください。
無料マニュアルを受け取る >>

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。