Chapitre 4.1
Terminal et ligne de commande
GUI et CLI
Quand on utilise un ordinateur, on a l'habitude de cliquer sur des icônes, ouvrir des fenêtres, utiliser une souris.
C'est ce qu'on appelle une interface graphique utilisateur ou en anglais Graphical User Interface (GUI).
Les interfaces graphiques ont été popularisées auprès du grand public dans les années 1980. Avant ça, pour travailler sur un ordinateur,
on utilisait une interface en ligne de commande ou Command Line Interface (CLI).
Cette CLI prend généralement la forme d'un terminal.
C'est le logiciel qui ouvre cette fenêtre noire qu'on voit dans tous les films, dans laquelle les hackers tapent des lignes
de commande pour pirater le gouvernement en quelques secondes. On peut paraître comme des sorciers avec tous nos écrans
noirs incompréhensibles mais, crois-moi, les bases ne sont pas compliquées, c'est en général ce qu'on apprend le premier jour
en école d'informatique.
Console et terminal
Certains utilisent "console" comme synonyme de terminal.
Pour comprendre d'où viennent ces termes, il faut revenir aux années 60-70. À l'époque, les ordinateurs faisaient
la taille d'une salle à manger. Il y avait un ordinateur central, le mainframe. Les utilisateurs, par exemple des
employés situés ailleurs dans le bâtiment, étaient reliés au mainframe par une liaison réseau avec à l'extrémité
un appareil, un point de contact terminal. Un terminal est à l'origine un appareil sans capacité de calcul qui
sert d'intermédiaire entre l'utilisateur et l'ordinateur central. On en croise encore parfois dans certaines
entreprises nécessitant une haute sécurité, comme les banques.
La console est un terminal particulier. C'est le poste de travail branché directement sur le mainframe pour
l'administrer.
Dans les années 80, les ordinateurs personnels avec leurs propres capacités de calcul sont entrés dans les salons.
Les termes "terminal" et "console" ont été gardés pour désigner l'intermédiaire entre l'utilisateur et le système, sauf
que maintenant, il s'agit d'un logiciel.
De nos jours
Les tech continuent d'utiliser quotidiennement la ligne de commande :
- C'est souvent plus rapide de taper une commande que de faire 10 clics de souris. Typiquement, si je dois naviguer dans des dossiers, en CLI j'ai juste à saisir les premières lettres de leur nom et l'auto-complétion me suggère la suite. Là où en univers graphique, je dois chercher visuellement le dossier, bouger la souris puis double cliquer : c'est long et fatiguant.
- Les commandes peuvent être compilées dans des raccourcis ou des scripts automatisables. L'une des premières choses qu'un développeur fait en prenant la main sur une nouvelle machine, c'est de configurer des alias sur ses commandes fréquentes.
- Et parfois, nous n'avons pas le choix. Les machines sur lesquelles nous nous connectons à distance n'ont presque jamais d'interface graphique installée. Elle consommerait trop de ressources.
Le shell
Tous les systèmes d'exploitation basés sur Windows, Linux, macOS, etc..., disposent nativement d'une interface en ligne de commande. Chaque commande saisie est interprétée par un programme appelé un shell. Le shell comprend ce que veut l'utilisateur et transmet les actions au système d'exploitation. Il existe une multitude de shells, les plus répandus sont bash, zsh, sh et PowerShell. Chacun propose ses propres fonctionnalités et introduit par la même occasion ses spécificités. C'est-à-dire que la syntaxe des commandes peut être différente selon les shells.
Une analogie pour s'y repérer dans tout ce vocabulaire :
Le président fait un discours à l'ONU. Il parle dans un micro, son signal arrive jusqu'au traducteur puis jusqu'à son interlocuteur. Pour accéder au micro, il monte sur la tribune.
- Président : utilisateur.
- Tribune : terminal.
- Micro : interface de ligne de commande.
- Traducteur : shell.
- Interlocuteur : système d'exploitation.
