Visual Studio Code ile tümleşik terminalden Windows'ta Bash'i nasıl kullanabilirim?


Yanıtlar:


347

Artık bash.exe yolunu el ile yazmanıza gerek yoktur. Bu cevap onaylanmadı. Şimdi doğrudan bash'a geçebilirsiniz. Git'in kurulu olduğundan emin olun.


Git'i https://git-scm.com/download/win adresinden yükleyin .

Sonra Visual Studio Code'u açın ve Ctrl+ Shift+ kullanarak komut paletini açın P. Ardından "kullanıcı ayarını aç" yazın ve açılır menüden "Kullanıcı Ayarlarını Aç" ı seçin.

Visual Studio Code komut damakları

Ardından bu sekme solda varsayılan ayarlarla ve sağda ayarlarınızla açılır:

resim açıklamasını buraya girin

Şimdi bu kod satırını kendi ayarlar sayfanıza (sağ taraftaki bölme) kopyalayın ve kaydedin - "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"

Not: dosyanın Git kurulumundan bulunduğu "C:\\Program Files\Git\bin\bash.exe"yoldur bash.exe. Linux için Windows Alt Sistemi (WSL) Bash kabuğunu kullanıyorsanız, yol"C:\Windows\System32\bash.exe"

Şimdi Ctrl+ tuşuna basarak `terminali Visual Studio Code'dan açın. Ve Bash'in olacak -

Resim açıklamasını buraya girin


1
Bunlar git bash varsayılan renkleridir.
Mahade Walid

5
Yardımcı olabilecek iki bilgi: yolu yazarken json'unuzdaki ters eğik çizgi karakterlerinden kaçtığınızdan emin olun. Ayrıca 32 bit sürümü varsayılan olarak renklere sahip olmayabileceğinden, git bash'ın 64 bit sürümünü vscode'unuza eklediğinizden emin olun. (Sadece "(x86)" bölümünü yoldan kaldırın)
Lajos Meszaros

2
Lajos'a ekleyerek, hala terminalin açıldığını göremiyorsanız, vscode'u yeniden başlatmayı deneyin.
adityah

3
Sorunla karşı karşıyaydım "terminal.integrated.shell.windows": "C:\\Program Files\\Git\bin\bash.exe", terminal açılmıyordu. Denedim "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe". Benim için mükemmel çalıştı.
Dharmjeet Kumar

28
Bilginize, bağlandığınızdan emin olun bash.exe, değil git-bash.exe. İkincisi VS kodu dışında bir terminali ayrı bir pencere olarak açarken VS kodu bash.exeiçinde çalışacaktır.
Darius

258
  1. Git'i https://git-scm.com/download/win adresinden yükleyin.

  2. Visual Studio Code'u açın ve terminali açmak için Ctrl+ tuşunu basılı tutun `.

    Resim açıklamasını buraya girin

  3. Ctrl+ Shift+ Tuşlarını kullanarak komut paletini açın P.

  4. Tür - Varsayılan Kabuğu Seç

  5. Seçenekler arasından Git Bash'i seçin

  6. Terminal penceresindeki + simgesine tıklayın

  7. Yeni terminal şimdi bir Git Bash terminali olacak. Git Bash'i yüklemek için birkaç saniye verin

    Resim açıklamasını buraya girin

  8. Artık farklı terminaller arasında ve terminaldeki açılır menüden geçiş yapabilirsiniz.

    Resim açıklamasını buraya girin


5
Bu benim için çalıştı. Manuel olarak varsayılan bash ekleyerek diğer tüm kılavuzları denedim ama sadece her zaman yeni bir terminal penceresi açtı. Çok teşekkürler
Glen

3
bu ben
aradım budur

1
Mükemmel açıkladı .. Bu cevap için teşekkür ederim.
SKalariya

ctrl + `işe yaramazsa (olduğu gibi, hiçbir şey olmaz! git ve kullanıcı ayarlarını json kurduktan sonra bile), o zaman şunu deneyin: ctrl + shift + P> Odak Terminali.
olisteadman

1
Daha basit ve daha hızlı çözüm
Themelis

80

Güncellendi: Visual Studio Code'un daha yeni sürümlerinde , terminal açılır menüsünde Varsayılan Kabuğu Seç komutu bulunur:

Varsayılan Kabuk seçeneğini belirleyin

Yalnızca% PATH% ortam değişkeninizdeki kabukları listelediğini unutmayın. Yolunuzda olmayan mermiler için diğer cevaplara bakın.

Ek ipucu: bash'ı başlattığınızda çalıştırılacaktır .bashrc, eğer başlatma komutlarınız .bash_profilevarsa onu kopyalamanız gerekir .bashrc. Conda ortamlarını kullanmak çok önemlidirGit .

1.36 sürümünden önce (Haziran 2019)

Şimdi en kolay yol (en azından Visual Studio Code 1.22'den itibaren) Komut Paletini açmak için Shift+ Ctrl+ yazmak Pve şunu yazmaktır :

Select Default Shell

Şimdi kolaylıkla olanlar arasında tercih kabuk seçebilir yolunuzun bulundu :

Kabuk seçim listesi

% PATH% değerinde bulunmayan mermiler için diğer yanıtlara bakın.

Bkz tam Visual Studio Kod kabuk referansı . Etli bir sürü şey var.


1
Aradığım cevap buydu. Ben WSL Bash kullanmak istedi ancak diğer cevaplar git ile gelir bash kullanarak çalışıyordu
ahmadali Shafiee

1
Belirli bir mermi "varsayılan" yapmadan açmanın bir yolu var mı? Bence sadece bir kez "açık 'bir bash" olması mantıklı.
Brent Arias

41

Terminali açmak için Ctrl+ tuşunu basılı tutun `. Terminalde, terminalde bashGit Bash'i kullanmak için yazın . Not: Makinenize Git Bash'in kurulu olduğundan emin olun.

