Чтобы сделать команды 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, где они по праву принадлежат.