• 10 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 21/06/2022

Découvrez les terminaux Linux

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Plongez dans l’histoire du terminal

Dans la grande majorité des cas, les serveurs Linux que vous allez administrer sont dépourvus d'interfaces graphiques, car elles ne sont pas nécessaires pour exploiter les services hébergés sur ces machines. Pour interagir avec le système et le matériel, l'administrateur Linux utilise alors un terminal

Mais figurez-vous que, dans les années 60-70, un ordinateur occupait l'espace d'une pièce entière :

Ce schéma montre un seul ordinateur GE-645 de 1968 de General Electric qui prend l'espace d'une pièce entière.
Un seul ordinateur GE-645 de 1968 de General Electric (crédit J. H. Saltzer).

Et il est où le terminal du coup ?

Ces ordinateurs étaient tellement volumineux que les opérateurs étaient souvent situés dans une autre salle ! Ils communiquaient avec les machines et les systèmes via des équipements dédiés à cet effet : les terminaux

Avec l'évolution des technologies, le terminal s'est rapproché de la machine, mais restait tout de même un équipement dissocié :

Dennis Ritchie (à gauche) discute avec Ken Thompson (deux des trois inventeurs du système Unix). Ce dernier opère sur un terminal, un équipement branché sur le GE-645, dont une partie se distingue en face d'eux.
Dennis Ritchie et Ken Thompson face à un terminal

Imaginez un gros minitel, et vous aurez une bonne image du matériel en question. Bien entendu, les choses ne sont pas restées en l'état : les terminaux physiques ont laissé la place aux terminaux virtuels, ou émulateurs de terminaux

Appréhendez la virtualisation des terminaux de commande

L'idée, c’est de passer par le logiciel pour émuler (ou simuler) l'équipement terminal physique et toutes ses fonctionnalités.

Ce logiciel est souvent un petit programme qui se lance sur un système d'exploitation et qui permet de se connecter localement ou à distance sur le serveur à administrer. Il devient donc possible de lancer plusieurs terminaux simultanément depuis le même environnement !

Et quid de l'écran noir après le démarrage du serveur ?

Oui, cet écran assez austère que vous obtenez après le démarrage du système est aussi un terminal. On l’a nommé historiquement une console :

Interface d'une console avec du texte blanc sur fond noir.
Terminal en mode texte aussi appelé "console"

À vrai dire, la console de Linux propose 7 terminaux en mode texte, appelés aussi les terminaux physiques. Ils sont directement sur le clavier branché à l'ordinateur et disponibles à partir des combinaisons de touches : “CTRL+ALT+F1” ; “CTRL+ALT+F2” ; … jusqu’à “CTRL+ALT+F7”.

Chacune de ces combinaisons de touches propose l'émulation d'un terminal (en mode console) différent sur lequel il est possible de se connecter de manière indépendante avec un compte utilisateur différent.

Mais alors, avec quoi je travaille sous Linux ?

C’est ce que l’on va voir tout de suite !

Découvrez les principaux émulateurs de terminal

Dans la grande majorité des cas, vous serez connecté à distance sur votre serveur Linux via un émulateur de terminal. Il s’agit d’un programme lancé sur votre poste de travail Windows/Mac ou même Linux. Il gère la connexion au serveur distant avec un protocole réseau (telnet, rlogin ou SSH). En fonction du système d'exploitation de votre poste de travail, vous aurez le choix entre différents émulateurs offrant diverses fonctionnalités.

PuTTY sous Windows

PuTTY est à la fois un émulateur de terminal et un client pour différents protocoles réseau tels que telnet, SFTP, SSH, rlogin, et TCP. Il est disponible gratuitement en open source.

Terminal sous macOS

MacOS étant un dérivé de la branche historique BSD (Berkeley Software Distribution) des Unix communautaires universitaires, l'émulateur de terminal est dans un milieu natif : l'application est livrée par défaut avec le système.

xterm sous Linux

