¿Cómo configuro ConEmu para ejecutar Cygwin Bash?

42

Creé una nueva tarea

{Golpetazo}

pasó mi directorio de inicio

/ dir "C: \ Usuarios \ TMB \"

y agregó bash como aplicación

C: \ cygwin \ bin \ bash.exe

Cuando abro Bash, no puedo usar las utilidades básicas de UNIX / Cygwin. ¿Cómo configuro ConEmu para ejecutar Cygwin Bash?

TMB
fuente
¿Qué versión de ConEmu estás intentando? Además, no todas las versiones de bash admiten el directorio de trabajo. Git bash - can, según recuerdo.
Maximus
No pude averiguar cómo configurar mi directorio de trabajo en mi perfil de bash, pero creo que encontré una solución más general debajo de la respuesta marcada.
TMB
ConEmu x64 120727c.x64
TMB
Con "directorio de trabajo" me refiero a uno que especifique con el modificador / dir. Por cierto, ¿has leído esta respuesta? superuser.com/a/482340/139371
Maximus

Respuestas:

48

Esto podría ayudar a otros.

Parece que la versión 140310 de ConEmu detecta automáticamente CygWin Bash.

Si ha instalado Cygwin después de instalar ConEmu, deberá volver a cargar ... su lista de tareas.

  1. Vaya a Configuración ... (Win + Alt + P)
  2. Navegue a su lista de Tareas (Inicio> Tareas)
  3. Haga clic en el botón Recargar ...

Ahora debería ver {CygWin bash} como una de sus opciones en la lista de tareas predefinidas:

Captura de pantalla de CygWin bash en ConEmu

PD: si este método no funciona, intente restablecer la configuración de ConEmu (haga clic en el botón Restablecer ... en la parte inferior de la ventana Configuración ).

FilmiHero
fuente
2
Y si la recarga y el restablecimiento no funcionan, creo que podríamos ingresar la ruta, el comando y las opciones como se muestra en la captura de pantalla.
TMB
%SystemDrive%\cygwin64\bin\sh.exe --login -ipara mí en 140304 en el canal de vista previa.
TMB
3
Para mí, hacer clic en el Add default tasks...botón (justo encima del Reloadbotón) hizo el truco ...
Hanan N.
99
Tenga en cuenta que sh.exe no obtendrá su .bashrc; solo bash.exe hará eso. Así que estoy usando el comando%SystemDrive%\cygwin64\bin\bash.exe --login -i
John Prior
El comentario de @ JohnPrior es realmente muy útil. La variable PATH estaba completamente mal al usar sh.exe, pero con bash.exe ahora puede encontrar mis aplicaciones.
flungo
7

o en lugar de

C:\cygwin\bin\bash.exe

utilizar

C:\cygwin\Cygwin.bat
Yura
fuente
Creo que esa es la forma más simple.
Laurent
6

Asegúrese de que Bash esté recibiendo un valor razonable para $PATH; generalmente hereda eso de lo que sea que lo llame, pero ConEmu es una aplicación de Windows, por lo que todo lo que proporcionará es lo que haya establecido %Path%. En general, eso no incluye los directorios de ruta de Cygwin, por lo que Bash no sabe dónde buscar ls, & c.

La forma en que resolvería esto sería, por cualquier medio que ConEmu ofrezca para hacerlo, pasar --login -icomo argumentos de línea de comandos a Bash; esto le dirá que usted está funcionando como un intérprete interactivo de ingreso, por lo que va a leer /etc/profile, ~/.profiley ~/.bashrcen el arranque. En mi experiencia, eso ha sido suficiente para darle un sentido $PATH; si eso no funciona para usted, puede especificarlo explícitamente con una línea como PATH=/bin:/usr/bin:/usr/local/bin:[...]:$PATHen su ~/.bashrc.

