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?
Antworten:
Dies könnte anderen helfen.
Es sieht so aus, als ob die Version 140310 von ConEmu CygWin Bash automatisch erkennt.
Wenn Sie Cygwin installiert haben , nachdem Sie ConEmu installiert haben , werden Sie brauchen Reload ... die Liste der Aufgaben.
Sie sollten nun {CygWin bash} als eine Ihrer Optionen in der Liste der vordefinierten Aufgaben sehen:
PS - Wenn diese Methode nicht funktioniert, versuchen Sie, Ihre ConEmu-Einstellungen zurückzusetzen (klicken Sie auf die Schaltfläche Zurücksetzen ... unten im Fenster Einstellungen ).
quelle
%SystemDrive%\cygwin64\bin\sh.exe --login -i
für mich auf 140304 im Preview Channel.Add default tasks...
Knopf (rechts über demReload
Knopf) den Trick gemacht ...%SystemDrive%\cygwin64\bin\bash.exe --login -i
oder statt
verwenden
quelle
Stellen Sie sicher, dass Bash einen vernünftigen Wert für erhält
$PATH
. Normalerweise erbt es das von allem, was es aufruft, aber ConEmu ist eine Windows-Anwendung, und alles, was es bereitstellt, ist das, was Sie eingestellt haben%Path%
. Im Allgemeinen werden die Cygwin-Pfadverzeichnisse nicht berücksichtigt, sodass Bash nicht weiß, wo er suchen mussls
, & c.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; dies wird es Ihnen sagen , es als interaktive Login - Shell laufen lassen , so dass er gelesen wird/etc/profile
,~/.profile
und~/.bashrc
beim Start. Nach meiner Erfahrung ist das genug, um es vernünftig zu machen$PATH
; Wenn das bei Ihnen nicht funktioniert, können Sie es explizit mit einer Zeile wiePATH=/bin:/usr/bin:/usr/local/bin:[...]:$PATH
in Ihrer angeben~/.bashrc
.quelle
/cygdrive/c/cygwin/home
löschtehome
und erstellte eine Verknüpfung mitmklink -J home C:\Users
in cmd.exeDas ist mein Weg
Erstellen Sie eine neue Aufgabe in ConEmu mit folgendem Befehl
quelle
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/dir "..."
wie hier beschrieben an .quelle
Stellen
bash
Siecmd
sicher, dass in IhrerPath
Umgebungsvariablen dasbin
Verzeichnis von Cygwin hinzugefügt wurde, damit Cygwin-Befehle unabhängig davon, wie Sie sie ausführen, sowie in einer anderen Shell verfügbar sind .Gehen Sie dann zu
Control Panel > System and Security > System
(Standard-HotkeyWin+Pause
)Advanced system settings > Environment variables
. Bearbeiten Sie die Systemvariable für alle Benutzer,Path
nur für Ihren Benutzer. Bearbeiten Sie die Benutzervariable (erstellen Sie sie, falls sie nicht vorhanden ist)Path
.Vorausgesetzt
cygwin
, dass unterC:\cygwin
(möglicherweise cygwin64 für 64-Bit-Cygwin) installiert ist , fügen SieC:\cygwin\bin
dem hinzuPath
. Beachten Sie, dass, wenn Sie die Systemvariable verwendenPath
und zubin
Beginn Cygwins hinzufügen , einige Cygwins Befehle eingebaute schattieren (z. B. werden Cygwinsfind
anstelle von Windows verwendet).find
). Ich bevorzuge es, aber wenn Sie dies nicht tun, fügen Sie Cygwinsbin
am Ende Ihrer Liste hinzuPath
.Da die meisten anderen Antworten auch über das ConEmu-Setup sprechen, gebe ich auch meine persönliche Meinung ab.
Ich bevorzuge die Ausführung einer Shell ohne Anmeldung. Unter Linux erhalten Sie beispielsweise eine Anmeldeshell, wenn Sie sich an der Textkonsole oder über ssh anmelden, und eine interaktive Shell, wenn Sie einen Terminalemulator (xterm, konsole usw.) öffnen.
Meine {Bash} -Aufgabe enthält
/dir "%CD%"
Aufgabenparameter, mit denen das Arbeitsverzeichnis auf das Arbeitsverzeichnis der aktuellen Registerkarte festgelegt wird (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"
Unsere
--login -i
Optionen sind weggelassen, Shell als Nicht-Login interaktiv Shell starten (da es keine nicht-Option Argumente und ohne die Option -c hat, und es ist stdin und stdout mit Anschlüssen verbunden, siehe INVOCATION Abschnitt der bash Manpage mehr Erläuterung). Es liest und führt Befehle aus dem Benutzer rcfile aus~/.bashrc
(nicht/etc/profile
oder~/.bash_profile
wie eine Login-Shell, Sie brauchen also nicht,set CHERE_INVOKING=1
was nur in Bezug auf relevant ist/etc/profile
). Stellen Sie also Ihre Benutzer-Aliase, Shell-Optionen, zusätzliche Umgebungsvariablen usw. auf ~ / .bashrc, wo sie zu Recht hingehören.quelle