¿Cómo uso Bash en Windows desde el terminal integrado de Visual Studio Code?

Respuestas:

347

Ya no necesita escribir la ruta bash.exe manualmente. Esta respuesta está en desuso. Ahora puedes cambiar a bash directamente. Solo asegúrate de tener instalado git.


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

Luego abra Visual Studio Code y abra la paleta de comandos usando Ctrl+ Shift+ P. Luego escriba "abrir configuración de usuario" y luego seleccione "Abrir configuración de usuario" en el menú desplegable.

Paladar de comandos de Visual Studio Code

Luego, esta pestaña se abrirá con la configuración predeterminada a la izquierda y su configuración a la derecha:

ingrese la descripción de la imagen aquí

Ahora copie esta línea de código en su propia página de configuración (el panel en el lado derecho) y guarde: "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"

Nota: "C:\\Program Files\Git\bin\bash.exe" es la ruta donde bash.exese encuentra el archivo desde la instalación de Git. Si está utilizando el shell Bash del subsistema de Windows para Linux (WSL), la ruta sería"C:\Windows\System32\bash.exe"

Ahora presione Ctrl+ `para abrir el terminal desde Visual Studio Code. Y tendrás Bash -

Ingrese la descripción de la imagen aquí

Mahade Walid
fuente
1
Esos son los colores predeterminados de git bash.
Mahade Walid
55
Dos informaciones, que pueden ser útiles: asegúrese de escapar de los caracteres de barra invertida en su json, al escribir la ruta. También asegúrese de incluir la versión de 64 bits de git bash en su código vs, ya que la versión de 32 bits podría no tener los colores por defecto. (Solo quite la parte "(x86)" del camino)
Lajos Meszaros
2
Agregando a Lajos, si aún no puede ver la terminal abierta, intente reiniciar vscode.
adityah
3
Estaba enfrentando un problema con el "terminal.integrated.shell.windows": "C:\\Program Files\\Git\bin\bash.exe"terminal no se abría. Intentado "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe". Funcionó perfectamente para mí.
Dharmjeet Kumar
28
Para su información, asegúrese de vincular a bash.exe, y no git-bash.exe. Este último abrirá una terminal fuera del código VS como una ventana separada, mientras que bash.exese ejecutará dentro del código VS.
Darius el
258
  1. Instale Git desde https://git-scm.com/download/win

  2. Abra Visual Studio Code y mantenga presionado Ctrl+ `para abrir el terminal.

    Ingrese la descripción de la imagen aquí

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

  4. Tipo: seleccione Shell predeterminado

  5. Seleccione Git Bash de las opciones.

  6. Haga clic en el ícono + en la ventana del terminal

  7. La nueva terminal ahora será una terminal de Git Bash. Dale unos segundos para cargar Git Bash

    Ingrese la descripción de la imagen aquí

  8. Ahora puede alternar entre las diferentes terminales también desde el menú desplegable en la terminal.

    Ingrese la descripción de la imagen aquí

Himanshu
fuente
55
Esto funcionó para mí. Intenté todas las otras guías agregando manualmente la bash predeterminada, pero simplemente abrió una nueva ventana de terminal cada vez. Muchas gracias
Glen
3
esto es lo que estaba buscando ... esta debería ser la respuesta más simple aceptada
Boopathi T
1
Perfectamente explicado ... Gracias por esta respuesta.
SKalariya
si ctrl + `no funciona (como en, ¡no pasa nada! incluso después de haber instalado git y establecer la configuración de usuario json), intente esto: ctrl + shift + P> Focus Terminal.
olisteadman
1
Solución más simple y rápida
Themelis
80

Actualizado: las versiones más nuevas de Visual Studio Code tienen el comando Seleccionar shell predeterminado en el menú desplegable del terminal:

Seleccione la opción Shell predeterminada

Recuerde que solo enumera los shells que están en su variable de entorno% PATH%. Para los proyectiles que no están en su camino, vea otras respuestas.

Consejo adicional: cuando comiences bash, simplemente se ejecutará .bashrc, si tienes comandos de inicialización .bash_profiledebes copiarlo .bashrc. Es esencial para usar entornos Conda en Git Bash.

Antes de la versión 1.36 (junio de 2019)

La forma más fácil ahora (al menos desde Visual Studio Code 1.22 en adelante) es escribir Shift+ Ctrl+ Ppara abrir la Paleta de comandos y escribir:

Select Default Shell

Ahora puede seleccionar fácilmente su shell preferido entre los que se encuentran en su ruta :

Lista de selección de shell

Para los shells que no están en su% PATH%, vea las otras respuestas.

Consulte la referencia completa del shell de Visual Studio Code . Hay muchas cosas carnosas.

neves
fuente
1
Esta fue la respuesta que estaba buscando. Quería usar WSL Bash pero las otras respuestas estaban tratando de usar el bash que viene con git
ahmadali shafiee
1
¿Hay alguna manera de abrir un shell en particular ... sin convertirlo en el "predeterminado"? Creo que tiene sentido tener una "fiesta abierta" solo esta vez ".
Brent Arias
41

Mantenga presionado Ctrl+ `para abrir el terminal. Dentro de la terminal, escriba bashpara usar Git Bash en la terminal. Nota: Asegúrese de tener Git Bash instalado en su máquina.

