40

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

{} Баш

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

/dir "C:\Users\TMB\"

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

C:\ Cygwin \ Bin \ bash.exe

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

6 ответов6

46

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

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

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

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

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

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

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

7

или вместо

C:\cygwin\bin\bash.exe

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

C:\cygwin\Cygwin.bat
6

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

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

2

Это мой путь

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

set HOME=C:\Home & "C:\Home\Applications\cygwin64\bin\mintty.exe" -i /Cygwin-Terminal.ico -
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 , если вы добавляете bin Cygwin в начале, некоторые команды Cygwin будут затенять встроенные (например, find Cygwin будет использоваться вместо find Windows). Я предпочитаю делать это, но если вы этого не сделаете, добавьте bin Cygwin в конце вашего 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 из справочной страницы Bash для более подробного объяснения). Он будет читать и выполнять команды от пользователя rcfile ~/.bashrc (не для /etc/profile или ~/.bash_profile как для оболочки входа в систему, поэтому вам не нужно set CHERE_INVOKING=1 что относится только к /etc/profile). Поэтому поместите ваши псевдонимы пользователей, параметры оболочки, дополнительные переменные среды и т.д. В ~/.bashrc, где они по праву принадлежат.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .