La console informatique
On entendra souvent parler de console, de terminal ou encore de shell parmi les outils importants pour un développeur.
Mais finalement, quelles sont les différences entre tous ces mots ? À quoi servent-ils ? Pourquoi leur utilisation est souvent incontournable ?
Pas de panique, ce sont des questions qu’on s’est tous poser au moins une fois en tant que développeur et sur lequel je vais t’apporter des précisions.
Console VS Terminal
Avant de parler d’intérêt et d’utilisation, il est nécessaire de comprendre les fondements de ces deux mots: console et terminal.
Aujourd’hui, on ne fait quasiment plus de différence entre les deux termes: il représente tous les deux la fenêtre noir avec écriture blanche qui permet de taper des lignes de commandes peu importe le système d’exploitation sur lequel tu te trouves (MacOS, Windows ou Linux)
Mais si on remonte dans le temps, ce n’est plus du tout la même histoire !
En effet, historiquement la console, où console système, était un périphérique qui permettait la communication avec d’autres périphériques. C’était souvent un terminal dédié à l’envoi et au retour de commandes sur un serveur ou une machine car la connexion à distance n’existait pas encore.
Il était donc nécessaire de se rendre sur le serveur de manière physique pour effectuer des instructions grâce à la console (l’ensemble clavier/moniteur) à travers le terminal.
Le terminal a donc toujours eu la même fonction et définition, à savoir, être une fenêtre permettant de taper des instructions qui vont s’exécuter sur la machine cible. C’est donc la console qui a évolué avec le temps et qui a aujourd’hui plus ou moins la même fonction que le terminal.
Et le shell ?
Pour bien comprendre ce qu’est le shell, le mieux est de le comparer au monde du développement.
On peut comparer le terminal (ou la console) à l’équivalent d’un éditeur de code, à la différence prêt qu’il n’y a pas de gestion de fichiers dans le terminal et on peut ainsi comparer le shell à un compilateur ou un traducteur.
Il va donc avoir le rôle de traduire les commandes que l’on a écrit dans le terminal pour qu’elles soient totalement compréhensibles et utilisables par ton ordinateur ou ton serveur.
Que tu tapes des lignes de commandes sur Windows ou Unix/Linux, le but sera le même: interagir directement avec ton système d’exploitation.
L’importance de savoir utiliser une console
En tant que développeur, la console est un élément indispensable dans différentes situations.
Lorsque l’on souhaite se connecter à distance à un serveur pour mettre à jour un site en production, par exemple, ou encore pour voir des potentiels messages d’erreurs suite à un bug remonté par un utilisateur, il faudra savoir se connecter en SSH grâce au terminal.
Autre cas d’utilisation, lorsque l’on souhaite utiliser des outils de versionning comme Git. Même si de nombreuses interfaces graphiques permettent aujourd’hui de faciliter et lancer les commandes de versionning à notre place, il est important de connaitre leur fonctionnement car toutes ces interfaces ont leur propre limite et il n’est pas rare de tomber sur des cas où, rebasculer sur la console pour régler des conflits est nécessaire.
Enfin, peu importe le langage que l’on utilisera, il sera souvent nécessaire d’avoir une console à disposition pour pouvoir installer des dépendances, créer un nouveau projet ou encore lancer son projet pour le tester. C’est ce qu’on appelle la CLI d’un langage, ou interface de ligne de commande.
La plupart des langages viennent avec leur propre CLI, c’est à dire une liste de commandes pré-définies qui permettront de faire passer des instructions précises au système d’exploitation.
Prenons l’exemple de NodeJS qui vient avec NPM (l’outil permettant de gérer les dépendances dans l’environnement Javascript). Et bien NPM vient avec sa propre CLI !
Pour ajouter une nouvelle dépendance, on utilisera la commande:
npm install nomDeLaDépendance
Cette commande cache en réalité toute une suite d’instructions qui va télécharger et modifier des fichiers sur ton disque dur afin de rendre la dépendance utilisable dans un ou plusieurs projets.
Savoir utiliser la console est donc une compétence primordiale pour être un bon développeur, il ne sera pas rare que tu te trouves avec plusieurs consoles d’ouvertes pour jouer sur différents projets en même temps. À force, tu finiras sûrement comme beaucoup d’entre nous, à personnaliser ta console afin de rendre son utilisation encore plus agréable, facile et intuitive.