Cygwin Bash.exe vs mintty.exe
Je suis en train de lancer des commandes Unix sur le bash.exe
et mintty.exe
, trouvé dans Cygwin64/bin
(par exemple, usr/bin/bash.exe). Lorsque j'essaie d'exécuter l'Unix de commande ls
, je reçois bash: ls: command not found
. Cependant, lorsque je clique sur l'icône de bureau pour le terminal Cygwin, et entrez ls
dans la Cygwin terminal Unix commmands comme ls
travail! Pourquoi faire des commandes Unix fonctionnent pas sur bash.exe
et mintty.exe
, mais sur le terminal, les résultats en cliquant sur l'icône? En outre, quelle est la différence les deux coquilles apporté par bash.exe
et mintty.exe
?
Vous devez vous connecter pour publier un commentaire.
Ces deux programmes ne sont en aucune façon des alternatives. Bash est un shell, et MinTTY est un émulateur de terminal. MinTTY tourne normalement votre shell utilisateur à l'intérieur de lui-même, qui peut ou peut ne pas être Bash. C'est-à-dire, normalement, vous utilisez les deux programmes.
Si vous examinez le MinTTY raccourci que Cygwin est
setup.exe
construit, vous verrez que ce n'est pas un simple lancement du programme. Il fonctionne commemintty -
, qui raconte MinTTY pour exécuter votre shell utilisateur comme un "login shell".C'est le problème que vous avez couru. Si vous exécutez
bash.exe
sans options, vous obtenez juste le nu shell, avec sa configuration par défaut, ce qui signifie qu'il ne veut pas faire des choses comme ajouter Cygwin/bin
à votrePATH
. De même, si vous exécutezmintty.exe
sans options, il exécute votre shell utilisateur sans options. Quand vous donnez un tableau de bord àmintty.exe
au lieu d'un nom de programme, il exécute votre shell utilisateur comme un shell de connexion:bash -l
, plutôt que de simplementbash
. Cette option provoque Bash pour lire dans un tas de scripts de démarrage immédiatement après le lancement, qui permet de définir le CHEMIN de commande et beaucoup plus.Donc, si vous avez eu à courir
bash.exe
à l'extérieur MinTTY pour une raison quelconque, vous pourriez direbash -l
pour obtenir un comportement un peu plus proche de labash.exe
lors de l'exécuter viamintty -
. Vous perdez sur l'ensemble de l'émulateur de terminal caractéristiques, cependant. MinTTY a beaucoup plus de copier-coller le comportement de Windows console n'a, par exemple, en particulier sur Windows 8 et plus.(Windows 10 une nette amélioration de la console, mais MinTTY est encore mieux, à mon humble avis, en particulier lorsque vous travaillez avec Cygwin.)
Dire
man mintty
à un Cygwin invite de commande pour une explication complète de toutes les choses MinTTY fait pour vous. Cette question a été répondue dans le INVOCATION section de le MinTTY page de manuel.