Visual Studio Code統合ターミナルからWindowsでBashを使用するにはどうすればよいですか?


回答:


347

bash.exeパスを手動で入力する必要がなくなりました。この回答は廃止されました。これで、bashに直接切り替えることができます。gitがインストールされていることを確認してください。


https://git-scm.com/download/winからGitをインストールします

そして、オープンVisual Studioのコードと使用して、コマンドパレットを開きCtrl+ Shift+ P。次に、「ユーザー設定を開く」と入力し、ドロップダウンメニューから[ユーザー設定を開く]を選択します。

Visual Studio Codeコマンドの口蓋

次に、このタブが開き、左側にデフォルト設定、右側に設定が表示されます。

ここに画像の説明を入力してください

次に、このコード行を独自の設定ページ(右側のペイン)にコピーして保存します- "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"

注: "C:\\Program Files\Git\bin\bash.exe"は、bash.exeGitインストールからのファイルのパスです。Linux(WSL)Bashシェル用のWindowsサブシステムを使用している場合、パスは次のようになります。"C:\Windows\System32\bash.exe"

Ctrl+ `を押して、Visual Studio Codeからターミナルを開きます。そして、あなたはバッシュを持っているでしょう-

ここに画像の説明を入力してください


1
これらはgit bashのデフォルトの色です。
Mahade Walid 2017

5
役立つかもしれない2つの情報:パスを書き込むときに、jsonでバックスラッシュ文字をエスケープすることを確認してください。また、32ビットバージョンにはデフォルトで色がない可能性があるため、64ビットバージョンのgit bashをvscodeに必ず含めてください。(パスから「(x86)」の部分を削除するだけです)
Lajos Meszaros

2
Lajosに追加しても、ターミナルが開かない場合は、vscodeを再起動してみてください。
adityah 2017

3
で問題が発生しました"terminal.integrated.shell.windows": "C:\\Program Files\\Git\bin\bash.exe"。ターミナルが開いていませんでした。試しました "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"。私には完璧に働きました。
Dharmjeet Kumar

28
参考までにbash.exe、ではなくにリンクしてくださいgit-bash.exe。後者はVSコードの外部でターミナルを別のウィンドウとして開き、bash.exeVSコードの内部で実行します。
Darius

258
  1. https://git-scm.com/download/winからGitをインストールします

  2. Visual Studio Code を開き、Ctrl+ `を押し続けてターミナルを開きます。

    ここに画像の説明を入力してください

  3. Ctrl+ Shift+ を使用してコマンドパレットを開きPます。

  4. タイプ-デフォルトのシェルを選択

  5. オプションからGit Bashを選択します

  6. ターミナルウィンドウの+アイコンをクリックします

  7. 新しいターミナルはGit Bashターミナルになります。Git Bashをロードするのに数秒かかります

    ここに画像の説明を入力してください

  8. これで、ターミナルのドロップダウンからさまざまなターミナルを切り替えることができます。

    ここに画像の説明を入力してください


5
これでうまくいきました。デフォルトのbashを手動で追加して他のすべてのガイドを試しましたが、毎回新しいターミナルウィンドウが開きました。多くの感謝
グレン

3
これは私が探していたものです...これはより簡単に受け入れられる答えであるはずです
Boopathi T

1
完全に説明しました。この返信ありがとうございます。
SKalariya 2018

