Je vois beaucoup de questions proches, mais les questions elles-mêmes montrent une incompréhension sous-jacente de certains termes importants.
- Pourquoi devrais-je utiliser Windows Terminal plutôt que PowerShell ?
- Je n'ai pas besoin de WSL pour bash, j'utilise Cygwin.
- Puis-je utiliser conemu avec PowerShell Core ou dois-je utiliser Windows Terminal ?
Commençons par un glossaire et clarifions d'abord quelques mots.
Terminal
Le mot Terminal vient de terminate, indiquant qu'il s'agit de l'extrémité de terminaison ou de l'extrémité "terminale" d'un processus de communication. Vous entendrez souvent "terminal stupide" lorsque vous vous référez à un environnement basé sur du texte où l'ordinateur à côté duquel vous êtes assis ne fait que prendre des entrées et afficher du texte tandis que le vrai travail se déroule à l'autre bout dans un ordinateur central ou un gros ordinateur.
TTY ou "téléimprimeur" était le premier type de terminal. Plutôt qu'un écran, vous auriez une véritable machine à écrire devant vous. Lorsque vous tapez dessus, vous voyez le texte sur une feuille de papier ET vous saisissez ce texte dans un ordinateur. Lorsque cet ordinateur répond, vous verrez que la machine à écrire tape automatiquement sur le même papier.
Lorsque nous nous référons à un terminal au sens logiciel, nous faisons référence à une version logicielle littérale d'un ATS ou d'un terminal. Le terminal Windows est cela. C'est vraiment bon pour afficher la sortie textuelle. Il peut recevoir des commentaires et les transmettre. Mais le Terminal n'est pas intelligent. Il ne traite pas réellement votre entrée, il ne regarde pas vos fichiers et ne pense .
Console
Au milieu du XXe siècle, les gens avaient un meuble dans leur salon appelé console ou meuble console. Une console dans le contexte des ordinateurs est une console ou une armoire avec un écran et un clavier combinés à l'intérieur. Mais, c'est effectivement un Terminal. Techniquement, la console est l'appareil et le terminal est maintenant le programme logiciel à l'intérieur de la console.
Dans le monde du logiciel, un Terminal et une Console sont, à toutes fins utiles, synonymes.
Coquille
Un shell est le programme auquel le terminal envoie une entrée utilisateur. Le shell génère une sortie et la renvoie au terminal pour affichage. Voici quelques exemples de Shells :
- bash, poisson, zsh, ksh, sh, tsch
- PowerShell, pwsh
- cmd, yori, 4dos, command.com
Voici un point important qui devrait avoir plus de sens maintenant que vous avez ces terminaux - Votre choix de shell ne dicte pas et ne devrait pas dicter votre choix d'application de terminal.
À part : WSL et WSL2 (le sous-système Windows pour Linux) sont un Linux local complet (ou plusieurs Linux) qui s'exécutent sur Windows 10. Ils sont complets et réels. WSL2 embarque un vrai noyau Linux et s'exécute sous Windows. Cygwin n'est PAS un Linux. Cygwin est une grande collection d'outils GNU et Open Source qui fournissent des fonctionnalités similaires à Linux sur Windows - mais ce n'est pas Linux. C'est un simulacre. Ce sont des utilitaires GNU compilés avec Win32. C'est génial, mais il est important que vous sachiez quelle est la différence. Cygwin peut vous permettre d'exécuter vos scripts shell bash, mais il n'exécutera PAS Apache, Docker ou d'autres applications binaires ELF et Linux réelles.
Votre choix de consoles Windows ?
Il existe un certain nombre de shells livrés avec Windows. Voici quelques-uns que je cours maintenant. Notez le "chrome" ou la bordure et le titre qui les entourent ? Ces shells sont tous hébergés par une console Windows héritée dont vous n'avez jamais entendu parler, appelée conhost.exe. Vous pouvez accéder à l'invite de commande, taper powershell, cmd ou ubuntu et n'importe quel nombre de shells s'exécutera. Conhost fait le travail d'entrée et de sortie.
Maintenant, oubliez que conhost existe, parce que ça craint - c'est super vieux.
Pseudo console, pseudo-terminal, PTY, pseudo-ATS (ConPTY)
Les pseudo-terminaux sont des émulateurs de terminaux ou des interfaces logicielles qui émulent des terminaux. Ils prétendent être des terminaux comme ceux ci-dessus. * Les systèmes Nix ont longtemps eu une infrastructure de pseudo-terminal (PTY) et maintenant Windows en tant que pseudo-console (ConPTY) également.
La nouvelle interface ConPTY de Windows est l'avenir des consoles et des terminaux sous Windows. Si vous choisissez une application de console tierce (non intégrée) pour Windows, assurez-vous qu'elle prend en charge ConPTY et ce sera une meilleure expérience que certaines des anciennes consoles qui utilisent le grattage d'écran ou d'autres hacks.
Retour à votre choix de consoles Windows
N'oubliez pas qu'il y a beaucoup de shells que vous pouvez utiliser dans Windows, il y a beaucoup de consoles tierces que vous pouvez utiliser si vous n'aimez pas conhost.exe (et vous ne devriez pas).
- Hyper
- ConEmu
- commande
- Console2
- ConsoleZ
- Terminus
- FluentTerminal
- ZDC
- MobaXterm
- Babun (mort)
- 4NT/jpLogiciel (payant)
- Mastic
- MinTTY
- Terminal Windows (gratuit dans le Microsoft Store)
- XTermjs :un composant Typescript qui vous permet d'intégrer des terminaux dans vos applications
- VSCode inclut un terminal
- La préversion de Visual Studio 2019 inclut un terminal
Tous ces terminaux prennent en charge TOUS les shells ci-dessus et tous les shells que j'ai manqués. Parce qu'un shell n'est pas un terminal. Choisissez celui qui vous rend heureux. J'utilise PowerShell Core et Ubuntu dans WSL2 dans le terminal Windows.
![](https://m.unixlinux.online/article/uploadfiles/202211/2022110311042613.png)
J'espère que cela aide à clarifier les choses.
Parrain : Vous souffrez d'un manque de clarté autour des bugs logiciels ? Offrez à vos clients l'expérience qu'ils méritent et attendent avec la surveillance des erreurs de Raygun.com. S'installe en quelques minutes, essayez-le dès aujourd'hui !