Options Mon compte Next INpact
Affichage
Modifications sauvegardées
  • Smileys
  • Images
  • Commentaires par actu
  • Commentaires sous les news
  • Désactiver la version mobile
  • Taille de police
Close

Vous consultez la version mobile de ce contenu.

Cliquez ici pour être redirigé vers la version complète, ou attendez 5 secondes. Fermez ce pop-up pour continuer sur la version mobile.

5
secondes
Cmder : un émulateur de terminal portable, pratique et complet pour Windows
Applications

Cmder : un émulateur de terminal portable, pratique et complet pour Windows

cmd+++
7 min

Vous utilisez Windows et sa ligne de commandes ? L'outil intégré par Microsoft vous fait déprimer, même lorsque vous utilisez PowerShell ou le bash Ubuntu ? Cmder peut améliorer votre quotidien.

Les systèmes d'exploitation modernes, de Linux à Windows en passant par macOS, proposent une interface graphique qui permet une utilisation simple au quotidien. Mais ils sont toujours livrés avec une « console », un terme qui désigne en général une application permettant d'exécuter des commandes et des scripts quand nécessaire.

S'il est courant sous Linux de voir les utilisateurs se servir d'une console différente en fonction de leur distribution ou de leurs préférences, ce n'est pas forcément le cas sous macOS ou Windows. Pourtant, de nombreuses alternatives existent. L'une des plus complètes est Cmder, une solution open source (sous licence MIT).

Il s'agit en réalité d'un package portable regroupant ConEmu et Clink. De quoi permettre un ensemble plutôt réussi graphiquement, très personnalisable et pratique au quotidien.

Console, Terminal, Tty : d'où ça vient ?

Commençons par un peu de terminologie et d'histoire. Avant que l'informatique personnelle et le PC ne connaissent leur essor au début des années 80, les ordinateurs étaient surtout utilisés en entreprise sous forme de mainframes.

Ces machines centrales permettaient de concentrer une puissance de calcul importante pour l'époque. Ils disposaient au départ d'une interface rudimentaire connue sous le nom de console. Avec le temps, elles ont évolué vers l'utilisation des téléscripteurs (teletypes, ou tty en anglais) en complément des cartes perforées et autres bandes magnétiques.

Les débits étaient alors de l'ordre d'une dizaine de caractères par seconde, une centaine de bauds. Dans le courant des années 70, cette console est complétée par un écran avec des appareils comme le Datapoint 3300. On parle alors de terminaux vidéo (CRT) « dumb » puisqu'ils ne contiennent aucune capacité de calcul, seulement de quoi afficher et transmettre des données, avec un nombre de lignes/colonnes très limité.

Teletype Corporation ASR-33Dec VT100
Teletype ASR-33 par ArnoldReinhold (licence: CC by SA 3.0) - Dec VT100 par Jason Scott  (licence: CC by SA 2.0)

Reliés au mainframe, ils permettaient à plusieurs utilisateurs de l'exploiter simultanément. Ils ont progressivement évolué dans leur composition et leur connectique. Monoblocs à leurs débuts, leur clavier a ensuite pris son indépendance. Ils ont aussi peu à peu intégré des processeurs comme le 8080 d'Intel dans le cas du célèbre VT100 de Dec, lancé en 1978.

Il gérait notamment les séquences d'échappement de l'ANSI (X.364), permettant de déplacer le curseur à l'écran ou de fixer certains paramètres. Un standard parfois encore utilisé aujourd'hui. Le RS232, né au début des années 60, devient peu à peu le protocole privilégié pour un tel usage. On parle alors de console série.

Toutes ces évolutions donneront progressivement naissance aux ordinateurs personnels et à sa fameuse tour, reliée à un écran via un connecteur VGA et à un clavier/souris en PS/2 à partir des années 90. Vous connaissez la suite.

Ordinateur E/SOrdinateur E/S
Avant / Après - Source : Microsoft

Terminaux, shells et interpréteurs de commandes

Ces terminologies et concepts historiques sont encore utilisés aujourd'hui, notamment dans les environnements UNIX. On y trouve la console système et les différents terminaux virtuels qui font référence aux bons vieux téléscripteurs (/dev/ttyx). Le raccourci CTRL + ALT + F1 à Fx (ou gauche/droite) permet de passer de l'un à l'autre.

On peut également accéder à ces terminaux de manière distante. C'est ce qui se passe quand vous utilisez une console série sur un appareil exploitant Linux via un port RS232 classique (/dev/ttySx) ou un adaptateur USB (/dev/ttyUSBx). 

C'est dans ces terminaux que l'on exécute l'interface utilisateur nommée Shell. Il peut s'agir d'interfaces graphiques (GUI) regroupant l'ensemble des composants de base d'un OS ou d'interfaces en lignes de commandes (CLI). On parle alors d'interpréteur de commandes.

Sous Unix, Bourne-Again shell (bash) est souvent celui utilisé par défaut. Mais bien d'autres existent, comme Debian almquist shell (dash), Friendly interactive shell (fish), Korn shell (ksh) ou encore Z shell (zsh). Vous pouvez en général voir quel shell UNIX vous utilisez avec l'une des deux commandes suivantes :

echo $SHELL
ps -p $$

Windows utilise historiquement l'invite de commandes (cmd.exe). Mais depuis quelques années, Microsoft travaille également sur PowerShell, désormais disponible en open source sous licence MIT. 

Console Windows 10 ConPTY
L'architecture de la console système Windows 10, avec son API et une application permettant de lancer les différents interpréteurs