Si desea volver a usar PowerShell, simplemente escriba powershellel terminal. Para usar la línea de comandos de Windows, escriba cmdla terminal.

La configuración que elija se usará como predeterminada.

Isaac Sekamatte
fuente
44
esto agrega más valor a la respuesta seleccionada
pjdupreez
1
Para "volver a Powershell", probablemente necesite hacerlo exitdesde su shell bash que se ejecuta dentro del shell predeterminado, luego escriba powershellya que bash no sabe qué es Powershell.
Lucas Morgan
13

¡Para mí, la siguiente es la única combinación que funciona!

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

¡Con git-bash.exe como ...shell.windows, cada vez que Bash se abría fuera de Visual Studio!

Dilip Muthukurussimana
fuente
1
Esto realmente me ayudó. Obtuve bash trabajando según las respuestas anteriores, pero perdí todos mis alias bash y git. Esto los volvió a comprar. Gracias.
David Martin
1
Esto es lo que funcionó conmigo: "terminal.integrated.shell.windows": "C: \\ Program Files \\ Git \\ bin \\ bash.exe", "terminal.integrated.shellArgs.windows": ["- -login "," -i "]
Belal Mohammed
Esta solución también funcionó para mí. Una advertencia para agregar es que, en mi caso, para reducir el retraso con gitbash, seguí esta publicación stackoverflow.com/questions/32232978/… y establecí una nueva variable de entorno HOME en Windows. Para que funcione correctamente en VSCode, la respuesta anterior funcionó perfectamente.
Rob B
13

Las cosas han cambiado un poco debido a las últimas actualizaciones en Visual Studio Code. Los siguientes pasos me funcionan.

  1. Presione Ctrl+ Shift+ Ppara abrir el paladar de comandos de Visual Studio Code.

  2. Escriba >preferences: Open Settings (JSON)en el área de texto.

  3. Agregue las siguientes líneas al final del archivo JSON que se muestra en el panel derecho.

    "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
  4. Cierre y vuelva a abrir su instancia de Visual Studio Code.

Aravinda Meewalaarachchi
fuente
10

Seguí este tutorial de Paul DeCarlo para usar el Bash del subsistema de Windows para Linux (WSL) en lugar de lo que viene con Git Bash para Windows. Son los mismos pasos que los anteriores en la respuesta, pero en su lugar use los siguientes en su Configuración de usuario.

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

Esto funcionó para mí la primera vez ... lo cual es raro para estas cosas.

Jay Killeen
fuente
1
raro de hecho. vanguardia
Christopher Painter
7

Esto, al menos para mí, hará que Visual Studio Code abra una nueva ventana Bash como terminal externo.

Si desea el entorno integrado, debe apuntar al sh.exearchivo dentro de la bincarpeta de su instalación de Git.

Entonces la configuración debería decir C:\\<my-git-install>\\bin\\sh.exe.

Christer
fuente
5

Depende de si ha instalado Git Bash solo en el usuario actual o en todos los usuarios:

Si está instalado en todos los usuarios, ingrese "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"su Configuración de usuario ( Ctrl+ Comma).

Si está instalado solo en el usuario actual, ingrese "terminal.integrated.shell.windows": "C:\\Users\\<name of your user>\\AppData\\Local\\Programs\\Git\\bin\\bash.exe"su Configuración de usuario ( Ctrl+ Comma).

Si los métodos enumerados anteriormente no funcionan, entonces debe probar la solución de Christer que dice:

Si desea el entorno integrado, debe apuntar al sh.exearchivo dentro de la bincarpeta de su instalación de Git.

