ConEmu'yu Cygwin Bash'i çalıştıracak şekilde nasıl yapılandırabilirim?


42

Yeni bir görev oluşturdum

{Bash}

ana dizini geçti

/ dir "C: \ Kullanıcılar \ TMB \"

ve bir uygulama olarak bash eklendi

C: \ cygwin \ bin \ bash.exe

Bash'i açtığımda, temel UNIX / Cygwin yardımcı programlarını kullanamıyor. ConEmu'yu Cygwin Bash'i çalıştıracak şekilde nasıl yapılandırabilirim?


Hangi ConEmu sürümünü deniyorsunuz? Ayrıca, bash sürümlerinin tümü çalışma dizinini desteklemez. Git bash - hatırladığım gibi olabilir.
Maximus,

Bash profilimde çalışma dizinini nasıl ayarlayacağımı bulamadım, ancak işaretli cevabın altında daha genel bir çözüm buldum.
TMB

ConEmu x64 120727c.x64
TMB

"Working directory" ile / dir anahtarı ile belirttiğiniz anlamına gelir. BTW, bu cevabı okudunuz mu? superuser.com/a/482340/139371
Maximus

Yanıtlar:


48

Bu başkalarına yardımcı olabilir.

ConEmu'nun 140310 sürümü CygWin Bash'i otomatik olarak algılar gibi gözüküyor.

Eğer ConEmu yükledikten sonra Cygwin yüklediyseniz, şunları yapmanız gerekir ... Yeniden yükle Görevleri listenizi.

  1. Ayarlara Git ... (Win + Alt + P)
  2. Görevler listenize gidin (Başlangıç> Görevler)
  3. Tıklayın yükle ... düğmesi.

Şimdi , önceden tanımlanmış görevler listesindeki seçeneklerinden birini {CygWin bash} görmelisin :

ConEmu'daki CygWin bash ekran görüntüsü

PS - Bu yöntem işe yaramazsa, ConEmu ayarlarınızı sıfırlamayı deneyin ( Ayarlar pencerenizin altındaki Sıfırla ... düğmesini tıklayın ).


2
Ve eğer Yeniden yüklemek ve Sıfırlama çalışmaz, ben senin ekran resminde gösterildiği gibi biz yol komutu ve seçenekleri girmek sanırım.
TMB

%SystemDrive%\cygwin64\bin\sh.exe --login -ibenim için 140304'te Önizleme Kanalında.
TMB

3
Benim için Add default tasks...düğmeye basmak (düğmenin hemen üstünde Reload) hile yaptım ...
Hanan N.

9
Sh.exe dosyasının .bashrc kaynağını sağlamayacağını unutmayın. Bunu sadece bash.exe yapacak. Bu yüzden ben komutunu kullanıyorum%SystemDrive%\cygwin64\bin\bash.exe --login -i
John Prior

@ JohnPrior'ın yorumu aslında çok yardımcı oldu. Sh.exe kullanılırken PATH değişkeninin tümü hatalıydı, ancak bash.exe ile artık uygulamalarımı bulabiliyorsunuz.
flungo

7

veya yerine

C:\cygwin\bin\bash.exe

kullanım

C:\cygwin\Cygwin.bat

Bence bu gerçekten en basit yol.
laurent

6

Bash'in için makul bir değer aldığından emin olun $PATH; genellikle onu ne çağırırsa söylesin miras, ama ConEmu bir Windows uygulamasıdır, yani ne sağlayacaksa onu sizin için belirlediğiniz şeydir %Path%. Genellikle bu Cygwin yol dizinlerini içermez, bu yüzden Bash nereye bakacağını bilmez ls, & c.

Bunu çözmemin yolu, ConEmu'nun bunu yapmak için sunduğu her ne yoluyla olursa olsun, Bash'e --login -ikomut satırı argümanları olarak geçmektir ; o okuyacak, böylece bu, bir etkileşimli giriş kabuğu olarak yayınladığınız bunu söyleyecektir /etc/profile, ~/.profileve ~/.bashrcbaşlangıç. Tecrübelerime göre, mantıklı olmak için bu yeterliydi $PATH; Bu sizin için işe yaramazsa, sen böyle bir çizgi ile açıkça belirtebilirsiniz PATH=/bin:/usr/bin:/usr/local/bin:[...]:$PATHGözlerinde farklı ~/.bashrc.


Bu bana daha sonra aradığım yardımcı programları aldım, normal windows home dizinime işaret etmek istemedim, /cygdrive/c/cygwin/homebu yüzden silinmedi homeve mklink -J home C:\Userscmd.exe ile bir kavşak yaptım
TMB