Un autre exemple est assez connu sous les différents systèmes : Secure Shell (ssh), également un protocole. Il permet un accès distant et sécurisé à une machine grâce à une couche de chiffrement et d'authentification. Il peut être utilisé avec des applications comme OpenSSH, récemment portée sous Windows par Microsoft.

Mais on peut aussi passer par des applications telles que Putty ou TTYEmulator, qui ont la particularité d'être des émulateurs de terminaux. Elles permettent ainsi un terminal en lignes de commandes dans l'interface graphique. On parle alors de pseudoterminaux, ou pty dans le monde Unix. Ils y fonctionnent dans un mode maître/esclave (pts). Une notion encore récente sous Windows, ConPTY ayant été introduit cet été.

Les émulateurs de terminaux

Ils sont en général désignés comme consoles dans les distributions Linux : gnome-terminal, konsole ou xterm. Il en existe aussi de nombreuses autres pour macOS et Windows.

C'est dans cette catégorie que rentre ConEmu qui nous intéresse aujourd'hui. Il permet ainsi de lancer différents interpréteurs de commandes sous Windows comme celui de base, PowerShell, Git Bash ou encore le shell de certaines distributions à travers le sous-système Linux de Windows 10

Complet et très personnalisable, il peut être renforcé par l'utilisation de Clink qui apporte une meilleure complétion, une persistance de l'historique et une gestion des raccourcis. Regrouper les deux est le choix de l'équipe de Cmder, qui propose son package en deux versions : avec ou sans Git pour Windows.

À la découverte de Cmder

Dans sa version de base, l'outil pèse un peu plus de 25 Mo. Il est portable et peut donc être placé sur une clé USB ou copié dans un répertoire pour être installé. Ce dernier contiendra alors tous les éléments nécessaires au bon fonctionnement de l'application, de la configuration aux alias en passant par l'historique de l'utilisateur. 

Au premier lancement, on sera un peu dépaysé par rapport à l'invite de commandes Windows, puisque la fenêtre utilise un niveau léger de transparence, des couleurs, affiche un moteur de recherche et un système d'onglets. Ce dernier permet de naviguer au sein de différentes instances, qui peuvent également être imbriquées au sein d'une même fenêtre.

Pour en créer une nouvelle, un raccourci suffit : CTRL+T. Vous devrez alors choisir l'interpréteur de commande à utiliser, plusieurs étant préconfigurés : PowerShell, Bash (via Git, Mintty ou WSL), avec ou sans droits administrateur. Des raccourcis rapides sont également proposés : MAJ + ALT + 1 à 9.

Vous pouvez aussi le lancer en tant qu'autre utilisateur et choisir la façon d'afficher l'instance : imbriquée en bas ou à droite (de manière plus ou moins large), dans un onglet ou dans une nouvelle fenêtre. On pourra ainsi surveiller le statut de différents serveurs via htop dans une même fenêtre.

Lors de nos différents essais nous n'avons pas rencontré de soucis particuliers, si ce n'est avec certaines applications via OpenSSH sur un Raspberry Pi, comme raspi-config par exemple. L'affichage se met rapidement à clignoter, sans que l'on ne puisse rien faire pour stabiliser la situation. 

cmder

Chaque onglet peut être renommé, redémarré, dupliqué, fermé ou tué. Vous pouvez modifier l'affinité du processeur (quels cœurs, quelle priorité), effectuer des recherches dans le contenu de chaque fenêtre, modifier le thème graphique utilisé, activer des fonctionnalités de débogage, etc.

Les paramètres sont également assez complets. On y trouve des options pour modifier l'interface graphique élément par élément ou par thèmes prédéfinis, des propositions d'amélioration de l'expérience à travers de petits détails comme l'interpréteur lancé par défaut, la gestion de la barre des tâches Windows, les mises à jour automatiques, etc. 

Quelques raccourcis peuvent vous faire gagner du temps. CTRL + R ouvre par exemple une recherche dans l'historique, CTRL + ALT + U remonte d'un niveau dans l'arborescence des répertoires. Les alias peuvent être définis dans /config/aliases.

Il est également possible de profiter de différentes intégrations. Cmder propose ainsi des options spécifiques pour le gestionnaire de fichiers Far Manager. L'autocomplétion vous proposera différentes commandes ou les répertoires et fichiers à la manière de ce que l'on trouve habituellement sous Linux, ce qui est plutôt appréciable.

  • Cmder Paramètres
  • Cmder Paramètres
  • Cmder Paramètres
  • Cmder Paramètres
  • Cmder Paramètres

Une application simple et pratique

Bref, Cmder renforce légèrement ConEmu qui est déjà un très bon outil de base. Si vous avez l'habitude d'utiliser la ligne de commandes et différents interpréteurs en fonction de vos besoins, il deviendra vite indispensable. 

La possibilité de disposer de différentes fenêtres, de plusieurs onglets ou d'imbriquer les instances est très utile. Là aussi on retrouvera des aspects que l'on appréciait dans des émulateurs de terminaux comme Tilix. Avec la montée en puissance de l'open source sous Windows 10 et l'intégration progressive d'outils tels que curl ou openssh, les développeurs ne pouvaient qu'espérer avoir accès à un meilleur terminal. 

À défaut d'une invite de commandes Windows qui évolue réellement, un outil comme Cmder est un must have.

Publiée le 19 novembre 2018 à 11:04


Chargement des commentaires