Introduction

De nos jours, la plupart des étudiantes et étudiants ont appris à utiliser un ordinateur avec une interface graphique, que ce soit avec Microsoft Windows, MacOS ou plus rarement des variantes de Linux. Ces interfaces graphiques facilitent grandement la première utilisation de l’ordinateur et rendent intuitif le lancement des programmes ou la manipulation des fichiers et répertoires. Si ces interfaces graphiques sont intuitives, elles nécessitent souvent de nombreuses manipulations avec la souris et sont donc assez lentes pour des utilisations avancées.

Les interfaces graphiques ne sont pas la seule solution pour interagir avec un ordinateur. La plupart des ordinateurs disposent aussi d’une interface dite « en ligne de commande ». Dans le monde Unix, le terme anglais shell est le plus souvent utilisé pour désigner cet interface et nous ferons de même. Celle-ci permet de manipuler les fichiers et répertoires, mais aussi d’exécuter des programmes en utilisant uniquement le clavier. Grâce à cette interface en ligne de commande, il est possible de réaliser des tâches complexes en tapant quelques commandes avec des arguments bien choisis au clavier. Les systèmes d’exploitation courants disposent tous d’une interface en ligne de commande puissante. Sur Microsoft Windows, il s’agit de l’invite de commandes, aussi appelée la console. Sur MacOS et Linux, il s’agit du Terminal. Généralement, cette interface en ligne de commande apparait comme une fenêtre rectangulaire sur un fond noir comme dans la figure ci-dessous.

_images/terminal_intro.png

Outre sa rapidité d’utilisation, l’interface en ligne de commande a deux avantages majeurs par rapport à l’interface graphique. Premièrement, il est possible d’écrire de petits programmes qui combinent différentes commandes. Ces petits programmes permettent d’automatiser et de simplifier de nombreux opérations courantes et même des tâches nettement plus complexes. Deuxièment, il est possible de piloter un ordinateur distant en utilisant son interface en ligne de commande à travers une connexion Internet. C’est la technique utilisée par tous les responsables de serveurs, mais aussi par tous ceux et celles qui dovient gérer des infrastructures informatiques dans le cloud. Généralement, cette interaction à distance se fait en utilisant le programme ssh(1) qui encrypte et authentifie les données échangées à travers Internet de façon à sécuriser la connexion à distance. Nous utiliserons ssh(1) pour tous les exercices sur Inginious.

Ce document reprend des extraits du syllabus du cours de Systèmes Informatiques.