Eu criei uma nova tarefa
{Bater}
passou no meu diretório pessoal
/ dir "C: \ Usuários \ TMB \"
e adicionado bash como um aplicativo
C: \ cygwin \ bin \ bash.exe
Quando abro o Bash, ele não pode usar os utilitários básicos do UNIX / Cygwin. Como eu configuro o ConEmu para executar o Cygwin Bash?
Respostas:
Isso pode ajudar outras pessoas.
Parece que a versão 140310 do ConEmu detecta automaticamente o CygWin Bash.
Se você instalou o Cygwin depois de instalar o ConEmu, precisará recarregar ... sua lista de tarefas.
Agora você deve ver {CygWin bash} como uma das suas opções na lista de tarefas predefinidas:
PS - Se esse método não funcionar, tente redefinir as configurações do ConEmu (clique no botão Redefinir ... na parte inferior da janela Configurações ).
fonte
%SystemDrive%\cygwin64\bin\sh.exe --login -i
para mim no 140304 no canal de visualização.Add default tasks...
botão (logo acima doReload
botão) fez o truque ...%SystemDrive%\cygwin64\bin\bash.exe --login -i
ou em vez de
usar
fonte
Verifique se o Bash está recebendo um valor razoável para
$PATH
; geralmente ele herda isso do que quer que seja, mas o ConEmu é um aplicativo do Windows, então tudo o que ele fornecerá é o que você definiu%Path%
. Geralmente isso não inclui os diretórios de caminho do Cygwin, então o Bash não sabe onde procurarls
, etc.A maneira como eu resolveria isso seria, por qualquer meio que o ConEmu oferecer para isso, passar
--login -i
como argumentos de linha de comando para o Bash; isso vai lhe dizer que você está executando-o como um shell de login interativo, por isso vai ler/etc/profile
,~/.profile
e~/.bashrc
no começo. Na minha experiência, isso foi suficiente para dar uma idéia$PATH
; se isso não funcionar para você, você pode especificá-lo explicitamente com uma linha comoPATH=/bin:/usr/bin:/usr/local/bin:[...]:$PATH
na sua~/.bashrc
.fonte
/cygdrive/c/cygwin/home
então eu eliminadoshome
e fez um cruzamento commklink -J home C:\Users
no cmd.exeEsse é meu jeito
Crie uma nova tarefa no ConEmu com o seguinte comando
fonte
Eu sei que é uma pergunta muito antiga, mas eu queria compartilhar isso de qualquer maneira:
Para iniciar o bash em um diretório de trabalho específico, basta definir o comando, por exemplo,
SET CHERE_INVOKING=1 & "C:\cygwin\bin\bash.exe --login -i" -cur_console:t:"cygwin terminal"
e especificar o diretório de trabalho normalmente,/dir "..."
conforme descrito aqui .fonte
Para disponibilizar os comandos do Cygwin
bash
, independentemente de como você o executa, bem como decmd
ou qualquer outro shell, verifique se aPath
variável de ambiente possui obin
diretório do Cygwin adicionado.Vá para
Control Panel > System and Security > System
(tecla de atalho padrãoWin+Pause
) e, em seguidaAdvanced system settings > Environment variables
. Para todos os usuários, edite aPath
variável do sistema , apenas para o seu usuário - edite (crie se não existir) aPath
variável do usuário .Supondo que
cygwin
esteja instalado emC:\cygwin
(pode ser cygwin64 para Cygwin de 64 bits), adicioneC:\cygwin\bin
aoPath
. Esteja ciente de que se você usar aPath
variável de sistema , se você adicionar o Cygwinbin
no início, alguns comandos do Cygwin sombrearão os integrados (por exemplo, o Cygwinfind
será usado em vez do Windows 'find
) Prefiro fazê-lo, mas se não o fizer, adicione o Cygwinbin
no final do seuPath
.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 sem login. Por exemplo, no Linux, você obtém um shell de login ao efetuar login no console de texto ou via ssh, e um shell interativo sem login ao abrir um emulador de terminal (xterm, konsole etc.).
Minha tarefa {Bash} possui
/dir "%CD%"
parâmetros de tarefa para definir o diretório de trabalho no diretório de trabalho da guia atual (por exemplo, se a tarefa bash do Far). O comando para iniciar o bash:%ConEmuDrive%\cygwin\bin\bash.exe -new_console:C:"%ConEmuDrive%\cygwin\Cygwin.ico"
As
--login -i
opções de aviso são omitidas, o shell será iniciado como um shell interativo sem logon (já que não possui argumentos de opção e sem a opção -c, e o stdin e o stdout estão conectados aos terminais, consulte a seção INVOCATION da página de manual do bash para obter mais informações. explicação). 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 oset CHERE_INVOKING=1
que é relevante apenas em relação a/etc/profile
). Então, coloque seus apelidos de usuário, opções de shell, variáveis de ambiente extras etc. em ~ / .bashrc, onde eles pertencem por direito.fonte