PowerShell'i tekrar kullanmak isterseniz powershell, terminali yazmanız yeterlidir. Windows komut satırını kullanmak için şunu yazıncmd için terminali yazın.

Seçtiğiniz ayar varsayılan olarak kullanılacaktır.


4
bu seçilen cevaba daha fazla değer katar
pjdupreez

1
"Powershell'e geri dönmek" için büyük olasılıkla exitvarsayılan kabuğun içinde çalışan bash kabuğunuzdan sonra powershellbash powershell'in ne olduğunu bilmediğinden yazın.
Lucas Morgan

13

Benim için aşağıdakiler işe yarayan tek kombinasyon!

"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 ile ...shell.windowsBash her zaman Visual Studio dışında açıyordu!


1
bu bana gerçekten yardımcı oldu. Yukarıdaki önceki cevaplara göre bash çalıştım, ancak tüm bash ve git takma adımı kaybettim. Bu onları geri aldı. Teşekkürler.
David Martin

1
Benimle çalışan buydu: "terminal.integrated.shell.windows": "C: \\ Program Dosyaları \\ Git \\ bin \\ bash.exe", "terminal.integrated.shellArgs.windows": ["- -login "," -i "]
Belal Mohammed

Bu çözüm benim için de işe yaradı. Eklemek için bir uyarı, benim durumumda, gitbash ile gecikmeyi azaltmak için bu yazıyı takip edin stackoverflow.com/questions/32232978/… ve pencerelerde yeni bir HOME ortam değişkeni ayarlayın. VSCode'da düzgün çalışmasını sağlamak için yukarıdaki cevap mükemmel çalıştı.
Rob B

13

Visual Studio Code'daki en son güncellemeler nedeniyle işler biraz değişti. Aşağıdaki adımlar benim için işe yarıyor.

  1. Visual Studio Code komut damağını açmak için Ctrl+ Shift+ tuşlarına basın P.

  2. Tip >preferences: Open Settings (JSON)metin alanına.

  3. Sağ bölmenizde görüntülenen JSON dosyasının sonuna aşağıdaki satırları ekleyin.

    "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
  4. Visual Studio Code örneğinizi kapatın ve yeniden açın.


10

Paul DeCarlo'dan bu öğreticiyi , Windows için Git Bash ile gelenler yerine Linux için Windows Alt Sisteminden (WSL) Bash'i kullanmak için izledim . Bunlar, yanıtta yukarıdaki adımlarla aynıdır, ancak Kullanıcı Ayarlarınızda aşağıdakileri kullanın.

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

Bu benim için ilk kez işe yaradı ...


1
gerçekten nadir. son teknoloji ürünü
Christopher Painter

7

Bu, en azından benim için, Visual Studio Code'un harici bir terminal olarak yeni bir Bash penceresi açmasını sağlayacaktır.

Entegre ortam istiyorsanız , Git kurulumunuzun klasörü sh.exeiçindeki dosyayı işaret etmeniz gerekir bin.

Bu yüzden yapılandırma söylemelidir C:\\<my-git-install>\\bin\\sh.exe.


5

Git Bash'i yalnızca geçerli kullanıcıya mı yoksa tüm kullanıcılara mı yüklediğinize bağlıdır:

Tüm kullanıcılara yüklenmişse, "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"Kullanıcı Ayarlarınızı ( Ctrl+ Comma) girin.

Yalnızca geçerli kullanıcıya yüklüyse, "terminal.integrated.shell.windows": "C:\\Users\\<name of your user>\\AppData\\Local\\Programs\\Git\\bin\\bash.exe"Kullanıcı Ayarlarınızı ( Ctrl+ Comma) girin.

Yukarıda listelenen yöntemler işe yaramazsa, Christer'in çözümünü denemelisiniz -

Entegre ortam istiyorsanız, sh.exeiçindeki dosyayı işaret etmeniz gerekir .bin, Git kurulumunuzun klasörü .

Bu yüzden yapılandırma söylemelidir C:\\<my-git-install>\\bin\\sh.exe.

