Como uso o Bash no Windows no terminal integrado do Visual Studio Code?

Respostas:

347

Você não precisa mais digitar o caminho bash.exe manualmente. Esta resposta está obsoleta. Agora você pode mudar diretamente para o bash. Apenas certifique-se de ter o git instalado.


Instale o Git em https://git-scm.com/download/win .

Em seguida, abra o Visual Studio Code e abra a paleta de comandos usando Ctrl+ Shift+ P. Em seguida, digite "abrir configuração do usuário" e selecione "Abrir configurações do usuário" no menu suspenso.

Palato de comandos do Visual Studio Code

Em seguida, essa guia será aberta com as configurações padrão à esquerda e suas configurações à direita:

insira a descrição da imagem aqui

Agora copie esta linha de código para sua própria página de configurações (o painel do lado direito) e salve - "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"

Nota: "C:\\Program Files\Git\bin\bash.exe" é o caminho em que o bash.exearquivo está localizado na instalação do Git. Se você estiver usando o shell Bash do Windows Subsystem para Linux (WSL), o caminho seria"C:\Windows\System32\bash.exe"

Agora pressione Ctrl+ `para abrir o terminal do Visual Studio Code. E você terá Bash -

Digite a descrição da imagem aqui

Mahade Walid
fonte
1
Essas são as cores padrão do git bash.
Mahade Walid
5
Duas informações, que podem ser úteis: certifique-se de que você escape caracteres de barra invertida em seu json ao escrever o caminho. Além disso, inclua a versão de 64 bits do git bash no seu vscode, pois a versão de 32 bits pode não ter as cores por padrão. (Apenas remova a parte "(x86)" do caminho)
Lajos Meszaros
2
Adicionando ao Lajos, se você ainda não conseguir ver o terminal aberto, tente reiniciar o vscode.
Adityah
3
Eu estava enfrentando um problema com o "terminal.integrated.shell.windows": "C:\\Program Files\\Git\bin\bash.exe"terminal não estava abrindo. Tentei "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe". Funcionou perfeitamente para mim.
Dharmjeet Kumar
28
Para sua informação, certifique-se de vincular bash.exee não git-bash.exe. Este último abrirá um terminal fora do código VS como uma janela separada, enquanto bash.exeserá executado dentro do código VS.
Darius
258
  1. Instale o Git em https://git-scm.com/download/win

  2. Abra o Código do Visual Studio e pressione e segure Ctrl+ `para abrir o terminal.

    Digite a descrição da imagem aqui

  3. Abra a paleta de comandos usando Ctrl+ Shift+ P.

  4. Tipo - Selecione Shell Padrão

  5. Selecione Git Bash nas opções

  6. Clique no ícone + na janela do terminal

  7. O novo terminal agora será um terminal Git Bash. Aguarde alguns segundos para carregar o Git Bash

    Digite a descrição da imagem aqui

  8. Agora você pode alternar entre os diferentes terminais e também no menu suspenso.

    Digite a descrição da imagem aqui

Himanshu
fonte
5
Isso funcionou para mim. Tentei todos os outros guias adicionando manualmente o bash padrão, mas ele sempre abriu uma nova janela de terminal todas as vezes. Muito obrigado
Glen
3
isto é o que eu estava procurando ... isso deve a resposta aceita mais simples
Boopathi T
1
Perfeitamente explicado .. Obrigado por esta resposta.
SKalariya
se ctrl + `não funcionar (como em, nada acontece! mesmo depois de instalar o git e definir as configurações do usuário json), tente o seguinte: ctrl + shift + P> Focus Terminal.
Olisteadman 27/02/19
1
Solução mais simples e rápida
Themelis 30/01
80

Atualizado: as versões mais recentes do Visual Studio Code têm o comando Selecionar Shell Padrão no menu suspenso do terminal:

Selecione a opção Shell Padrão

Lembre-se de que apenas lista os shells que estão na sua variável de ambiente% PATH%. Para conchas que não estão no seu caminho, consulte outras respostas.

Dica extra: quando você iniciar o bash, ele será executado .bashrc, se você tiver comandos de inicialização, .bash_profiledeverá copiá-lo para .bashrc. É essencial para o uso de ambientes Conda no Git Bash.

Antes da versão 1.36 (junho de 2019)

A maneira mais fácil agora (pelo menos a partir do Visual Studio Code 1.22) é digitar Shift+ Ctrl+ Ppara abrir a Paleta de Comandos e digitar:

Select Default Shell

Agora você pode facilmente selecionar seu shell preferido entre os encontrados no seu caminho :

Lista de seleção de shell

Para conchas que não estão no seu% PATH%, consulte as outras respostas.

Veja a referência completa do shell do Visual Studio Code . Há muita coisa carnuda.

Neves
fonte
1
Esta foi a resposta que eu estava procurando. Eu queria usar WSL Bash, mas as outras respostas estava tentando usar o bash que vem com git
ahmadali Shafiee
1
Existe uma maneira de abrir um shell específico ... sem torná-lo o "padrão?" Eu acho que faz sentido ter uma "festa 'aberta' apenas desta vez".
Brent Arias
41

Pressione e segure Ctrl+ `para abrir o terminal. Dentro do terminal, digite bashpara usar o Git Bash no terminal. Nota: Verifique se o Git Bash está instalado em sua máquina.

