web-dev-qa-db-fra.com

Comment configurer ConEmu pour exécuter Cygwin Bash?

J'ai créé une nouvelle tâche

{Frapper}

passé mon répertoire personnel

/ dir "C:\Users\TMB \"

et ajouté bash en tant qu'application

C:\cygwin\bin\bash.exe

Lorsque j'ouvre Bash, il est impossible d'utiliser les utilitaires de base UNIX/Cygwin. Comment configurer ConEmu pour exécuter Cygwin Bash?

40
TMB

Cela pourrait aider les autres.

Il semble que la version 140310 de ConEmu détecte automatiquement CygWin Bash.

Si vous avez installé Cygwin après avoir installé ConEmu, vous devez recharger ... votre liste de tâches.

  1. Aller à Paramètres ... (Win + Alt + P)
  2. Accédez à votre liste de tâches (démarrage> tâches)
  3. Cliquez sur le bouton Recharger ... .

Vous devriez maintenant voir {CygWin bash} parmi vos options dans la liste des tâches prédéfinies:

Screenshot of CygWin bash in ConEmu

PS - Si cette méthode ne fonctionne pas, essayez de réinitialiser vos paramètres ConEmu (cliquez sur le bouton Réinitialiser ... à au bas de votre fenêtre Paramètres ).

46
FilmiHero

ou au lieu de

C:\cygwin\bin\bash.exe

utilisation

C:\cygwin\Cygwin.bat
7
Yura

Assurez-vous que Bash reçoit une valeur sensible pour $PATH; généralement, il hérite de tout ce qui l’appelle, mais ConEmu étant une application Windows, elle ne fournira que ce que vous avez défini pour %Path%. Généralement, cela n'inclut pas les répertoires de chemins Cygwin, donc Bash ne sait pas où chercher ls, & c.

Pour résoudre ce problème, la solution serait de passer de --login -i comme arguments de ligne de commande à Bash, quel que soit le moyen mis en œuvre par ConEmu. cela lui indiquera que vous l'exécutez en tant que shell de connexion interactif, de sorte qu'il se lise /etc/profile, ~/.profile et ~/.bashrc au démarrage. D'après mon expérience, cela a suffi pour lui donner un $PATH raisonnable; si cela ne fonctionne pas pour vous, vous pouvez le spécifier explicitement avec une ligne comme PATH=/bin:/usr/bin:/usr/local/bin:[...]:$PATH dans votre ~/.bashrc.

6
Aaron Miller

C'est mon chemin

Créer une nouvelle tâche dans ConEmu avec la commande suivante

set HOME=C:\Home & "C:\Home\Applications\cygwin64\bin\mintty.exe" -i /Cygwin-Terminal.ico -
2
Buzz

Je sais que c’est une question assez ancienne, mais je voulais quand même le partager:

Pour démarrer le bash dans un répertoire de travail spécifique, définissez la commande par exemple sur SET CHERE_INVOKING=1 & "C:\cygwin\bin\bash.exe --login -i" -cur_console:t:"cygwin terminal" et spécifiez le répertoire de travail normalement via /dir "..." comme décrit ici .

0
Felix Bayer

Pour rendre les commandes Cygwin disponibles à partir de bash, quel que soit le mode d’exécution, ainsi que de cmd ou de tout autre shell, assurez-vous que le répertoire Path de Cygwin a été ajouté à votre variable d’environnement bin.
Allez à Control Panel > System and Security > System (touche de raccourci standard Win+Pause), puis à Advanced system settings > Environment variables. Pour tous les utilisateurs, éditez la variable système Path, uniquement pour votre utilisateur - éditez (créez (si elle n’existe pas) la variable utilisateur Path.
En supposant que cygwin est installé à C:\cygwin (il peut s’agir de cygwin64 pour Cygwin 64 bits), ajoutez C:\cygwin\bin à Path. Sachez que si vous utilisez la variable système Path, si vous ajoutez la variable bin de Cygwin au début, certaines commandes de Cygwin masqueront les commandes intégrées (par exemple, la variable find de Cygwin sera utilisée à la place de la variable find de Windows). Je préfère le faire, mais si vous ne le faites pas, ajoutez la variable bin de Cygwin à la fin de votre Path.

Comme la plupart des autres réponses parlent également de la configuration de ConEmu, je donnerai aussi mon opinion personnelle.

Je préfère exécuter un shell non connecté. Par exemple, sous Linux, vous obtenez un shell de connexion lorsque vous vous connectez à la console de texte ou via ssh, et un shell interactif sans connexion lorsque vous ouvrez un émulateur de terminal (xterm, konsole, etc.).

Ma tâche {Bash} a les paramètres /dir "%CD%" pour définir le répertoire de travail sur le répertoire de travail de l'onglet actuel (par exemple, si la tâche bash est de Far). La commande pour démarrer bash:
%ConEmuDrive%\cygwin\bin\bash.exe -new_console:C:"%ConEmuDrive%\cygwin\Cygwin.ico"

Notez que les options --login -i sont omises, Shell démarrera en tant que shell interactif non connecté (puisqu'il ne contient pas d'argument non-option et sans l'option -c, et que stdin et stdout sont connectés à des terminaux, reportez-vous à la section INVOCATION de la page de manuel de bash. plus d'explication). Il lira et exécutera les commandes de l'utilisateur rcfile ~/.bashrc (pas /etc/profile ni ~/.bash_profile comme le ferait un shell de connexion, vous n'avez donc pas besoin de set CHERE_INVOKING=1 qui n'est pertinent que pour /etc/profile). Mettez donc vos alias d’utilisateur, vos options de shell, vos variables d’environnement supplémentaires, etc. dans ~/.bashrc, là où ils appartiennent légitimement.

0
Gene Pavlovsky