Aaron Miller
fuente
Esto me dio las utilidades que estaba buscando a continuación. Quería señalar mi directorio de inicio normal de Windows, /cygdrive/c/cygwin/homeasí que eliminé homee hice un cruce con mklink -J home C:\Userscmd.exe
TMB
3
Me alegro de que haya hecho el trabajo por ti. Nunca pensé en usar un cruce para apuntar ~ a c: \ users \ me, pero una vez lo hice con un enlace simbólico, y desde esa experiencia le doy la siguiente advertencia: si alguna vez necesita ejecutar ComboFix para limpiar un malware infestación en su máquina, eliminará cualquier archivo en c: \ users \ you . Perdí todo en mi directorio personal de esa manera una vez, y mi copia de seguridad más reciente tenía una semana. ¡No cometas el mismo error que yo!
Aaron Miller
2

Esta es mi manera

Cree una nueva tarea en ConEmu con el siguiente comando

set HOME=C:\Home & "C:\Home\Applications\cygwin64\bin\mintty.exe" -i /Cygwin-Terminal.ico -
Zumbido
fuente
Su solución funciona, y me gusta tener la interfaz mintty.exe, pero ¿puede explicar por qué funciona? Especialmente, ¿qué está haciendo el "&" aquí?
Dr. Koutheir Attouchi
0

Sé que es una pregunta bastante antigua, pero quería compartir esto de todos modos:

Para iniciar el bash dentro de un directorio de trabajo específico, simplemente configure el comando, por ejemplo, SET CHERE_INVOKING=1 & "C:\cygwin\bin\bash.exe --login -i" -cur_console:t:"cygwin terminal"y especifique el directorio de trabajo normalmente /dir "..."como se describe aquí .

Felix Bayer
fuente
0

Para que los comandos de Cygwin estén disponibles desde bash, independientemente de cómo lo ejecute, así como desde cmdcualquier otro shell, asegúrese de que su Pathvariable de entorno tenga binagregado el directorio de Cygwin .
Vaya a Control Panel > System and Security > System(tecla de acceso rápido estándar Win+Pause), entonces Advanced system settings > Environment variables. Para todos los usuarios, edite la Pathvariable del sistema , solo para su usuario: edite (cree si no existe) la Pathvariable de usuario .
Suponiendo que cygwinesté instalado en C:\cygwin(podría ser cygwin64 para Cygwin de 64 bits), agregue C:\cygwin\bina Path. Tenga en cuenta que si usa la Pathvariable del sistema , si agrega Cygwin binal principio, algunos comandos de Cygwin sombrearán los incorporados (por ejemplo, Cygwin findse usará en lugar de Windows 'find) Prefiero hacerlo, pero si no lo haces, agrega Cygwin's binal final de tu Path.

Como la mayoría de las otras respuestas también hablan sobre la configuración de ConEmu, también daré mi opinión personal.

Prefiero ejecutar un shell sin inicio de sesión. Por ejemplo, en Linux obtienes un shell de inicio de sesión cuando inicias sesión en la consola de texto o mediante ssh, y un shell interactivo sin inicio de sesión cuando abres un emulador de terminal (xterm, konsole, etc.).

Mi tarea {Bash} tiene /dir "%CD%"parámetros de tarea para establecer el directorio de trabajo en el directorio de trabajo de la pestaña actual (por ejemplo, si la tarea bash es Far). El comando para iniciar bash:
%ConEmuDrive%\cygwin\bin\bash.exe -new_console:C:"%ConEmuDrive%\cygwin\Cygwin.ico"

--login -iSe omiten las opciones de aviso , el shell comenzará como un shell interactivo sin inicio de sesión (ya que no tiene argumentos sin opciones y sin la opción -c, y sus stdin y stdout están conectados a terminales, consulte la sección de INVOCACIÓN de la página de manual de bash para obtener más información). explicación). Leerá y ejecutará comandos del usuario rcfile ~/.bashrc(no /etc/profileo ~/.bash_profilecomo lo haría un shell de inicio de sesión, por lo que no es necesario para lo set CHERE_INVOKING=1que solo es relevante con respecto a /etc/profile). Por lo tanto, coloque sus alias de usuario, opciones de shell, variables de entorno adicionales, etc. a ~ / .bashrc, donde pertenecen legítimamente.

Gene Pavlovsky
fuente