Se você deseja usar o PowerShell novamente, basta digitar powershello terminal. Para usar a linha de comando do Windows, digite cmdo terminal.

A configuração escolhida será usada como padrão.

Isaac Sekamatte
fonte
4
isto acrescenta mais valor à resposta escolhida
pjdupreez
1
Para "voltar ao PowerShell", provavelmente você precisará exitdo seu shell bash executando dentro do shell padrão e digite, powershellpois o bash não sabe o que é o powershell.
9788 Lucas Angelo
13

Para mim, o seguinte é a única combinação que funciona!

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

Com o git-bash.exe como ...shell.windowssempre, toda vez que o Bash era aberto fora do Visual Studio !!

Dilip Muthukurussimana
fonte
1
isso realmente me ajudou. O bash funcionou de acordo com as respostas anteriores, mas perdi todos os aliases do bash e do git. Isso os comprou de volta. Obrigado.
David Martin
1
Foi o que funcionou comigo: "terminal.integrated.shell.windows": "C: \ Arquivos de programas \\ Git \\ bin \\ bash.exe", "terminal.integrated.shellArgs.windows": ["- -login "," -i "]
Belal Mohammed
Esta solução funcionou para mim também. Uma ressalva a acrescentar é que, no meu caso, para reduzir o atraso com o gitbash, siga este post stackoverflow.com/questions/32232978/… e defina uma nova variável de ambiente HOME no Windows. Para fazê-lo funcionar corretamente no VSCode, a resposta acima funcionou perfeitamente.
Rob B
13

As coisas foram um pouco alteradas devido às atualizações mais recentes do Visual Studio Code. Os seguintes passos funcionam para mim.

  1. Pressione Ctrl+ Shift+ Ppara abrir o palato de comando do Visual Studio Code.

  2. Digite >preferences: Open Settings (JSON)na área de texto.

  3. Adicione as seguintes linhas no final do arquivo JSON, que é exibido no painel direito.

    "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
  4. Feche e reabra sua instância do Visual Studio Code.

Aravinda Meewalaarachchi
fonte
10

Segui este tutorial de Paul DeCarlo para usar o Bash do Windows Subsystem for Linux (WSL) em vez do que vem com o Git Bash para Windows. Elas são as mesmas etapas acima na resposta, mas use as opções abaixo nas Configurações do usuário.

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

Isso funcionou para mim pela primeira vez ... o que é raro para essas coisas.

Jay Killeen
fonte
1
raro mesmo. vanguarda
Christopher Painter
7

Isso, pelo menos para mim, fará com que o Visual Studio Code abra uma nova janela do Bash como um terminal externo.

Se você deseja o ambiente integrado, precisa apontar para o sh.exearquivo dentro da binpasta da sua instalação do Git.

Portanto, a configuração deve dizer C:\\<my-git-install>\\bin\\sh.exe.

Christer
fonte
5

Depende se você instalou o Git Bash apenas no usuário atual ou em todos os usuários:

Se estiver instalado em todos os usuários, coloque "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"suas Configurações do Usuário ( Ctrl+ Comma).

Se estiver instalado apenas no usuário atual, coloque "terminal.integrated.shell.windows": "C:\\Users\\<name of your user>\\AppData\\Local\\Programs\\Git\\bin\\bash.exe"suas Configurações do usuário ( Ctrl+ Comma).

Se os métodos listados acima não funcionarem, tente a solução da Christer, que diz:

Se você deseja o ambiente integrado, precisa apontar para o sh.exearquivo dentro da binpasta da sua instalação do Git.

Portanto, a configuração deve dizer C:\\<my-git-install>\\bin\\sh.exe.

Nota: O sh.exe e o bash.exe parecem completamente iguais para mim. Não deve haver diferença entre eles.

Shaurya
fonte
4