ctrl + `が機能しない場合(たとえば、gitをインストールしてユーザー設定jsonを設定した後でも何も起こりません)、これを試してください:ctrl + shift + P>フォーカスターミナル。
オリステッドマン

1
よりシンプルで高速なソリューション
Themelis

80

更新: Visual Studio Codeの新しいバージョンでは、ターミナルのプルダウンメニューに[既定のシェル選択 ]コマンドがあります。

デフォルトシェルオプションを選択

%PATH%環境変数にあるシェルのみをリストすることに注意してください。パスに含まれていないシェルについては、他の回答を参照してください。

追加のヒント:bashを起動すると.bashrc、実行されるだけです。初期化コマンドがある.bash_profile場合は、それをにコピーする必要があります.bashrc。Git BashでConda環境を使用するために不可欠です。

バージョン1.36より前(2019年6月)

現在最も簡単な方法(少なくともVisual Studio Code 1.22以降)は、「Shift+ Ctrl+」と入力しPコマンドパレットを開き、次のように入力することです。

Select Default Shell

これで、パスにあるシェルの中から好みのシェルを簡単に選択できます。

シェル選択リスト

%PATH%にないシェルについては、他の回答を参照してください。

完全なVisual Studio Codeシェルリファレンスをご覧ください。肉がたくさんあります。


1
これが私が探していた答えでした。WSL Bashを使用したかったのですが、他の答えはgitに付属しているbashを使用すること
でした

1
特定のシェルを「デフォルト」にせずに開く方法はありますか?「今回だけオープンbash」をするのは理にかなっていると思います。
ブレントアリアス

41

長押しCtrl+ `ターミナルをオープンします。ターミナルで、ターミナルでbashGit Bashを使用するように入力します。注:Git Bashがマシンにインストールされていることを確認してください。

PowerShellを再度使用する場合powershellは、ターミナルに入力するだけです。Windowsコマンドラインを使用するにcmdは、ターミナルに入力します。

選択した設定がデフォルトとして使用されます。


4
これにより、選択した回答の価値が
高まり

1
「Powershellに戻す」exitには、デフォルトのシェル内で実行されているbashシェルpowershellから、bashがpowershellが何であるかを認識していないため、次のように入力する必要があります。
Lucas Morgan、

13

私にとっては、次の組み合わせだけが機能します。

"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\git-cmd.exe",
"terminal.integrated.shellArgs.windows": [
  "--command=usr/bin/bash.exe",
  "-l",
  "-i"
]

git-bash.exeをとして、...shell.windowsBashがVisual Studioの外部で開くたびに!!


1
これは本当に私を助けました。上記の回答に従ってbashを機能させましたが、bashとgitのエイリアスをすべて失いました。これは彼らを買い戻しました。ありがとう。
デビッドマーティン

1
これは私と一緒に働いたものです: "terminal.integrated.shell.windows": "C:\\ Program Files \\ Git \\ bin \\ bash.exe"、 "terminal.integrated.shellArgs.windows":["- -login "、" -i "]
Belal Mohammed '10

この解決策は私にとってもうまくいきました。追加する注意点は、私の場合、gitbashを使用してラグを減らすために、このポストstackoverflow.com/questions/32232978/…に従い、Windowsで新しいHOME環境変数を設定することです。VSCodeで適切に機能させるために、上記の答えは完全に機能しました。
Rob B

13

Visual Studio Codeの最新の更新により、状況が少し変更されました。次の手順でうまくいきます。

  1. Ctrl+ Shift+ Pを押して、Visual Studio Codeコマンドの口蓋を開きます。

  2. >preferences: Open Settings (JSON)テキスト領域に入力します。

  3. 右側のペインに表示されるJSONファイルの最後に次の行を追加します。

    "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
  4. Visual Studio Codeインスタンスを閉じて再度開きます。


10

私はPaul DeCarloのこのチュートリアルに従って、Git Bash for Windowsに付属しているものの代わりに、Linux(WSL)のWindowsサブシステムのBashを使用しました。これらは上記の回答と同じ手順ですが、代わりにユーザー設定で以下を使用してください。

"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe",

これは私にとって初めて機能しました...これはまれです。


1
確かに珍しい。最先端
クリストファーペインター

7

これにより、少なくとも私にとっては、Visual Studio Codeが新しいBashウィンドウを外部ターミナルとして開くようになります。

統合環境が必要な場合は、Gitインストールのフォルダーsh.exe内のファイルをポイントする必要がありbinます。

