
La ligne de commande et le shell
La ligne de commande ou CLI (Command Line Interface / Interpreter) décrit le mécanisme le plus fondamental par lequel un humain exploite un ordinateur: Une CLI accepte l'entrée tapée par l'opérateur et exécute les commandes demandées.
Par exemple, echo Hello écrit le texte "Hello" sur le périphérique de sortie (qui peut être un écran). dir (Cmd) ou ls (PowerShell / * NIX) répertorie le contenu du répertoire en cours, etc.
Dans les ordinateurs précédents, les commandes disponibles à l'opérateur étaient souvent relativement simples, mais les opérateurs exigeaient rapidement de plus en plus de sophistication, et la possibilité d'écrire des scripts pour automatiser des tâches banales, répétitives ou complexes. Ainsi, les processeurs de ligne de commande ont gagné en sophistication et ont évolué vers ce que l'on appelle communément les « shell » de ligne de commande.
Sous UNIX / Linux, le shell original UNIX (sh) a inspiré une pléthore de shell, dont le shell Korn (ksh), le shell C (csh) et le Bourne Shell (sh), qui a engendré le Bourne Again Shell (bash), etc.
Dans le monde de Microsoft :
- Le MS-DOS d'origine (command.com) était un shell de ligne de commande relativement simple (sinon étrange) ;
- L'invite de commande de Windows NT (cmd.exe) a été conçue pour être compatible avec les scripts command.com/batch MS-DOS hérités et a ajouté plusieurs commandes supplémentaires pour le nouveau système d'exploitation, plus puissant
- En 2006, Microsoft a publié Windows PowerShell
- PowerShell est un shell de ligne de commande basé sur un objet moderne inspiré des fonctionnalités des autres shells. Il a été construit sur et intègre la puissance du .NET CLR & .NET Framework ;
- Grâce à PowerShell, les utilisateurs Windows peuvent contrôler, scripter et automatiser pratiquement tous les aspects d'une machine Windows, d'un groupe de machines Windows, d'un réseau, de systèmes de stockage, de bases de données, etc.
- En 2017, Microsoft publie PowerShell en open-source et lui permet de fonctionner sur macOS et de nombreuses versions de Linux et BSD!
- En 2016, Microsoft a présenté Windows Subsystem for Linux (WSL)
- Celui ci active les véritables binaires Linux non modifiés pour qu'ils s'exécutent directement sous Windows 10 ;
- Les utilisateurs ont la possibilité d’installer une ou plusieurs distributions Linux depuis le Windows Store
- Les utilisateurs peuvent exécuter une ou plusieurs instances de distribution les unes à côté des autres et des applications et outils Windows existants
- WSL permet aux utilisateurs Windows d'exécuter côte à côte tous leurs outils Windows préférés et leurs outils de ligne de commande Linux sans double amorçage ou utilisation de machines virtuelles gourmandes en ressources (VM)
Évolutions de la ligne de commande
MS-DOS
Dans les premières années de l'industrie du PC, la plupart des ordinateurs fonctionnaient entièrement en tapant des commandes dans la ligne de commande, qu’il soit question de machines basées sur Unix, CP / M, DR-DOS, ou d'autres. En fin de compte, MS-DOS a pris de l'importance en tant que système d'exploitation standard de facto pour les PC IBM compatibles, en particulier dans les entreprises :
MS-DOS a été très rapidement adopté par les entreprises, grandes et petites, qui, combinées, ont créé plusieurs millions de scripts batch, dont certains sont encore utilisés aujourd'hui! Les scripts batch sont utilisés pour automatiser la configuration des machines des utilisateurs, définir / modifier les paramètres de sécurité, mettre à jour le logiciel, le code de build, etc.
Tandis que la ligne de commande est un outil puissant entre les mains de ceux qui ont la patience et la ténacité d'apprendre à tirer le meilleur parti des commandes et des outils disponibles, la plupart des utilisateurs non techniques ont eu du mal à utiliser efficacement leurs ordinateurs. La plupart n'aimait pas devoir apprendre et se souvenir de nombreuses commandes apparemment arcanes / abrégées pour que leurs ordinateurs fassent quelque chose d'utile.
Aussi, une expérience utilisateur plus conviviale et axée sur la productivité était requise.
L'interface graphique devient mainstream
Vient alors l'interface utilisateur graphique (GUI), inspiré par le travail de Xerox 'Alto.
De nombreuses interfaces graphiques concurrentes sont apparues rapidement dans Apple Lisa et Macintosh, Commodore Amiga (Workbench), Atari ST (GRI de DRI), Acorn Archimedes (Arthur / RISC OS), Sun Workstation, X11 / X Windows et bien d'autres, y compris Microsoft Windows:
Windows 1.0 est arrivé en 1985, et était fondamentalement une application MS-DOS qui fournissait un simple environnement GUI à fenêtre en mosaïque, permettant aux utilisateurs d'exécuter plusieurs applications côte à côte:
Windows 1.01 en cours d'exécution sur MS-DOS
Cependant, Microsoft a réalisé qu’il pourrait uniquement étendre l'architecture et les capacités de MS-DOS et Windows et qu’il avait donc besoin d'un nouveau système d'exploitation sur lequel il devait se baser pour construire son avenir.
Microsoft s’essaye sur Unix et devient même un leader
Lors du développement de MS-DOS, Microsoft était également occupé à fournir Xenix - le port Unix de Microsoft version 7 - à une variété d'architectures de processeurs et de machines, y compris les Z8000, 8086/80286 et 68000.
En 1984, Xenix de Microsoft était devenu la variante Unix la plus populaire au monde !
Cependant, l'éclatement de Bell Labs - le siège d'Unix par le gouvernement américain - a donné naissance à AT&T qui a commencé à vendre Unix System V aux fabricants d'ordinateurs et aux utilisateurs finaux.
Microsoft a estimé que sans leur propre système d'exploitation, leur capacité à atteindre leurs objectifs futurs serait compromise. Cela a conduit à la décision de quitter Xenix: en 1987, Microsoft a transféré la propriété de Xenix à son partenaire The Santa Cruz Operation (SCO) avec lequel Microsoft avait travaillé sur plusieurs projets de portage et d'amélioration de Xenix sur diverses plateformes.
Microsoft et IBM sur OS/2
En 1985, Microsoft a commencé à travailler avec IBM sur un nouveau système d'exploitation appelé OS / 2. OS / 2 a été conçu à l'origine pour être « un DOS plus performant » et a été conçu pour tirer parti de certains des processeurs 32 bits modernes et d'autres technologies émergeant rapidement des OEM, y compris IBM.
Cependant, l'histoire d'OS / 2 était au mieux tumultueuse. En 1990, Microsoft et IBM ont mis fin à leur collaboration. Cela a été dû à un certain nombre de facteurs, y compris les différences culturelles importantes entre les développeurs IBM et Microsoft, les défis de planification, et le succès explosif et la croissance de l'adoption de Windows 3.1. IBM a continué le développement et le support d'OS / 2 jusqu'à la fin de 2006.
En 1988, Microsoft était convaincu que son succès futur exigeait une approche plus vaste, plus audacieuse et plus ambitieuse. Une telle approche nécessiterait un nouveau système d'exploitation moderne qui soutiendrait les objectifs ambitieux de l'entreprise.
Microsoft se lance sur Windows NT
En 1988, Microsoft a embauché Dave Cutler, créateur du système d'exploitation VAX / VMS populaire et très respecté de DEC. L'objectif de Cutler est de créer un nouveau système d'exploitation moderne et indépendant de la plateforme, que Microsoft posséderait, contrôlerait et qui fonderait la plus grande partie de son avenir.
Ce nouveau système d'exploitation est devenu Windows NT - la base qui a évolué vers Windows 2000, Windows XP, Windows Vista, Windows 7, Windows 8 et Windows 10, ainsi que toutes les versions de Windows Server, Windows Phone 7+, Xbox et HoloLens !
Windows NT a été conçu dès le début pour être indépendant de la plateforme, ayant été initialement conçu pour supporter l'i860 d'Intel, puis le MIPS R3000, Intel 80386+, DEC Alpha et PowerPC. Depuis lors, la famille Windows NT OS a été portée pour prendre en charge les architectures de processeur IA64 "Itanium", x64 et ARM / ARM64, entre autres.
Windows NT a fourni une interface de ligne de commande via son application de terminal "Windows Console" et le shell "Command Prompt" (cmd.exe). Cmd a été conçu pour être aussi compatible que possible avec les scripts batch MS-DOS, pour faciliter l'adoption de la nouvelle plateforme par l'entreprise.
La puissance de PowerShell
Bien que Cmd est toujours dans Windows jusqu’à ce jour, étant donné que son but principal est de rester aussi rétrocompatible que possible, Cmd est rarement amélioré. Même "corriger les bogues" est parfois difficile si ces "bogues" existaient dans MS-DOS ou des versions antérieures de Windows !
Au début des années 2000, le shell Cmd était déjà à bout de souffle et Microsoft et ses clients avaient un besoin urgent d'une expérience de ligne de commande plus puissante et plus flexible. Ce besoin a alimenté la création de PowerShell (qui provient du "Manifeste de la Monade" de Jeffrey Snover).
PowerShell est un shell orienté objet, contrairement aux shell basés sur les fichiers / flux généralement présents dans le monde * NIX: plutôt que de gérer des flux de texte, PowerShell traite les flux d'objets, permettant aux scripteurs PowerShell d'accéder directement aux objets et de manipuler leurs propriétés, plutôt que d'avoir à écrire et maintenir beaucoup de script pour analyser et manipuler le texte (par exemple via sed / grep / awk / lex / etc.)
PowerShell a été adopté par de nombreuses plateformes Microsoft et des partenaires, notamment Windows, Exchange Server, SQL Server, Azure et bien d'autres, et fournit des commandes pour administrer et contrôler pratiquement tous les aspects d'une machine Windows et / ou de l'environnement de façon très consistante.
PowerShell Core est disponible pour Windows et différentes versions de Linux, BSD et macOS!
Windows 10, une nouvelle ère pour la ligne de commande Windows!
Au début du développement de Windows 10, Microsoft a demandé à la communauté Windows quelles fonctionnalités elle voulait dans différentes zones du système d'exploitation. La communauté des développeurs s’est montrée particulièrement claire dans ses demandes et a souhaité que Microsoft :
- apporter des améliorations majeures à la console Windows
- donner aux utilisateurs la possibilité d'exécuter des outils Linux sous Windows.
Sur la base de ces commentaires, Microsoft a formé deux nouvelles équipes:
L'équipe de la console Windows et de la ligne de commande, chargée de prendre en charge et de réorganiser l'infrastructure de la console Windows et de la ligne de commande
Une équipe chargée d'activer les binaires Linux authentiques et non modifiés pour Windows 10 - le sous-système Windows pour Linux (WSL)
Que fait la console ?
Elle s’occupe de gérer les entrées de l'utilisateur :
- elle accepte la saisie à partir de périphériques tels que le clavier, la souris, le toucher, le touchpen, etc.
- elle traduit l'entrée en caractères pertinents et / ou en séquences ANSI / VT
- elle envoie des caractères à l'application / outil / shell connecté
Elle gère les sorties de l'application :
[LIST][*]elle accepter la sortie de texte à partir d'une[/*]...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.