Adicione o Git\bindiretório à Pathvariável de ambiente. O diretório é %ProgramFiles%\Git\binpor padrão. Dessa forma, você pode acessar o Git Bash simplesmente digitando bash todos os terminais, incluindo o terminal integrado do Visual Studio Code.

Como definir as variáveis ​​de caminho e ambiente no Windows

emirhanaydin
fonte
4

Eu já havia configurado muitos condaambientes no WSL(Bash no Ubuntu no Windows), então queria usar a mesma instalação do Bash no Visual Studio Code.

Para fazer isso, eu apenas precisei especificar o caminho desse executável Bash específico (em vez deGit-Bash ) nas configurações do Visual Studio Code:

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


PS : para garantir que o seu executável Ubuntu on Bash esteja instalado na sua máquina Windows, abra o Command prompt(search cmd:) e execute:

where bash.exe

dvitsios
fonte
4

Essa resposta é semelhante à resposta mais votada, mas com uma distinção importante: muitas das respostas anteriores sobre esta questão se concentram na execução do Git Bash, enquanto a minha resposta se concentra na execução do WSL Bash .

  1. Habilite o Windows Subsystem para Linux na sua máquina Windows 10.

  2. Abra o Código do Visual Studio e pressione e segure Ctrl + `para abrir o terminal.

  3. Abra a paleta de comandos usando Ctrl + Shift + P.

  4. Digite - Select Default Shell.

  5. Selecione WSL Bash(NÃO Git Bash) nas opções.

insira a descrição da imagem aqui

  1. Clique no +ícone na janela do terminal. O novo terminal agora será um terminal WSL Bash!
therobinkim
fonte
4

Código VS mais recente:

  • se você não conseguir ver o settings.json, vá para o menu Arquivo -> Preferências -> Configurações (ou pressione Ctrl+,)
  • As configurações são exibidas, veja duas guias Usuário (selecionado por padrão) e Área de trabalho. Vá para Usuário -> Recursos -> Terminal
  • A seção Terminal aparece, consulte o link edit in settings.json. Clique e adicione"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
  • Salve e reinicie o código VS.

O terminal Bash refletirá no terminal.

Rijo
fonte
1

Por acaso, estou consultando uma empresa da Fortune 500 e infelizmente é o Windows 7 e nenhum privilégio de administrador. Assim, Node.js, Npm, Visual Studio Code, etc. foram enviados para minha máquina - não posso mudar muito, etc ...

Para este computador executando o Windows 7:

Abaixo estão minhas novas configurações. O que não está funcionando é comentado.

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

Tentei as respostas acima a partir do vscode 1.42.1 e elas funcionaram na medida em que me permitiam um terminal git bash. Portanto, o resultado dessa configuração funciona apenas para abrir um shell bash do terminal:

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

No entanto, ele tem o efeito colateral indesejado de também ser o shell usado para criar coisas e interrompe a cadeia do MS C ++ porque o \caractere usado para o separador de caminho é entendido pelo bash como um caractere de escape. A correção completa para mim exigiu que eu adicionasse essa variável extra, configurando-a como powershell:

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

Agora, posso ter meu terminal bash e / Ctrl-Shift-Bou F5trabalhar sem problemas.

Ah, e como outros pôsteres mencionados, a fonte dessas informações é a documentação do VSCode .

Coffee_fan
fonte
0

E as conchas e o code [args]suporte separados ou não relacionados ?

Enquanto outras respostas falam sobre como configurar e usar o suporte integrado ao bashterminal WSL do VScode , elas não resolvem o problema de "shells desconectados": shells que não foram lançados no VScode ou que de alguma forma são "desconectados" do servidor VScode instância associada ao IDE.

Tais cascas podem dar erros como:

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

ou...

Unable to connect to VS Code server. Error in request

Aqui está um script que facilita a solução desse problema.

Eu uso isso diariamente para conectar shells em uma tmuxsessão com uma instância específica do servidor VScode ou para corrigir um shell integrado que foi desanexado do IDE de hospedagem.

#!/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 - [email protected] - 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"
Stabledog
fonte
0

Se você já possui CLIs "bash", "powershell" e "cmd" e possui configurações de caminho corretas, a alternância de uma CLI para outra pode ser feita das seguintes maneiras.

Ctrl+ ': Abre a janela do terminal com a CLI padrão.

bash + enter: alterna da CLI padrão / atual para a CLI bash .

powershell + enter: alterne da CLI padrão / atual para a CLI do powershell .

cmd + enter: alterna da CLI padrão / atual para a CLI do cmd .

A versão do código VS que estou usando é 1.45.0

SridharKritha
fonte