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

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

{} Баш

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

/dir "C:\Users\TMB\"

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

C: \ Cygwin \ Bin\bash.exe

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

6 ответов

Решение

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

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

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

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

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

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

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

Или вместо

C:\cygwin\bin\bash.exe

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

C:\cygwin\Cygwin.bat

Убедитесь, что 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,

Это мой путь

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

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

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

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

Чтобы сделать команды Cygwin доступными из bashнезависимо от того, как вы его запускаете, а также от cmd или любой другой оболочки, убедитесь, что ваш Path переменная окружения имеет Cygwin's bin каталог добавлен.
Идти к 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's bin в начале, некоторые команды Cygwin будут затенять встроенные (например, Cygwin's 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 опции опущены, shell будет запускаться как интерактивная оболочка без входа в систему (поскольку она не имеет аргументов без опций и без опции -c, а ее stdin и stdout подключены к терминалам, обратитесь к разделу INVOCATION на man-странице bash для более подробного объяснения.). Он будет читать и выполнять команды от пользователя rcfile ~/.bashrc (не /etc/profile или же ~/.bash_profile как оболочка входа в систему, поэтому вам не нужно set CHERE_INVOKING=1 который имеет отношение только к /etc/profile). Поэтому поместите ваши псевдонимы пользователя, параметры оболочки, дополнительные переменные окружения и т. Д. В ~/.bashrc, где они по праву принадлежат.

Другие вопросы по тегам