Bagaimana cara menggunakan Bash pada Windows dari terminal terintegrasi Visual Studio Code?

Jawaban:

347

Anda tidak perlu lagi mengetikkan path bash.exe secara manual. Jawaban ini sudah usang. Sekarang Anda dapat beralih ke bash secara langsung. Pastikan Anda telah menginstal git.


Instal Git dari https://git-scm.com/download/win .

Kemudian buka Visual Studio Code dan buka palet perintah menggunakan Ctrl+ Shift+ P. Kemudian ketik "buka pengaturan pengguna", lalu pilih "Buka Pengaturan Pengguna" dari menu tarik turun.

Langit-langit perintah Visual Studio Code

Maka tab ini akan terbuka dengan pengaturan default di kiri dan pengaturan Anda di kanan:

masukkan deskripsi gambar di sini

Sekarang salin baris kode ini ke halaman pengaturan Anda sendiri (panel di sisi kanan) dan simpan - "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"

Catatan: "C:\\Program Files\Git\bin\bash.exe" adalah path tempat bash.exefile tersebut berada dari instalasi Git. Jika Anda menggunakan shell Bash Windows Subsystem untuk Linux (WSL), jalurnya adalah"C:\Windows\System32\bash.exe"

Sekarang tekan Ctrl+ `untuk membuka terminal dari Visual Studio Code. Dan Anda akan memiliki Bash -

Masukkan deskripsi gambar di sini

Mahade Walid
sumber
1
Itu adalah warna default dari git bash.
Mahade Walid
5
Dua info, yang mungkin bisa membantu: pastikan, Anda melarikan diri karakter backslash di json Anda, ketika menulis jalan. Pastikan juga, bahwa Anda memasukkan versi 64 bit git bash ke vscode Anda, karena versi 32 bit mungkin tidak memiliki warna secara default. (Cukup hapus bagian "(x86)" dari jalan)
Lajos Meszaros
2
Menambahkan ke Lajos, jika Anda masih tidak dapat melihat terminal terbuka, coba restart vscode.
adityah
3
Saya menghadapi masalah dengan "terminal.integrated.shell.windows": "C:\\Program Files\\Git\bin\bash.exe", terminal tidak terbuka. Mencoba "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe". Bekerja dengan sempurna untuk saya.
Dharmjeet Kumar
28
FYI, pastikan Anda terhubung ke bash.exe, dan tidak git-bash.exe. Yang terakhir akan membuka terminal di luar kode VS sebagai jendela terpisah, sementara bash.exeakan berjalan di dalam kode VS.
Darius
258
  1. Instal Git dari https://git-scm.com/download/win

  2. Buka Visual Studio Code dan tekan dan tahan Ctrl+ `untuk membuka terminal.

    Masukkan deskripsi gambar di sini

  3. Buka palet perintah menggunakan Ctrl+ Shift+ P.

  4. Jenis - Pilih Default Shell

  5. Pilih Git Bash dari opsi

  6. Klik ikon + di jendela terminal

  7. Terminal baru sekarang akan menjadi terminal Git Bash. Berikan waktu beberapa detik untuk memuat Git Bash

    Masukkan deskripsi gambar di sini

  8. Anda sekarang dapat beralih antara terminal yang berbeda juga dari dropdown di terminal.

    Masukkan deskripsi gambar di sini

Himanshu
sumber
5
Ini berhasil untuk saya. Saya mencoba semua panduan lain dengan menambahkan secara manual di bash default tetapi hanya membuka jendela terminal baru setiap kali. Terima kasih banyak
Glen
3
inilah yang saya cari ... ini seharusnya jawaban yang diterima sederhana
Boopathi T
1
Dijelaskan dengan sempurna .. Terima kasih atas balasan ini.
SKalariya
jika ctrl + `tidak berfungsi (seperti, tidak ada yang terjadi! bahkan setelah menginstal git dan mengatur pengaturan pengguna json), maka coba ini: ctrl + shift + P> Terminal Fokus.
olisteadman
1
Solusi yang lebih sederhana dan lebih cepat
Themelis
80

Diperbarui: Versi baru dari Visual Studio Code memiliki perintah Select Default Shell di menu pull down terminal:

Pilih opsi Default Shell

Ingat bahwa itu hanya mencantumkan shell yang ada di variabel lingkungan% PATH% Anda. Untuk kerang yang tidak ada di jalur Anda, lihat jawaban lain.

Kiat tambahan: saat Anda memulai bash, ia hanya akan mengeksekusi .bashrc, jika Anda memiliki perintah inisialisasi, .bash_profileAnda harus menyalinnya .bashrc. Sangat penting untuk menggunakan lingkungan Conda di Git Bash.

Sebelum versi 1.36 (Juni 2019)

Cara termudah sekarang (setidaknya dari Visual Studio Code 1.22 aktif) adalah dengan mengetik Shift+ Ctrl+ Puntuk membuka Command Palette dan ketik:

Select Default Shell

Sekarang Anda dapat dengan mudah memilih shell pilihan Anda di antara yang ditemukan di jalur Anda :

Daftar pemilihan shell

Untuk shell yang tidak ada di% PATH% Anda, lihat jawaban lain.

Lihat referensi shell Visual Studio Code lengkap . Ada banyak hal yang gemuk.

neves
sumber
1
Ini adalah jawaban yang saya cari. Saya ingin menggunakan WSL Bash tetapi jawaban lain mencoba menggunakan bash yang datang dengan git
ahmadali shafiee
1
Apakah ada cara untuk membuka shell tertentu ... tanpa menjadikannya "default?" Saya pikir masuk akal untuk memiliki "bash 'terbuka' hanya kali ini saja."
Brent Arias
41

Tekan dan tahan Ctrl+ `untuk membuka terminal. Di dalam terminal, ketik bashuntuk menggunakan Git Bash di terminal. Catatan: Pastikan Anda menginstal Git Bash di mesin Anda.

Jika Anda ingin menggunakan PowerShell lagi, cukup ketik powershellterminal. Untuk menggunakan baris perintah Windows, ketikkan cmdterminal.

Pengaturan yang Anda pilih akan digunakan sebagai standar Anda.

Isaac Sekamatte
sumber
4
ini menambah nilai pada jawaban yang dipilih
pjdupreez
1
Untuk "beralih kembali ke powershell" mungkin Anda perlu exitdari bash shell Anda yang berjalan di dalam shell default, lalu ketik powershellkarena bash tidak tahu apa itu PowerShell.
Lucas Morgan
13

Bagi saya berikut ini adalah satu-satunya kombinasi yang berfungsi!

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

Dengan git-bash.exe sebagai ...shell.windows, setiap kali Bash membuka di luar Visual Studio !!

Dilip Muthukurussimana
sumber
1
ini sangat membantu saya. Saya mendapat bash yang bekerja sesuai dengan jawaban sebelumnya di atas, tetapi saya kehilangan semua alias bash dan git saya. Ini membelinya kembali. Terima kasih.
David Martin
1
Inilah yang bekerja dengan saya: "terminal.integrated.shell.windows": "C: \\ Program Files \\ Git \\ bin \\ bash.exe", "terminal.integrated.shellArgs.windows": ["- -login "," -i "]
Belal Mohammed
Solusi ini juga bekerja untuk saya. Peringatan untuk ditambahkan adalah bahwa dalam kasus saya, untuk mengurangi lag dengan gitbash, ikuti posting ini stackoverflow.com/questions/32232978/… dan tetapkan variabel lingkungan HOME baru di windows. Agar berfungsi dengan benar di VSCode, jawaban di atas berfungsi dengan baik.
Rob B
13