したがって、構成は次のようになりますC:\\<my-git-install>\\bin\\sh.exe


5

現在のユーザーのみにGit Bashをインストールしたか、すべてのユーザーにGit Bashをインストールしたかによって異なります。

すべてのユーザーにインストールされている場合は"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"、ユーザー設定(Ctrl+ Comma)に入力します。

現在のユーザーのみにインストールされている場合は"terminal.integrated.shell.windows": "C:\\Users\\<name of your user>\\AppData\\Local\\Programs\\Git\\bin\\bash.exe"、ユーザー設定(Ctrl+ Comma)に入力します。

上記の方法が機能しない場合は、Christerのソリューションを試してみてください-

統合環境が必要な場合は、Gitインストールのフォルダーsh.exe内のファイルをポイントする必要がありbinます。

したがって、構成は次のようになりますC:\\<my-git-install>\\bin\\sh.exe

注: sh.exeとbash.exeはまったく同じように見えます。それらの間に違いはないはずです。



4

(Windows上のUbuntu上のBash)で多くのconda環境を既にセットアップしていたWSLため、Visual Studio Codeで同じBashインストールを使用したいと思いました。

これを行うには、Visual Studio Codeの設定で(の代わりGit-Bash)この特定のBash実行可能ファイルのパスを指定する必要がありました。

"terminal.integrated.shell.windows": "C:\\Windows\\System32\\bash.exe"


PS:Ubuntu on Bash実行可能ファイルがWindowsマシンのどこにインストールされているかを確認するには、Command prompt(検索:)を開いてcmd実行します。

where bash.exe


4

