Para disponibilizar comandos Cygwin a partir de bash
, independentemente de como você os executa, bem como de cmd
ou qualquer outro shell, verifique se sua variável de ambiente Path
tem o diretório bin
do Cygwin adicionado. >
Vá para Control Panel > System and Security > System
(tecla de atalho padrão Win+Pause
) e, em seguida, Advanced system settings > Environment variables
. Para todos os usuários, edite a variável Path
do sistema, apenas para seu usuário - edite (crie, se ela não existir) a variável user Path
.
Assumindo que cygwin
esteja instalado em C:\cygwin
(pode ser cygwin64 para o Cygwin de 64 bits), adicione C:\cygwin\bin
ao Path
. Esteja ciente de que se você usar a variável Path
do sistema, se você adicionar o bin
do Cygwin no começo, algum comando do Cygwin irá sombrear os internos (por exemplo, find
do Cygwin será usado em vez do Windows ' find
) . Eu prefiro fazê-lo, mas se você não o fizer, adicione bin
do Cygwin no final do seu Path
.
Como a maioria das outras respostas também fala sobre a configuração do ConEmu, também darei minha opinião pessoal.
Eu prefiro executar um shell de não-login. Por exemplo, no Linux, você obtém um shell de login quando efetua login no console de texto ou via ssh, e um shell interativo sem login quando você abre um emulador de terminal (xterm, konsole, etc.).
Minha tarefa {Bash} tem /dir "%CD%"
parâmetros da tarefa para definir o diretório de trabalho para o diretório de trabalho da guia atual (por exemplo, se a tarefa bash de Far). O comando para iniciar o bash:% %ConEmuDrive%\cygwin\bin\bash.exe -new_console:C:"%ConEmuDrive%\cygwin\Cygwin.ico"
Observe que as opções --login -i
são omitidas, o shell será iniciado como um shell interativo sem login (já que não possui argumentos de não opção e sem a opção -c, e seu stdin e stdout estão conectados aos terminais, consulte INVOCATION seção da manpage do bash para mais explicações). Ele lerá e executará comandos do usuário rcfile ~/.bashrc
(não /etc/profile
ou ~/.bash_profile
como um shell de login faria, portanto, você não precisa set CHERE_INVOKING=1
, que é relevante apenas em relação a /etc/profile
). Portanto, coloque seus aliases de usuários, opções de shell, variáveis de ambiente extras, etc. em ~ / .bashrc, onde eles pertencem legalmente.