it-swarm.com.de

Wie konfiguriere ich ConEmu, um Cygwin Bash auszuführen?

Ich habe eine neue Aufgabe erstellt

{Bash}

mein Heimatverzeichnis übergeben

/ dir "C:\Users\TMB \"

und Bash als Anwendung hinzugefügt

C:\cygwin\bin\bash.exe

Wenn ich Bash öffne, können die grundlegenden UNIX/Cygwin-Dienstprogramme nicht verwendet werden. Wie konfiguriere ich ConEmu, um Cygwin Bash auszuführen?

40
TMB

Dies könnte anderen helfen.

Es sieht so aus, als ob die Version 140310 von ConEmu CygWin Bash automatisch erkennt.

Wenn Sie Cygwin nach der Installation von ConEmu installiert haben, müssen Sie Ihre Aufgabenliste neu laden ... .

  1. Gehe zu Einstellungen ... (Win + Alt + P)
  2. Navigieren Sie zu Ihrer Liste mit Aufgaben (Start> Aufgaben)
  3. Klicken Sie auf die Schaltfläche Neu laden ... .

Sie sollten jetzt {CygWin bash} als eine Ihrer Optionen in der Liste der vordefinierten Aufgaben sehen:

Screenshot of CygWin bash in ConEmu

PS - Wenn diese Methode nicht funktioniert, versuchen Sie, Ihre ConEmu-Einstellungen zurückzusetzen (klicken Sie auf die Schaltfläche Zurücksetzen ... unter am unteren Rand Ihres Einstellungsfensters .

46
FilmiHero

oder statt

C:\cygwin\bin\bash.exe

benutzen

C:\cygwin\Cygwin.bat
7
Yura

Stellen Sie sicher, dass Bash einen sinnvollen Wert für $PATH erhält. Normalerweise erbt es das von allem, was es aufruft, aber ConEmu ist eine Windows-Anwendung. Alles, was es bereitstellt, ist das, was Sie für %Path% festgelegt haben. Im Allgemeinen werden die Cygwin-Pfadverzeichnisse nicht berücksichtigt, sodass Bash nicht weiß, wo nach ls & c zu suchen ist.

Die Art und Weise, wie ich das lösen würde, wäre, mit welchen Mitteln auch immer ConEmu dies anbietet, --login -i als Befehlszeilenargumente an Bash zu übergeben; Dadurch wird angezeigt, dass Sie es als interaktive Anmeldeshell ausführen, sodass beim Start /etc/profile, ~/.profile und ~/.bashrc angezeigt werden. Nach meiner Erfahrung war das genug, um einen vernünftigen $PATH zu erhalten. Wenn dies bei Ihnen nicht funktioniert, können Sie es explizit mit einer Zeile wie PATH=/bin:/usr/bin:/usr/local/bin:[...]:$PATH in Ihrem ~/.bashrc angeben.

6
Aaron Miller

Das ist mein Weg

Erstellen Sie eine neue Aufgabe in ConEmu mit folgendem Befehl

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

Ich weiß, das ist eine ziemlich alte Frage, aber ich wollte das trotzdem teilen:

Um die Bash in einem bestimmten Arbeitsverzeichnis zu starten, setzen Sie den Befehl zum Beispiel auf SET CHERE_INVOKING=1 & "C:\cygwin\bin\bash.exe --login -i" -cur_console:t:"cygwin terminal" und geben Sie das Arbeitsverzeichnis normalerweise über /dir "..." an, wie hier beschrieben .

0
Felix Bayer

Um Cygwin-Befehle in bashname__, unabhängig davon, wie Sie sie ausführen, sowie in cmdoder einer anderen Shell verfügbar zu machen, stellen Sie sicher, dass in der Umgebungsvariablen Pathvon Cygwin das Verzeichnis binhinzugefügt wurde.
Gehen Sie zu Control Panel > System and Security > System (Standard-Hotkey Win+Pause) und dann zu Advanced system settings > Environment variables. Bearbeiten Sie für alle Benutzer die Systemvariable Pathname__, nur für Ihren Benutzer - bearbeiten Sie (erstellen Sie, wenn sie nicht vorhanden ist) die Benutzervariable Pathname__.
Angenommen, cygwinist unter C:\cygwin installiert (möglicherweise cygwin64 für 64-Bit-Cygwin), fügen Sie C:\cygwin\bin zum Pathnamen__ hinzu. Beachten Sie, dass, wenn Sie die Systemvariable Pathverwenden und am Anfang Cygwins binhinzufügen, einige Cygwin-Befehle eingebaute ersetzen (z. B. wird Cygwins findanstelle von Windows findverwendet). Ich bevorzuge dies, aber wenn Sie dies nicht tun, fügen Sie Cygwins binam Ende Ihres Pathnamens__ hinzu.

Da die meisten anderen Antworten auch über das ConEmu-Setup sprechen, gebe ich auch meine persönliche Meinung ab.

Ich bevorzuge es, eine nicht angemeldete Shell auszuführen. Unter Linux erhalten Sie beispielsweise eine Anmelde-Shell, wenn Sie sich an der Textkonsole oder über ssh anmelden, und eine nicht angemeldete interaktive Shell, wenn Sie einen Terminalemulator (xterm, konsole usw.) öffnen.

Meine {Bash} -Aufgabe enthält /dir "%CD%" -Aufgabeparameter, um das Arbeitsverzeichnis auf das Arbeitsverzeichnis der aktuellen Registerkarte festzulegen (z. B. wenn die Bash-Aufgabe von Fern ist). Der Befehl zum Starten der Bash:
%ConEmuDrive%\cygwin\bin\bash.exe -new_console:C:"%ConEmuDrive%\cygwin\Cygwin.ico"

Beachten Sie, dass --login -i -Optionen weggelassen werden. Shell startet als interaktive Shell ohne Anmeldung (da sie keine Argumente ohne Option und ohne die Option -c enthält und stdin und stdout mit Terminals verbunden sind, lesen Sie den Abschnitt INVOCATION auf der bash-Handbuchseite mehr Erklärung). Es liest und führt Befehle aus dem Benutzer rcfile ~/.bashrc aus (nicht /etc/profile oder ~/.bash_profile, wie es eine Anmeldeshell tun würde, sodass Sie keinen set CHERE_INVOKING=1 benötigen, der nur für /etc/profile relevant ist). Stellen Sie also Ihre Benutzer-Aliase, Shell-Optionen, zusätzliche Umgebungsvariablen usw. auf ~/.bashrc, wo sie zu Recht hingehören.

0
Gene Pavlovsky