xterm, c'est un peu le papy de la famille. Ce programme émule les terminaux VT102/VT220 de DEC (Digital Equipment Corporation), les successeurs du terminal VT100 illustré un peu plus haut. Beaucoup d'émulateurs présentés dans cette section sont des variantes de xterm.

Mais y’a pas plus sympa que xterm sous Linux ?

Absolument ! Sous Linux, il existe d’autres émulateurs qu'il me paraît intéressant de citer ici :

  • GNOME propose GNOME Terminal. C’est un grand classique également qui, outre les fonctionnalités de son grand-père, est livré avec la gestion des onglets, la transparence et les fonctions de drag and drop notamment. La page de documentation sur le site gnome.org est très bien faite !

  • KDE propose l'émulateur Konsole, qui réécrit toutes les fonctionnalités de xterm, avec des ajouts assez intéressants comme, par exemple, son intégration native dans divers outils de développement tels que KDevelop, Kate, ou encore l'explorateur de fichier Dolphin.

  • xfce-terminal a été développé pour remplacer GNOME Terminal et propose les fonctionnalités essentielles, comme ses cousins mais sans dépendance à tel ou tel environnement de bureau (GNOME ou KDE par exemple). Il est donc très léger. Il est livré par défaut avec XFCE.

  • urxvt, mon terminal préféré, malgré son nom un peu nerd... Ce programme est la suite logique de xterm épuré des fonctionnalités jugées non indispensables. Donc, c'est difficile de faire plus léger ! Outre le fait de pouvoir le lancer en arrière-plan en tant que démon (ou daemon) il propose également les fonctionnalités classiques : gestion des couleurs et des onglets lorsque nécessaire notamment.

L'émulateur de terminal (ou encore plus simplement, “le terminal”) est l'outil de prédilection de l'administrateur de systèmes Unix/Linux. Il est interactif nativement avec le poste de travail qui le fait tourner et permet de :

  • se connecter avec un protocole réseau sur le serveur distant autant de fois que souhaité,

  • y compris plusieurs fois sur le même serveur avec des utilisateurs différents (dans la limite de connexions simultanées configurées sur chaque serveur).

Quel bonheur de pouvoir copier/coller directement tout un script Perl dans le bon fichier ou encore de sélectionner une partie du résultat d'une commande et de la transférer dans un document bureautique… Avec un émulateur de terminal, le pointeur, la souris, ou les raccourcis clavier classiques sont très confortables.

Comprenez les interactions entre les terminaux virtuels et les hyperviseurs de type 1 et 2

Comment sont gérés les terminaux virtuels dans un environnement Linux virtualisé ?

L'installation d'un serveur Linux sur un hyperviseur de niveau 1 ne change rien. L'installer sur un hyperviseur de niveau 2 peut en revanche créer quelques ambiguïtés.

En effet, l'hyperviseur de niveau 2 (dans l'exemple ci-dessous Oracle Virtualbox) va proposer l'affichage de la console et des terminaux physiques… de manière virtuelle :

Capture d'écran de VirtualBox et d'un terminal

En résumé

  • Le terminal est l’outil de prédilection de l’administrateur Unix/Linux

  • Lorsque vous êtes physiquement devant la machine, vous utilisez une des 7 consoles proposées par Linux

  • Pour vous connecter à distance sur votre serveur Linux, vous utilisez un émulateur de terminal

  • Il existe des émulateurs de terminal pour Windows, macOS et bien sûr Linux

Terminal, émulateur de terminal, console… Avec ces outils, vous pouvez vous connecter localement ou à distance sur le serveur Linux à administrer. Quelle que soit la version du logiciel que vous allez utiliser, il vous faudra interagir avec le système en mode texte, c'est-à-dire saisir des commandes. Ce processus est assuré au moyen d'un shell que nous allons découvrir dans le prochain chapitre.

Exemple de certificat de réussite
Exemple de certificat de réussite