この回答は上位投票の回答と似ていますが、重要な違いがあります。この質問に関するこれまでの回答の多くはGit Bashの実行に焦点を当てていますが、私の回答はWSL Bashの実行に焦点を当てています。

  1. Windows 10マシンでLinux用のWindowsサブシステムを有効にします。

  2. Visual Studio Code Ctrl + `を開き、押し続けてターミナルを開きます。

  3. を使用してコマンドパレットを開きCtrl + Shift + Pます。

  4. タイプ- Select Default Shell

  5. オプションからWSL Bash(NOT Git Bash)を選択します。

ここに画像の説明を入力してください

  1. +ターミナルウィンドウのアイコンをクリックします。新しいターミナルは、WSL Bashターミナルになります。

4

最新のVSコード:

  • settings.jsonが表示されない場合は、[ファイル]-> [設定]-> [設定]に移動します(または、 Ctrl+,)。
  • 設定が表示され、ユーザー(デフォルトで選択されています)とワークスペースの2つのタブが表示されます。[ユーザー]-> [機能]-> [ターミナル]に移動します
  • ターミナルセクションが表示されますedit in settings.json。リンクを参照してください。クリックして追加"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
  • VSコードを保存して再起動します。

Bashターミナルはターミナルに反映されます。


1

私はたまたまフォーチュン500企業のコンサルティングを行っていますが、残念なことにWindows 7であり、管理者権限がありません。したがって、Node.js、Npm、Visual Studio Codeなどが私のマシンにプッシュされました-多くの変更はできませんなど...

Windows 7を実行しているこのコンピューターの場合:

以下は私の新しい設定です。機能しないものはコメントアウトされています。

{
    "update.channel": "none",
    "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
    //"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe"
}

0

vscode 1.42.1の時点で上記の回答を試しましたが、git bashターミナルを取得するために機能しました。つまり、この設定は、ターミナルからbashシェルを開く場合にのみ機能します。

"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"

ただし\、パスの区切り文字として使用される文字はbashによってエスケープ文字として認識されるため、物事を構築するために使用されるシェルでもあり、MS C ++チェーンを破壊するという望ましくない副作用があります。私のための完全な修正では、この追加の変数を追加して、Powershellに設定する必要がありました。

"terminal.integrated.automationShell.windows": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"

これで、bashターミナルをCtrl-Shift-B使用してF5問題なく作業できます。

ああ、そして他のポスターが述べたように、この情報のソースはVSCodeのドキュメントです。


0

切り離された、または関連のないシェルとcode [args]サポートについてはどうですか?

他の回答では、VScode統合WSL bash端末サポートの構成方法と使用方法について説明していますが、「分離されたシェル」の問題は解決されていません。 IDEに関連付けられたインスタンス。

このようなシェルは、次のようなエラーを発生させる可能性があります。

Command is only available in WSL or inside a Visual Studio Code terminal.

または...

Unable to connect to VS Code server. Error in request

これがスクリプトですこの問題を簡単に解決できるをます。

私はこれを毎日使用tmuxして、特定のVScodeサーバーインスタンスとのセッションでシェルを接続するか、ホスティングIDEから切り離された統合シェルを修正します。

#!/bin/bash
# codesrv-connect
#
#  Purpose:
#     Copies the vscode connection environment from one shell to another, so that you can use the
#     vscode integrated terminal's "code [args]" command to communicate with that instance of vscode
#     from an unrelated shell.
#
#  Usage:
#    1.  Open an integrated terminal in vscode, and run codesrv-connect
#    2.  In the target shell, cd to the same directory and run
#       ". .codesrv-connect", or follow the instruction printed by codesrv-connect.
#
#  Setup:
#    Put "codesrv-connect somewhere on your PATH (e.g. ~/bin)"
#
#  Cleanup:
#    - Delete abandoned .codesrv-connect files when their vscode sessions die.
#    - Do not add .codesrv-connect files to git repositories.
#
#  Notes:
#     The VSCODE_IPC_HOOK_CLI environment variable points to a socket which is rather volatile, while the long path for the 'code' alias is more stable: vscode doesn't change the latter even across a "code -r ." reload.  But the former is easily detached and so you need a fresh value if that happens.  This is what codesrv-connect does: it captures the value of these two and writes them to .codesrv-connect in the current dir.
#
#   Verinfo: v1.0.0 - les.matheson@gmail.com - 2020-03-31
#

function errExit {
    echo "ERROR: $@" >&2
    exit 1
}

[[ -S $VSCODE_IPC_HOOK_CLI ]] || errExit "VSCODE_IPC_HOOK_CLI not defined or not a pipe [$VSCODE_IPC_HOOK_CLI]"
if [[ $(which code) != *vscode-server* ]]; then
    errExit "The 'code' command doesn't refer to something under .vscode-server: $(type -a code)"
fi
cat <<EOF >.codesrv-connect
# Temp file created by $(which codesrv-connect): source this into your working shell like '. .codesrv-connect'
# ( git hint: add ".codesrv-connect" to .gitignore )
#
cd "$PWD"
if ! test -S "$VSCODE_IPC_HOOK_CLI"; then
    echo "ERROR: $VSCODE_IPC_HOOK_CLI not a socket. Dead session."
else
    export VSCODE_IPC_HOOK_CLI="$VSCODE_IPC_HOOK_CLI"
    alias code=$(which code)
    echo "Done: the 'code' command will talk to socket \"$VSCODE_IPC_HOOK_CLI\" now."
    echo "You can delete .codesrv-connect when the vscode server context dies, or reuse it in other shells until then."
fi
EOF

echo "# OK: run this to connect to vscode server in a destination shell:"
echo ". $PWD/.codesrv-connect"

0

「bash」、「powershell」、および「cmd」の CLI がすでにあり正しいパス設定がある場合は、次の方法でCLIから別のCLIに切り替えることができます。

Ctrl+ ':デフォルトのCLIでターミナルウィンドウを開きます。

bash + enter:デフォルト/現在のCLIからbash CLIに切り替えます。

powershell + enter:デフォルト/現在のCLIからpowershell CLI に切り替えます。

cmd + enter:デフォルト/現在のCLIからcmd CLIに切り替えます。

私が使用しているVSコードバージョンは1.45.0です

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.