久々に使おうとしたら使えなくなっていたので、対処方法を書いておきます。
調べた感じだと人によって原因が違うようなので、あくまで一つの対処方法としてご覧ください。
目次
てっとり早く知りたい人向け
以下のコマンドでcodeコマンドのパスが表示されなければ、
$ which code
シンボリックリンクを手動で作成する。(VS Codeのインストールパスは自身の環境のものに修正が必要)
$ sudo ln -s '/mnt/c/Users/[ユーザー名]/AppData/Local/Programs/Microsoft VS Code/bin/code' /usr/local/bin/code $ which code /usr/local/bin/code
事象
wsl環境でcodeコマンドを実行したところ、コマンドが見つからないというメッセージが出力されました。
※キャプチャを取り忘れたのでメッセージの一部だけ貼ります
$ code . Command 'code' not found,
VS CodeのWSL拡張のアンインストール、インストールも試してみましたがダメでした。
対処方法
以下の記事を参考に確認していきました。
zenn.dev
①wsl上でcodeコマンドの有無の確認
whichコマンドでcodeコマンドのパスを確認しようとしましたが、記事にあるような「/usr/local/bin/code」は表示されませんでした。
多分これが原因のようです。
$ which code
②Windows側の環境変数からVS Codeのインストール場所を確認
PowerShellで以下のコマンドを実行して、VS Codeのパスを確認します。
PS > echo $env:PATH C:\Users\[ユーザー名]\AppData\Local\Programs\Microsoft VS Code\bin;
③windows側のcodeコマンドのパスを確認
②で確認したパスを元にcodeコマンドのフルパスを確認します。
PS > ls "C:\Users\[ユーザー名]\AppData\Local\Programs\Microsoft VS Code\bin\code" ディレクトリ: C:\Users\[ユーザー名]\AppData\Local\Programs\Microsoft VS Code\bin Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 2024/08/07 21:02 2001 code
④wsl上でシンボリックリンクを手動で作成
③で確認したcodeコマンドのフルパスを元に、wsl上でシンボリックリンクを作成します。
このとき、Windows側のファイルパスをwsl側から参照するために、パスの形式を修正しておきます。
$ sudo ln -s '/mnt/c/Users/[ユーザー名]/AppData/Local/Programs/Microsoft VS Code/bin/code' /usr/local/bin/code
⑤codeコマンドの確認と実行
シンボリックリンク作成後、ターミナルの再起動などは不要ですぐにcodeコマンドが利用できるようになります。
$ which code /usr/local/bin/code
VS Codeで開きたいパスに移動し、codeコマンドを実行すると無事VS Codeが立ち上がりました。
$ cd [VS Codeで開くパス] $ code .
感想及び所感
調べてみたら意外と同じような事象が起きている人が多かったので、せっかくなので対処方法を書いてみました。
何故codeコマンドがwsl上から消えていたのかは謎ですが、恐らく以前PATHやbashrc周りを触っていたときに操作ミスとかで消していたのかもしれません。
この記事がどなたかの参考になれば幸いです。