Not: sh.exe ve bash.exe tamamen bana benziyor. Aralarında hiçbir fark olmamalıdır.



4

Zaten çok sayıda condaortam kurdumWSL (Windows'ta Ubuntu'da Bash), bu yüzden Visual Studio Code'da aynı Bash kurulumunu kullanmak istedim.

Bunu yapmak için, sadece (bu özel Bash yürütülebilir yolunu belirtmek zorunda yerine aitGit-Bash Visual Studio Kodu ayarlarına):

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


Not : Ubuntu on Bash yürütülebilir dosyanızın Windows makinenize nerede yüklendiğinden emin olmak için, Command prompt(search :) öğesini açın cmdve çalıştırın:

where bash.exe


4

Bu cevap en çok oy alan cevaba benzer, ancak önemli bir ayrımla: bu soruya ilişkin önceki cevapların çoğu Git Bash'ı çalıştırırken, cevabım WSL Bash'ı çalıştırmaya odaklanıyor .

  1. Windows 10 makinenizde Linux için Windows Alt Sistemini etkinleştirin.

  2. Visual Studio Code'u Ctrl + `açın ve terminali açmak için basılı tutun .

  3. Komut paletini kullanarak açın Ctrl + Shift + P.

  4. Türü - Select Default Shell.

  5. Seçeneklerden WSL Bash(DEĞİL Git Bash) öğesini seçin .

resim açıklamasını buraya girin

  1. +Terminal penceresindeki simgeye tıklayın . Yeni terminal şimdi bir WSL Bash terminali olacak!

4

En son VS kodu:

  • settings.json dosyasını göremiyorsanız Dosya -> Tercihler -> Ayarlar menüsüne gidin (veya Ctrl+, )
  • Ayarlar görünür, Kullanıcı (varsayılan olarak seçilidir) ve Çalışma Alanı olmak üzere iki sekmeye bakın. Kullanıcıya Git -> Özellikler -> Terminal
  • Terminal bölümü görünür, bağlantıya bakın edit in settings.json. Tıkla ve ekle"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
  • VS kodunu kaydedin ve yeniden başlatın.

Bash terminali terminale yansır.


1

Bir Fortune 500 şirketi için danışmanlık yapıyorum ve ne yazık ki Windows 7 ve yönetici ayrıcalıkları yok. Böylece Node.js, Npm, Visual Studio Code, vb .. makineme itildi - Ben çok değiştiremem, vb ...

Windows 7 çalıştıran bu bilgisayar için:

Aşağıda yeni ayarlarım var. Çalışmayan biri yorumlanır.

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

0

Yukarıdaki cevapları vscode 1.42.1 denedim ve bana bir git bash terminali almak için çalıştı. Yani, alt satırda bu ayar sadece terminalden bir bash kabuğu açmak için çalışır:

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

Bununla birlikte, bazı şeyleri oluşturmak için kullanılan kabuk olmasının ve MS C ++ zincirini kırmanın istenmeyen yan etkisi vardır, çünkü \yol ayırıcı için kullanılan karakter bash tarafından bir kaçış karakteri olarak anlaşılır. Benim için tam düzeltme daha sonra bu ekstra değişkeni eklemem ve bunu powershell olarak ayarlamamı gerektirdi:

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

Şimdi, bash terminalimi alabilir ve / Ctrl-Shift-Bveya F5sorunsuz çalışabilirim.

Oh, ve diğer posterlerde belirtildiği gibi, bu bilgilerin kaynağı VSCode'un dokümanlarıdır .


0

Ayrılmış veya ilgisiz mermiler ve code [args]destek ne olacak?

Diğer yanıtlar VScode entegre WSL bashterminal desteğinin nasıl yapılandırılacağı ve kullanılacağı hakkında konuşurken , "ayrılmış kabuklar" sorununu çözmezler: VScode içinden başlatılmayan veya bir şekilde VScode sunucusundan "bağlantısı kesilen" kabuklar IDE ile ilişkilendirilmiş örnek.

Bu tür kabuklar aşağıdaki gibi hatalar verebilir:

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

veya...

Unable to connect to VS Code server. Error in request

İşte bu sorunu çözmeyi kolaylaştıran bir komut dosyası .

Bu günlük tmuxbelirli bir VScode sunucu örneği ile bir oturumda kabukları bağlamak veya barındırma IDE ayrılmış bir entegre kabuk düzeltmek için kullanın.

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

Zaten "bash", "powershell" ve "cmd" CLI'larınız varsa ve doğru yol ayarlarına sahipseniz, bir CLI'den diğerine geçmek aşağıdaki yollarla yapılabilir.

Ctrl+ ': Terminal penceresini varsayılan CLI ile açar.

bash + enter: Varsayılan / geçerli CLI'nizden bash CLI'ya geçin .

powershell + enter: Varsayılan / geçerli CLI'nizden powershell CLI'ya geçin .

cmd + enter: Varsayılan / geçerli CLI'nizden cmd CLI'ya geçin .

Kullandığım VS Kod Sürümü 1.45.0

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.