Entonces la configuración debería decir C:\\<my-git-install>\\bin\\sh.exe.

Nota: El sh.exe y bash.exe me parecen completamente iguales. No debería haber diferencia entre ellos.

Shaurya
fuente
4

Ya había configurado muchos condaentornos enWSL (Bash en Ubuntu en Windows), por lo que quería usar la misma instalación de Bash en Visual Studio Code.

Para hacer eso, solo tenía que especificar la ruta de este ejecutable Bash en particular (en lugar deGit-Bash ) en la configuración de Visual Studio Code:

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


PD : para asegurarte de dónde está instalado tu ejecutable Ubuntu en Bash en tu máquina Windows, abre Command prompt(search:) cmdy ejecuta:

where bash.exe

dvitsios
fuente
4

Esta respuesta es similar a la respuesta más votada, pero con una distinción importante: muchas de las respuestas anteriores a esta pregunta se centran en ejecutar Git Bash, mientras que mi respuesta se centra en ejecutar WSL Bash .

  1. Habilite el Subsistema de Windows para Linux en su máquina con Windows 10.

  2. Abra Visual Studio Code y mantenga presionado Ctrl + `para abrir el terminal.

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

  4. Escriba - Select Default Shell.

  5. Seleccione WSL Bash(NO Git Bash) de las opciones.

ingrese la descripción de la imagen aquí

  1. Haga clic en el +icono en la ventana del terminal. ¡La nueva terminal ahora será una terminal WSL Bash!
therobinkim
fuente
4

Último código VS:

  • si no puede ver settings.json, vaya al menú Archivo -> Preferencias -> Configuración (o presione Ctrl+,)
  • Aparece la configuración, vea dos pestañas Usuario (seleccionado de forma predeterminada) y Espacio de trabajo. Vaya a Usuario -> Características -> Terminal
  • Aparece la sección del terminal, ver enlace edit in settings.json. Haz clic y agrega"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
  • Guardar y reiniciar el código VS.

Bash terminal se reflejará en la terminal.

Rijo
fuente
1

Estoy consultando para una compañía Fortune 500 y lamentablemente es Windows 7 y no tiene privilegios de administrador. Por lo tanto, Node.js, Npm, Visual Studio Code, etc. fueron empujados a mi máquina; no puedo cambiar mucho, etc.

Para esta computadora con Windows 7:

A continuación están mis nuevas configuraciones. El que no funciona está 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
fuente
0

Intenté las respuestas anteriores a partir de vscode 1.42.1 y funcionaron en la medida en que me dieron un terminal git bash. Entonces, en resumen, esta configuración funciona solo para abrir un bash shell desde la terminal:

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

Sin embargo, tiene el efecto secundario no deseado de ser también el shell utilizado para construir cosas y eso rompe la cadena MS C ++ porque \bash entiende el carácter utilizado para el separador de ruta como un carácter de escape. La solución completa para mí luego me requirió agregar esta variable adicional, configurándola en powershell:

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

Ahora, puedo tener mi terminal bash y / Ctrl-Shift-Bo F5trabajar sin problemas.

Ah, y como se mencionó en otros carteles, la fuente de esta información es la documentación de VSCode .

Coffee_fan
fuente
0

¿Qué pasa con los depósitos separados o no relacionados y code [args] soporte ?

Mientras que otras respuestas hablan sobre cómo configurar y usar el bashsoporte de terminal WSL integrado de VScode , no resuelven el problema de los "shells separados": shells que no se lanzaron desde VScode, o que de alguna manera se "desconectan" del servidor VScode instancia asociada con el IDE.

Tales proyectiles pueden dar errores como:

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

o...

Unable to connect to VS Code server. Error in request

Aquí hay un guión que facilita la resolución de este problema.

Lo uso a diario para conectar shells en una tmuxsesión con una instancia de servidor VScode específica, o para arreglar un shell integrado que se separó de su IDE de alojamiento.

#!/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
fuente
0

Si ya tiene CLI "bash", "powershell" y "cmd" y tiene la configuración de ruta correcta, puede cambiar de una CLI a otra de las siguientes maneras.

Ctrl+ ': Abre la ventana de terminal con la CLI predeterminada.

bash + enter: cambie de su CLI predeterminada / actual a bash CLI.

powershell + enter: cambie de su CLI predeterminada / actual a la CLI de powershell .

cmd + enter: cambie de su CLI predeterminada / actual a cmd CLI.

La versión del código VS que estoy usando es 1.45.0

SridharKritha
fuente