Как мне настроить 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, вам необходимо перезагрузить... ваш список задач.
- Зайдите в настройки... (Win + Alt + P)
- Перейдите к вашему списку задач (Автозагрузка> Задачи)
- Нажмите на кнопку Обновить...
Теперь вы должны увидеть {CygWin bash} как один из вариантов в списке предопределенных задач:
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, где они по праву принадлежат.