Banyak hal telah sedikit berubah karena pembaruan terbaru pada Visual Studio Code. Langkah-langkah berikut ini berhasil untuk saya.

  1. Tekan Ctrl+ Shift+ Puntuk membuka langit-langit perintah Visual Studio Code.

  2. Ketikkan >preferences: Open Settings (JSON)area teks.

  3. Tambahkan baris berikut di akhir file JSON yang ditampilkan di panel kanan Anda.

    "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
  4. Tutup dan buka kembali contoh Visual Studio Code Anda.

Aravinda Meewalaarachchi
sumber
10

Saya mengikuti tutorial ini dari Paul DeCarlo untuk menggunakan Bash dari Subsistem Windows untuk Linux (WSL) alih-alih apa yang datang dengan Git Bash untuk Windows. Itu adalah langkah yang sama seperti di atas dalam jawaban, tetapi gunakan yang di bawah ini di Pengaturan Pengguna Anda sebagai gantinya.

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

Ini bekerja untuk saya pertama kali ... yang jarang untuk hal ini.

Jay Killeen
sumber
1
memang jarang. terdepan
Christopher Painter
7

Ini, setidaknya bagi saya, akan membuat Visual Studio Code membuka jendela Bash baru sebagai terminal eksternal.

Jika Anda ingin lingkungan terintegrasi, Anda perlu menunjuk ke sh.exefile di dalambin folder instalasi Git Anda.

Jadi konfigurasi seharusnya mengatakan C:\\<my-git-install>\\bin\\sh.exe.

Christer
sumber
5

Itu tergantung pada apakah Anda telah menginstal Git Bash di hanya pengguna saat ini atau semua pengguna:

Jika diinstal pada semua pengguna, masukkan "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"Pengaturan Pengguna Anda ( Ctrl+ Comma).

Jika hanya diinstal pada pengguna saat ini maka masukkan "terminal.integrated.shell.windows": "C:\\Users\\<name of your user>\\AppData\\Local\\Programs\\Git\\bin\\bash.exe"Pengaturan Pengguna Anda ( Ctrl+ Comma).

Jika metode yang tercantum di atas tidak berfungsi, Anda harus mencoba solusi Christer yang mengatakan -

Jika Anda ingin lingkungan terintegrasi, Anda perlu menunjuk ke sh.exefile di dalambin folder instalasi Git Anda.

Jadi konfigurasi seharusnya mengatakan C:\\<my-git-install>\\bin\\sh.exe.

Catatan: Sh.exe dan bash.exe tampak sama dengan saya. Seharusnya tidak ada perbedaan di antara mereka.

Shaurya
sumber
4

Tambahkan Git\bindirektori ke Pathvariabel lingkungan. Direktori secara %ProgramFiles%\Git\bindefault. Dengan cara ini Anda dapat mengakses Git Bash hanya dengan mengetik bash di setiap terminal termasuk terminal terintegrasi dari Visual Studio Code.

Cara mengatur variabel path dan lingkungan di Windows

emirhanaydin
sumber
4

Saya sudah menyiapkan banyak condalingkungan WSL(Bash di Ubuntu pada Windows), jadi saya ingin menggunakan instalasi Bash yang sama pada Visual Studio Code.

Untuk melakukan itu, saya hanya harus menentukan path dari executable Bash khusus ini ( bukan padaGit-Bash ) pada pengaturan Visual Studio Code:

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


PS : untuk memastikan di mana executable Ubuntu di Bash Anda diinstal pada mesin Windows Anda, buka Command prompt(search cmd:) dan jalankan:

where bash.exe

dvitsios
sumber
4

