J'utilise Linux et un Mac et j'enseignerai bientôt des choses en ligne de commande.
Que puis-je installer sous Windows pour obtenir une fenêtre de terminal très semblable à un shell Bash Mac / Linux de base?
J'aimerais pouvoir définir .bash_aliases aussi bien que possible.
putty
connecter à un vrai serveur linux. sur les fenêtres, j’étais toujours à la fois réticent et tenté d’utilisercygwin
, réticent à cause de mon expérience d’installation maladroite. Mais personnellement, je l’ai trouvé plus pratique à utiliser que msys et plus rapide qu’une machine virtuelle. Une fois installé, cygwin s'avère en quelque sorte portable. Il suffit de copier son répertoire. Toutefois, il créera un nouveau nom d'utilisateur sur chaque machine / utilisateur en fonction du nom d'utilisateur Windows (au moins par défaut). Mais gardez à l'esprit que, puisque cygwin / msys peut être considéré comme une "distribution" personnalisée, il se peut que certains commutateurs de commande [facultatif] soient manquants. testez-les.Réponses:
Vous pouvez installer Cygwin ou MSYS / MinGW ou une distribution complète de Linux sur une machine virtuelle (à l’aide de VirtualBox , par exemple ).
la source
Vous pouvez maintenant installer le sous-système Windows pour Linux, qui vous permet d' exécuter un shell et des outils Linux natifs en mode utilisateur sous Windows . Cela vous permet d'exécuter le shell Bash directement sous Windows et repose sur Ubuntu.
Ceci a été introduit dans Windows 10 avec la mise à jour d'anniversaire (2016) et n'est pas activé par défaut. Pour activer la nouvelle fonctionnalité sur un ordinateur Windows 10 Anniversary Update, procédez comme suit:
Un peu d’histoire, en 2015, le projet Astoria a commencé à intégrer des applications Android à Windows et a créé un sous-système Linux appelé Windows Subsystem for Linux (WSL). Finalement, le projet Astoria a été abandonné car il sapait sa stratégie UWP (Universal Windows Platform), mais certaines parties ont été conservées et constituent la base de bash pour Windows. Au cours du cours, Microsoft a collaboré avec Canonical (créateurs d’Ubuntu Linux) pour leur fournir une image native avec tous les outils / fichiers binaires pris en charge.
Plus d'informations disponibles ici,
https://blogs.msdn.microsoft.com/commandline/2016/04/06/bash-on-ubuntu-on-windows-download-now-3/
https://blogs.windows.com / buildingapps / 2016/03/30 / run-bash-on-ubuntu-on-windows /
https://sec.ch9.ms/sessions/build/2016/P488.mp4 (vidéo)
la source
Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Windows-Subsystem-Linux"
Et installez l'un des logiciels suivants à partir du magasin Windows: Ubuntu, Debian, OpenSUSE, Kali LinuxVoici une liste des options disponibles à compter de 2018-05 avec quelques mises à jour concernant WSL au cours de 2019-01 ainsi qu'un peu de détail concernant chacune d'elles.
Des options qui se démarquent
Cygwin et Babun
Cygwin fournit les éléments suivants:
Cygwin vise à faciliter le portage d'applications Linux sur Windows. Si un programme C a été conçu pour Unix et prévoit d’utiliser des fonctionnalités telles que les canaux, l’accès aux fichiers et aux répertoires de style Unix, vous pouvez le compiler pour Cygwin et Cygwin agira en tant que couche de compatibilité entre le code et le système d’exploitation étranger (Windows). . Cela permet au même programme C de fonctionner à la fois sous Linux et Windows avec peu ou pas de modification. Une liste énorme de programmes Linux a donc été respectée et peut être exécutée lorsque vous installez Cygwin. Cependant, vous, l'utilisateur de ces programmes, devrez probablement connaître Unix. Par exemple, vous devrez peut-être passer des arguments comme
/cygdrive/c/autoexec.bat
au lieu dec:\autoexec.bat
et être prêt à traiter la sortie avec Unix line termin (\n
) au lieu de Windows line termin (\r\n
).La collection de tous les programmes Cygwin comprend un référentiel et bien que Cygwin n’ait pas de gestionnaire de paquets Linux traditionnel, vous pouvez à tout moment ajouter, supprimer et mettre à jour des programmes de ce référentiel de manière très contre-intuitive (vous exécutez le fichier setup.exe de Cygwin à à tout moment après la fin de l'installation)
Babun est Cygwin avec un gestionnaire de paquets complet (pact), oh-my-zsh pour son shell, git, des mises à jour automatiques et une architecture orientée plug-in. Bien que le shell par défaut soit zsh, vous pouvez facilement basculer vers bash. Cela semble être une belle mise à niveau de vanille Cygwin si le poids supplémentaire ne vous dérange pas.
Mingw-W64
Mingw-w64 fournit les éléments suivants:
MinGW est principalement une distribution de logiciels et une plate-forme de développement pour Windows. Il s’agit en particulier d’un port Windows des outils de compilation GNU, tels que GCC, make, bash, etc. Il inclut une bonne quantité d’outils GNU et une couche de compatibilité Unix minimale.
La principale différence entre Mingw-w64 et Cygwin concerne les priorités: Cygwin vise à fournir une couche de compatibilité POSIX complète comprenant une mise en œuvre complète de tous les principaux appels système et bibliothèques Unix. la performance est secondaire à la compatibilité. MinGW vise la performance et ne fournira donc pas certaines API POSIX qui ne peuvent pas être implémentées facilement et / ou assez rapidement sous Windows. Les développeurs S / W sont également la cible principale de MinGW. Néanmoins, les utilisateurs occasionnels peuvent également profiter de sa coque et des utilitaires inclus.
MSYS2 et Git pour Windows
MSYS2 fournit les éléments suivants:
MSYS2 est également avant tout une plate-forme de distribution de logiciels et une plate-forme de construction pour Windows comme MinGW, mais il combine à la fois le chemin de Cygwin et celui de MinGW. Vous pouvez utiliser MSYS2 pour créer des "programmes MinGW" ou des "programmes MSYS2" . Ce dernier lien renvoie à la couche de compatibilité de MSYS2 (msys-2.dll), qui elle-même suit de près le développement de la couche de compatibilité de Cygwin avec quelques ajouts / modifications . Les référentiels des 2 projets ne sont toutefois absolument pas liés. Ainsi, bien que MSYS2 et Cygwin fournissent tous les deux,
grep.exe
ils peuvent avoir une version complètement différente.Git pour Windows est soit juste MSYS2 avec git installé, soit au moins fortement basé sur MSYS2 . Il fournit le même shell (bash), terminal (Mintty) et gestionnaire de paquets (pacman). Il semble que ce soit le moyen le plus répandu d’exploiter Git sur Windows et d’obtenir un bel environnement Unix.
Sous-système Windows pour Linux (WSL)
WSL résout le même problème en utilisant une méthode complètement différente. Vous exécutez exactement le même code que sur un système Linux sur WSL, qui intercepte les appels du noyau et les traduit en appels du noyau Windows (c'est l'inverse de Wine). Bien sûr, la traduction ne peut pas être parfaite mais Microsoft a abandonné l’ avertissement de la bêta . Comme WSL n'était pas disponible sur Windows Server avant 2018, je ne l'ai pas beaucoup étudié. Quoi qu'il en soit, vous obtenez un bon shell bash avec la plupart des fonctionnalités de la CLI que vous espérez trouver sur une installation Ubuntu standard. Microsoft déclare officiellement que "WSL ne vise pas à prendre en charge les ordinateurs de bureau ou les applications graphiques"Cependant, il existe des instructions non officielles sur la façon de le faire. Il semble que dans l'état actuel des choses (début 2018), les principaux inconvénients de WSL sont les suivants: a) le rendu de l'écran et l'accès au disque sont très lents b) vous n'êtes pas censé éditer les fichiers WSL (Linux) à partir de Windows c) il ne fonctionne que sur Windows 64 bits. Voici une comparaison ancienne mais intéressante avec cygwin (notez que Rich Turner est un membre de l'équipe WSL et qu'il a posté de nombreuses informations utiles concernant WSL)
Terrain d'entente
À l'exception du WSL, la plupart des outils ci-dessus partagent un grand nombre de technologies communes (bibliothèques, exécutables, concepts). Par exemple, le shell bash fourni avec MinGW dépend de msys-2.dll, qui est lui-même un fork de cygwin.dll. Alors oui, il y a beaucoup de place pour la confusion :-)
Plus d'options
Cmder fournit juste un joli terminal et un shell bash pour Windows. Son composant principal est Conemu (le terminal). En plus de cela, il ajoute Clink qui fournit une édition de ligne de commande de style Powerful Bash , une présentation d'invite personnalisée et le jeu de couleurs Monokai. Il est hautement (ou peut-être totalement) compatible avec les programmes de console Windows natifs.
Scoop fournit un gestionnaire de paquets en ligne de commande pour de nombreux programmes multi-plateformes bien connus, notamment de nombreux outils GNU. Il télécharge des paquets pré-compilés. Il ne fournit ni shell ni terminal, mais s’exécute sous le fichier cmd.exe de Windows (avec toutes ses limitations, mais aussi avec sa compatibilité totale avec les programmes de console Windows natifs). Il ne comprend également aucune suite de compilateur (bien entendu, les compilateurs et les outils de développement sont des packages typiques que vous pouvez installer avec scoop). Une grande partie des programmes installés par Scoop proviennent directement du projet MinGW / MSYS ou ont été conçus à l'aide de leurs outils.
Encore plus d'options
Les solutions ci-dessous ne semblent pas actives et je ne les ai jamais testées mais elles semblent faire le travail pour les autres:
Gow (Gnu sur Windows) est l'alternative légère à Cygwin sans shell. Il utilise un programme d'installation Windows pratique qui installe environ 130 applications Linux open source extrêmement utiles, compilées sous forme de fichiers binaires Win32 natifs et disponibles via le fichier cmd.exe de Windows. Il est conçu pour être aussi petit que possible (environ 10 Mo).
UnxUtils & GnuWin32 : UnxUtils est un ensemble de ports d’utilitaires communs de type Unix similaires à GNU et destinés à Win32 natif, les exécutables ne dépendant que de la commande Microsoft C-runtime msvcrt.dll. Vous devez télécharger la partie principale et quelques mises à jour . GnuWin32 a des versions ultérieures à UnxUtils, mais nécessite des fichiers de support (par exemple, des DLL)
MSYS & MinGW semble avoir été obsolète par MSYS2 & MinGW-W64, je ne les ai donc jamais regardées.
Quelques problèmes courants sur Cygwin et MSYS2
Concernant le terminal
Mintty est le terminal utilisé dans Cygwin, MSYS2 et leurs dérivés. Sachez que si vous exécutez des programmes de console natifs Windows, il ne s'agit pas d'un remplacement indolore de l'invite de commande Windows. Alors que les programmes avec une sortie texte simple fonctionnent généralement bien, les programmes interactifs et plein écran ont souvent des problèmes. Pour en savoir plus, consultez la page d'accueil de Mintty ainsi que l'entrée "Certains programmes de console natifs ne fonctionnent pas lorsqu'ils sont exécutés à partir de Git Bash" dans la FAQ de Git pour Windows . Cette entrée a cette recommandation à faire lorsque vous faites face à ce genre de problèmes:
Autres issues
Les deux choses les plus importantes à garder à l’esprit sont les suivantes:
il y a un compromis entre le pouvoir et les problèmes difficiles à résoudre. Plus la solution est puissante, plus de problèmes peuvent survenir, même si cela ne semble initialement pas lié à votre couche Linux.
si vous n'avez pas beaucoup d'expérience Linux, n'utilisez pas les solutions les plus puissantes telles que Cygwin / MSYS2 / MinGW
UnxUtils et GnuWin32 ont le moins de pouvoir mais également le moins de potentiel de vous causer des maux de tête. Cygwin et autres vont égaler la puissance et les maux de tête. Cmder est quelque part au milieu. Ainsi, lorsque vous avez besoin des solutions les plus puissantes, prenez le temps de bien dormir et soyez totalement concentré. Évitez d’utiliser des solutions puissantes lorsque vous testez quelque chose de nouveau et éventuellement d’instable. N'oubliez pas non plus que les solutions de complexité moyenne telles que cmder ne sont pas sans tache.
Le problème des commandes Linux masquant celles de Windows est une cause fréquente de problèmes difficiles à résoudre dans des solutions telles que Cygwin / MSYS2 / MinGW. Voici un exemple: J'avais un fichier .bat qui utilisait la commande timeout. Sous Cygwin, cela échouerait car timeout est également une commande Linux mais avec une syntaxe différente. Après avoir repéré le problème, j'ai découvert que je pouvais ajouter un PATH = ... en haut du fichier .bat pour m'assurer que la commande windows était prioritaire. Mais alors j'ai eu une erreur encore plus cryptique "La redirection d'entrée n'est pas supportée" et j'ai opté pour une solution de contournement avant de trouver la raison.
Voici un exemple de problème avec cmder. J'utilisais la version Windows d'Unison sous Cmder et sous certaines conditions spéciales, elle était bloquée sans aucun message d'erreur . La même commande fonctionnait toujours parfaitement sous cmd.exe. La chose amusante est qu’il fonctionnait parfaitement sous Cygwin (en fait, si vous avez un nom de fichier Unicode, un terminal Cygwin est préférable à cmd.exe car cmd.exe affiche souvent du texte Unicode mal formé).
A propos de ce guide
En 2017-05, j'en ai eu marre de ne pas comprendre les différences entre les outils ci-dessus, bien que j'utilise certains d'entre eux depuis longtemps (principalement CygWin et cmder, mais jamais à des fins de développement). J'ai donc passé quelques heures à saisir le paysage. Ce guide est le résultat des notes que j'ai conservées. Je ne suis pas un expert sur le terrain, mais j'ai tout fait pour trouver toutes les informations pertinentes, les lire d'un œil critique et présenter clairement les points les plus importants. Veuillez commenter si quelque chose ne va pas et je ferai de mon mieux pour le corriger.
Enfin des excuses pour certains problèmes de terminologie: dans ce texte, j’utilise parfois le terme Linux à la place d’UNIX ou de POSIX. Je sais qu'ils ne sont pas identiques, mais il est très difficile de les différencier lorsqu'on aborde un sujet d'une si longue distance. Même quand ce n'est pas difficile, ça prend du temps que je n'ai pas ;-)
la source
pacman
pas le caspackman
Je vous suggère de télécharger et d'installer un ensemble minimal de MinGW et un ensemble minimal de MSYS. Le programme d'installation de MinGW vous donne une interface graphique simple pour choisir les paquets que vous voulez installer. Si tout ce que vous voulez, c'est BASH, l'installation ne prendra que quelques mégaoctets.
UPDATE: Je suis passé au MSYS2 qui est bien plus avancé et qui possède le port de ArchLinux pacman tool pour la gestion des paquets. Le programme d’installation de MSYS2 a tout ce dont vous avez besoin, plus il utilise de la menthe qui est absolument parfaite.
la source
Clink est également disponible sur GitHub . Il s’intègre à l’invite de commande Windows à l’aide de bibliothèques de hook.
De la description du projet:
(il ne fournit donc pas de fonctionnalités bash-as-a-programming-language ou d'autres goodies Unix)
J'utilise Linux au travail et je me retrouve parfois à tabuler dans cmd, ce qui n'agit pas comme je l'attends de Bash. Avec Clink, je peux surmonter certaines de ces lacunes.
Dernièrement, j'ai également découvert un projet prometteur, mais pas encore "fais-tout", appelé flinux, qui émule les fonctions du système Linux et fournit une sorte de système en plus (actuellement basé sur Arch Linux).
la source
cmd.exe
, comme décrit sur le site;)En plus des propos de faffaffaff , Git pour Windows inclut Bash et certains programmes de ligne de commande Linux courants (par exemple, Vim , sed et gawk ). C'est basé sur MSYS . La version des programmes est cependant ancienne, par exemple Bash est la version 3.1. Cygwin aurait des versions plus récentes des utilitaires.
J'utilise également ConEmu comme émulateur de terminal (principalement pour la coloration syntaxique dans Vim, les pages à onglets et le copier-coller plus facile). console2 est également un autre émulateur de terminal populaire, même si je ne l'ai pas encore essayé.
la source
C'est l'une des premières choses que je fais lorsque je configure une nouvelle machine Windows:
Une console fonctionnelle et élégante sous Windows
la source
Je viens d’essayer avec Babun , qui a intégré le Cygwin en interne et qui a bon goût pour moi:)
Le fichier à télécharger est un peu gros, environ 250 Mo. Mais l'installation est simple. il n'y a pas besoin de configurer quoi que ce soit et cela fonctionne!
la source