3
İşi senin için yaptığına sevindim. Ben c: \ users \ me 'ye yönelmek üzere bir kavşak kullanmayı hiç düşünmedim, ama bir kez bir sembolik bağlantıyla yaptım ve bu deneyime göre size şu uyarıyı verdim: bir kötü amaçlı yazılımı temizlemek için ComboFix çalıştırmanız gerekirse makinenizde istila, c: \ users \ you içindeki tüm dosyaları uçuracak . Ev dizinimdeki her şeyi bir kez bu şekilde kaybettim ve en yeni yedeğim bir haftalıktı. Yaptığım hatayı yapma!
Aaron Miller,

2

Bu benim yolum

ConEmu'da aşağıdaki komutu kullanarak yeni bir görev oluşturun

set HOME=C:\Home & "C:\Home\Applications\cygwin64\bin\mintty.exe" -i /Cygwin-Terminal.ico -

Çözümünüz işe yarıyor ve ben mintty.exe arayüzüne sahip olmayı seviyorum, ama bunun neden işe yaradığını açıklayabilir misiniz? Özellikle, burada "&" ne yapıyor?
Dr. Koutheir Attouchi,

0

Bunun çok eski bir soru olduğunu biliyorum ama yine de bunu paylaşmak istedim:

Belirli bir çalışma dizini içerisinde bash'ı başlatmak için sadece komutu ayarlayın SET CHERE_INVOKING=1 & "C:\cygwin\bin\bash.exe --login -i" -cur_console:t:"cygwin terminal"ve çalışma dizinini normal /dir "..."olarak burada açıklandığı şekilde belirtin .


0

Cygwin komutlarının bashnasıl çalıştığından bağımsız olarak, cmdherhangi bir kabuktan veya başka bir kabuktan yararlanabilmek için, Pathortam değişkeninizin Cygwin'in bindizinini eklediğinden emin olun .
Git Control Panel > System and Security > System(standart kısayol tuşu Win+Pause), sonra Advanced system settings > Environment variables. Tüm kullanıcılar için, sistem Pathdeğişkenini sadece kullanıcı için düzenleyin - kullanıcı değişkenini düzenleyin (yoksa oluşturun) Path.
Varsayarsak cygwinyüklenir C:\cygwin(64-bit Cygwin için olabilir cygwin64) eklemek C:\cygwin\biniçin Path. Sistem Pathdeğişkenini kullanırsanız, binbaşlangıçta Cygwin'in eklerseniz , bazı Cygwin'in komutlarının yerleşik olanları gölgeleyeceğini unutmayın (örneğin find, Windows yerine Cygwin'in kullanılması gerekir).find). Bunu yapmayı tercih ediyorum, ancak yapmazsanız bin, sonuna Cygwin's ekleyin Path.

Diğer cevapların çoğu ConEmu kurulumu hakkında da konuştuğundan, benim de kendi fikrimi vereceğim.

Giriş yapmayan bir kabuk çalıştırmayı tercih ederim. Örneğin, Linux'ta, metin konsolunda veya ssh aracılığıyla oturum açtığınızda bir giriş kabuğu ve bir terminal emülatörü (xterm, konsole, vb.) Açtığınızda giriş yapmayan etkileşimli bir kabuk elde edersiniz.

{Bash} görevim /dir "%CD%", çalışma dizinini geçerli sekmenin çalışma dizinine ayarlamak için görev parametrelerine sahiptir (örneğin, bash uzaktaki uzaksa). Bash başlatma komutu:
%ConEmuDrive%\cygwin\bin\bash.exe -new_console:C:"%ConEmuDrive%\cygwin\Cygwin.ico"

Uyarı --login -iseçenekleri atlandı, kabuk giriş yapmayan etkileşimli bir kabuk olarak başlayacak (seçenek olmayan argümanları olmadığı ve -c seçeneği olmadığı için ve stdin ve stdout terminallere bağlı olduğundan, daha fazla bilgi için bash sayfasının INVOCATION bölümüne bakın. açıklama). Kullanıcı rcfile komutlarını okuyacak ve yürütecektir ~/.bashrc( bir giriş kabuğu olarak /etc/profileveya ~/.bash_profilebir giriş kabuğu olarak değil set CHERE_INVOKING=1, sadece hangisi ile ilgili olduğu ile ilgili gerek yoktur /etc/profile). Bu nedenle, kullanıcı takma adlarınızı, kabuk seçeneklerinizi, ekstra ortam değişkenlerinizi vb. ~ / .Bashrc dizinine yerleştirin.

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.