Stworzyłem nowe zadanie
{Grzmotnąć}
przekazałem mój katalog domowy
/ katalog „C: \ Users \ TMB \”
i dodał bash jako aplikację
C: \ cygwin \ bin \ bash.exe
Kiedy otwieram Bash, nie można korzystać z podstawowych narzędzi UNIX / Cygwin. Jak skonfigurować ConEmu do uruchamiania Cygwin Bash?
Odpowiedzi:
To może pomóc innym.
Wygląda na to, że wersja 140310 ConEmu automatycznie wykrywa CygWin Bash.
Jeśli zainstalowałeś Cygwin po zainstalowaniu ConEmu, musisz przeładować ... swoją listę zadań.
Powinieneś teraz zobaczyć {CygWin bash} jako jedną z opcji na liście predefiniowanych zadań:
PS - Jeśli ta metoda nie działa, spróbuj zresetować ustawienia ConEmu (kliknij przycisk Resetuj ... u dołu okna Ustawienia ).
źródło
%SystemDrive%\cygwin64\bin\sh.exe --login -i
dla mnie 140304 na kanale podglądu.Add default tasks...
przycisku (tuż nadReload
przyciskiem) zrobiło lewę ...%SystemDrive%\cygwin64\bin\bash.exe --login -i
lub zamiast
posługiwać się
źródło
Upewnij się, że Bash otrzymuje rozsądną wartość dla
$PATH
; zazwyczaj dziedziczy to po tym, co to nazywa, ale ConEmu jest aplikacją Windows, więc wszystko, co dostarczy, to wszystko, co masz ustawione%Path%
. Zasadniczo nie obejmuje to katalogów ścieżek Cygwin, więc Bash nie wie, gdzie szukaćls
, i c.Sposób, w jaki rozwiązałbym to, byłby, za pomocą wszelkich środków, jakie ConEmu oferuje, aby przekazać to
--login -i
jako argumenty linii poleceń do Basha; to powie to używasz go jako interaktywną powłokę logowania, więc będzie to czytać/etc/profile
,~/.profile
i~/.bashrc
na początku. Z mojego doświadczenia wynika, że nie było na tyle, aby nadać mu rozsądny$PATH
; jeśli to nie działa, możesz to wyraźnie określić za pomocą linii takiej jakPATH=/bin:/usr/bin:/usr/local/bin:[...]:$PATH
w twoim~/.bashrc
.źródło
/cygdrive/c/cygwin/home
więc nie usunąłem gohome
i utworzyłem połączenie zmklink -J home C:\Users
cmd.exeTo jest mój sposób
Utwórz nowe zadanie w ConEmu za pomocą następującego polecenia
źródło
Wiem, że to dość stare pytanie, ale i tak chciałem się z tym podzielić:
Aby rozpocząć bash w określonym katalogu roboczym, po prostu ustaw komendę na przykład
SET CHERE_INVOKING=1 & "C:\cygwin\bin\bash.exe --login -i" -cur_console:t:"cygwin terminal"
i określ katalog roboczy normalnie,/dir "..."
jak opisano tutaj .źródło
Aby komendy Cygwin były dostępne
bash
, niezależnie od tego, w jaki sposób je uruchamiasz, a także zcmd
jakiejkolwiek innej powłoki, upewnij się, że doPath
zmiennej środowiskowejbin
dodano katalog Cygwin .Idź do
Control Panel > System and Security > System
(standardowy skrótWin+Pause
), a następnieAdvanced system settings > Environment variables
. Dla wszystkich użytkowników edytujPath
zmienną systemową , tylko dla swojego użytkownika - edytuj (utwórz, jeśli nie istnieje)Path
zmienną użytkownika .Zakładając, że
cygwin
jest zainstalowany wC:\cygwin
(może być cygwin64 dla 64-bitowego Cygwin), dodajC:\cygwin\bin
doPath
. Pamiętaj, że jeśli użyjeszPath
zmiennej systemowej , jeśli dodasz Cygwinbin
na początku, niektóre polecenia Cygwina będą cienia wbudowanych (np. Cygwinfind
zamiast Windowsa zostaną użytefind
). Wolę to zrobić, ale jeśli nie, dodaj Cygwin'sbin
na końcu swojegoPath
.Ponieważ większość innych odpowiedzi mówi również o konfiguracji ConEmu, dam również swoją osobistą opinię.
Wolę uruchomić powłokę niezalogowaną. Na przykład w Linuksie otrzymujesz powłokę logowania, gdy logujesz się w konsoli tekstowej lub przez ssh, oraz interaktywną powłokę bez logowania, gdy otwierasz emulator terminala (xterm, konsola itp.).
Moje zadanie {Bash} ma
/dir "%CD%"
parametry zadania, aby ustawić katalog roboczy na katalog roboczy bieżącej karty (np. Jeśli zadanie bash z Daleka). Polecenie rozpoczęcia bash:%ConEmuDrive%\cygwin\bin\bash.exe -new_console:C:"%ConEmuDrive%\cygwin\Cygwin.ico"
--login -i
Opcje powiadomień są pomijane, powłoka uruchomi się jako powłoka interaktywna bez logowania (ponieważ nie ma argumentów innych niż opcja i bez opcji -c, a jej stdin i stdout są podłączone do terminali, więcej informacji w sekcji INROCATION na stronie podręcznika bash wyjaśnienie). Odczyta i wykona polecenia z pliku rc użytkownika~/.bashrc
(nie/etc/profile
lub~/.bash_profile
tak, jak zrobiłaby to powłoka logowania, więc nie musisz tego dotyczyćset CHERE_INVOKING=1
tylko w odniesieniu do/etc/profile
). Więc umieść aliasy użytkownika, opcje powłoki, dodatkowe zmienne środowiskowe itp. W ~ / .bashrc, gdzie słusznie należą.źródło