Jawaban ini mirip dengan jawaban pilihan teratas, tetapi dengan perbedaan penting: banyak jawaban sebelumnya pada pertanyaan ini fokus pada menjalankan Git Bash sementara jawaban saya berfokus pada menjalankan WSL Bash .

  1. Aktifkan Windows Subsystem untuk Linux pada mesin Windows 10 Anda.

  2. Buka Visual Studio Code dan tekan dan tahan Ctrl + `untuk membuka terminal.

  3. Buka palet perintah dengan menggunakan Ctrl + Shift + P.

  4. Tipe - Select Default Shell .

  5. Pilih WSL Bash(BUKAN Git Bash) dari opsi.

masukkan deskripsi gambar di sini

  1. Klik pada +ikon di jendela terminal. Terminal baru sekarang akan menjadi terminal WSL Bash!
therobinkim
sumber
4

Kode VS terbaru:

  • jika Anda tidak dapat melihat settings.json, buka menu File -> Preferences -> Settings (atau tekan on Ctrl+, )
  • Pengaturan muncul, lihat dua tab Pengguna (dipilih secara default) dan Workspace. Pergi ke Pengguna -> Fitur -> Terminal
  • Bagian terminal muncul, lihat tautan edit in settings.json. Klik dan tambahkan"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
  • Simpan dan Mulai ulang kode VS.

Terminal Bash akan mencerminkan terminal.

Rijo
sumber
1

Saya kebetulan berkonsultasi untuk perusahaan Fortune 500 dan sayangnya Windows 7 dan tidak ada hak administrator. Jadi Node.js, Npm, Visual Studio Code, dll. Didorong ke mesin saya - saya tidak bisa banyak berubah, dll ...

Untuk komputer ini yang menjalankan Windows 7:

Di bawah ini adalah pengaturan baru saya. Yang tidak berfungsi dikomentari.

{
    "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
sumber
0

Saya mencoba jawaban di atas pada vscode 1.42.1 dan mereka bekerja sejauh untuk mendapatkan terminal git bash. Jadi, intinya pengaturan ini hanya berfungsi untuk membuka bash shell dari terminal:

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

Namun itu memiliki efek samping yang tidak diinginkan juga menjadi shell yang digunakan untuk membangun sesuatu dan yang merusak rantai MS C ++ karena \karakter yang digunakan untuk pemisah jalur dipahami oleh bash sebagai karakter pelarian. Perbaikan lengkap untuk saya kemudian mengharuskan saya untuk menambahkan variabel tambahan ini, mengaturnya ke PowerShell:

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

Sekarang, saya dapat memiliki terminal bash saya dan Ctrl-Shift-Batau F5bekerja tanpa masalah.

Oh, dan seperti poster-poster lain yang disebutkan, sumber untuk informasi ini adalah dokumentasi VSCode .

Coffee_fan
sumber
0

Bagaimana dengan cangkang yang terlepas atau tidak terkait dan code [args] dukungan yang ?

Sementara jawaban lain berbicara tentang cara mengkonfigurasi dan menggunakan bashdukungan terminal WSL yang terintegrasi VScode , mereka tidak menyelesaikan masalah "shell terpisah": shell yang tidak diluncurkan dari dalam VScode, atau yang entah bagaimana mendapatkan "terputus" dari server VScode contoh yang terkait dengan IDE.

Kerang tersebut dapat memberikan kesalahan seperti:

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

atau...

Unable to connect to VS Code server. Error in request

Berikut ini skrip yang membuatnya mudah untuk menyelesaikan masalah ini.

Saya menggunakan ini setiap hari untuk menghubungkan shell dalam tmuxsesi dengan instance server VScode tertentu, atau untuk memperbaiki shell terintegrasi yang terlepas dari IDE hostingnya.

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

Jika Anda sudah memiliki "bash", "powershell" dan "cmd" CLI dan memiliki pengaturan jalur yang benar, maka beralih dari satu CLI ke yang lain dapat dilakukan dengan cara-cara berikut.

Ctrl+ ': Membuka jendela terminal dengan CLI default.

bash + enter: Beralih dari CLI default / saat ini ke bash CLI.

Powershell + enter: Beralih dari CLI default / saat ini ke Powershell CLI.

cmd + enter: Beralih dari CLI default / saat ini ke cmd CLI.

Versi VS Code yang saya gunakan adalah 1.45.0

SridharKritha
sumber