Как мне настроить ConEmu для запуска Cygwin Bash?


42

Я создал новое задание

{} Баш

прошел мой домашний каталог

/ dir "C: \ Users \ TMB \"

и добавил Bash в качестве приложения

C: \ Cygwin \ Bin \ bash.exe

Когда я открываю Bash, он не может использовать базовые утилиты UNIX / Cygwin. Как мне настроить ConEmu для запуска Cygwin Bash?


Какую версию ConEmu вы пытаетесь? Также не все версии bash поддерживают рабочий каталог. Git Bash - может, как я помню.
Максимус

Я не мог понять, как настроить мой рабочий каталог в моем профиле bash, но я думаю, что нашел более общее решение под помеченным ответом.
TMB

ConEmu x64 120727c.x64
TMB

Под «рабочим каталогом» я подразумеваю тот, который вы указываете с ключом / dir. Кстати, вы читали этот ответ? superuser.com/a/482340/139371
Максим

Ответы:


48

Это может помочь другим.

Похоже, версия 140310 ConEmu автоматически обнаруживает CygWin Bash.

Если вы установили Cygwin после того, как установили ConEmu, вам необходимо перезагрузить ... ваш список задач.

  1. Зайдите в настройки ... (Win + Alt + P)
  2. Перейдите к вашему списку задач (Автозагрузка> Задачи)
  3. Нажмите на Reload ... кнопку.

Теперь вы должны увидеть {CygWin bash} как один из вариантов в списке предопределенных задач:

Скриншот CygWin bash в ConEmu

PS - Если этот метод не работает, попробуйте сбросить настройки ConEmu (нажмите кнопку « Сброс» в нижней части окна « Настройки» ).


2
И если перезагрузка и сброс не работают, я думаю, мы могли бы ввести путь, команду и параметры, как показано на скриншоте.
TMB

%SystemDrive%\cygwin64\bin\sh.exe --login -iдля меня на 140304 на канале предварительного просмотра.
TMB

3
Для меня нажатие на Add default tasks...кнопку (прямо над Reloadкнопкой) сделало свое дело ...
Ханан Н.

9
Обратите внимание, что sh.exe не будет источником вашего .bashrc; это будет делать только bash.exe. Так что я использую команду%SystemDrive%\cygwin64\bin\bash.exe --login -i
Джон Приор

@ Комментарий JohnPrior на самом деле очень полезен. Переменная PATH была неверна при использовании sh.exe, но теперь с bash.exe она может реально найти мои приложения.
flungo

7

или вместо

C:\cygwin\bin\bash.exe

использование

C:\cygwin\Cygwin.bat

Я думаю, что это действительно самый простой способ.
Лоран

6

Убедитесь, что Bash получает разумное значение для $PATH; обычно он наследует это от того, что его вызывает, но ConEmu - это приложение для Windows, поэтому все, что он собирается предоставить, - это то, для чего вы настроили %Path%. Обычно это не относится к каталогам пути Cygwin, поэтому Bash не знает, где искать ls, & c.

Я бы решил, что с помощью любых средств, которые ConEmu предлагает для этого, передать --login -iBash в качестве аргументов командной строки; это сказать ему , что вы работаете как интерактивная оболочка, так что он будет читать /etc/profile, ~/.profileи ~/.bashrcна старте. По моему опыту, этого было достаточно, чтобы придать этому смысл $PATH; если это не работает для вас, вы можете указать это явно с помощью строки, как PATH=/bin:/usr/bin:/usr/local/bin:[...]:$PATHу вас ~/.bashrc.


Это дало мне утилиты, которые я искал, затем я хотел указать на свой обычный домашний каталог Windows, /cygdrive/c/cygwin/homeпоэтому я удалил homeи сделал соединение с mklink -J home C:\Userscmd.exe
TMB

3
Рад, что он сделал работу за вас. Я никогда не думал об использовании соединения для указания ~ на c: \ users \ me, но однажды я сделал это с помощью символической ссылки, и из этого опыта я даю вам следующее предупреждение: если вам когда-нибудь понадобится запустить ComboFix для очистки вредоносного ПО Заражение на вашем компьютере, он снесет любые файлы в c: \ users \ you . Однажды я потерял все в своей домашней директории, а моей последней резервной копии была неделя. Не делай ту же ошибку, что и я!
Аарон Миллер

2

Это мой путь

Создайте новое задание в ConEmu с помощью следующей команды

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

Ваше решение работает, и мне нравится иметь интерфейс mintty.exe, но вы можете объяснить, почему это работает? Особенно, что здесь делает «&»?
Доктор Кутейр Аттуши

0

Я знаю, что это довольно старый вопрос, но я все равно хотел поделиться этим:

Чтобы запустить bash в определенном рабочем каталоге, просто установите команду, например, на SET CHERE_INVOKING=1 & "C:\cygwin\bin\bash.exe --login -i" -cur_console:t:"cygwin terminal"и укажите рабочий каталог как обычно, /dir "..."как описано здесь .


0

Чтобы сделать команды Cygwin доступными из bashнезависимо от того, как вы их выполняете, а также из cmdлюбой другой оболочки, убедитесь, что в Pathпеременной среды binдобавлен каталог Cygwin .
Перейти к Control Panel > System and Security > System(стандартная горячая клавиша Win+Pause), затем Advanced system settings > Environment variables. Для всех пользователей отредактируйте системную Pathпеременную, просто для своего пользователя - отредактируйте (создайте, если она не существует) пользовательскую Pathпеременную.
Предполагая, cygwinчто установлен в C:\cygwin(может быть cygwin64 для 64-битного Cygwin), добавьте C:\cygwin\binк Path. Имейте в виду, что если вы используете системную Pathпеременную, если вы добавляете Cygwin binв начале, некоторые команды Cygwin будут затенять встроенные (например, Cygwin findбудет использоваться вместо Windows ').find). Я предпочитаю делать это, но если вы этого не сделаете, добавьте Cygwin's binв конце вашего Path.

Поскольку в большинстве других ответов также говорится о настройке ConEmu, я также выскажу свое личное мнение.

Я предпочитаю запускать оболочку без входа в систему. Например, в Linux вы получаете оболочку входа при входе в систему с текстовой консоли или через ssh и интерактивную оболочку без регистрации при открытии эмулятора терминала (xterm, konsole и т. Д.).

Моя задача {Bash} имеет /dir "%CD%"параметры задачи для установки рабочего каталога в рабочий каталог текущей вкладки (например, если задача bash из Far). Команда для запуска bash:
%ConEmuDrive%\cygwin\bin\bash.exe -new_console:C:"%ConEmuDrive%\cygwin\Cygwin.ico"

Параметры уведомления --login -iопущены, оболочка будет запускаться как интерактивная оболочка без входа в систему (поскольку она не имеет аргументов без параметров и без опции -c, а ее stdin и stdout подключены к терминалам, обратитесь к разделу INVOCATION на man-странице bash для получения дополнительной информации. объяснение). Он будет читать и выполнять команды из пользовательского файла rcfile ~/.bashrc(нет /etc/profileили ~/.bash_profileкак оболочка входа в систему, поэтому вам не нужно, set CHERE_INVOKING=1что относится только к /etc/profile). Поэтому поместите ваши псевдонимы пользователя, параметры оболочки, дополнительные переменные окружения и т. Д. В ~ / .bashrc, где они по праву принадлежат.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.