Terminal, c'est quoi cette bête là

3 minutes
console terminal shell bash

Le terminal est un outil très puissant, mais bien souvent laissé de côté car jugé comliqué.
À travers quelques définitions, nous allons nous approcher doucement de la bête pour essayer de la cerner.
Rien de bien compliqué, juste un peu de théorie.

Pour comprendre ce qu'est un terminal, il faut se plonger dans l'histoire (mais pas si loin que ça, rassurez-vous !)

Avant les année 80, l'ère de la micro-informatique n'étant pas encore arrivé, les ordinateurs étaient très imposant (une pièce dédiée), et les périphériques étaient dans une autre pièce. Les terminaux permettaient à des utilisateurs d'interagir avec l'ordinateur. L'exemple le plus connu est le VT100. Chaque utilisateur avait son terminal relié à l'ordinateur central.

VT100

La console était un terminal de commande, permettant d'effectuer les opérations de maintenance et de contrôle.

Aujourd'hui, les choses ont pas mal évoluées, et les définitions aussi.
Plusieurs notions sont importante :

  • shell: c'est l'interface avec le système d'exploitation (OS), l'IHM (interface humain machine). Il suffit d'entrer des lignes de commandes pour interagir avec l'OS. Il est possible de lancer des programmes, supprimer, éditer, créer et changer de place les fichiers, etc... En fait tout ce que nous effectuons à travers l'interface graphique de l'OS, nous pouvons le faire en ligne de commande grâce au shell. Le shell n'est jamais utilisé tel quel, il doit être utilisé par un terminal. (exemples de shell : bash, dash, etc...)
  • terminal: un terminal utilise le shell pour interagir avec l'OS. Aujourd'hui, ils sont tous virtuels. D'un point de vue de l'OS, tous les utilisateurs sont connectés à travers un terminal.
  • console: la console d'aujourd'hui est très proche du terminal. Il s'agit donc du terminal utilisé par l'utilisateur.
  • émulateur de terminal: comme son nom l'indique, il s'agit d'un logiciel émulant un ou plusieurs terminaux.

Terminal linux

Pour plus de compréhension, l'image ci-dessous illustre les définitions ci-dessus :

  • 1 : il s'agit de l'émulateur de terminal (ici GNOME Terminal)
  • 2 : c'est le terminal
  • 3 : on peut dire qu'il s'agit du shell
  • 4 : un vache en ASCII art ?!

Il en existe énormément : gnome-terminal, konsole, terminator, guake, etc...
Il apporte bien souvent son lot de configuration (shell utilisé, couleur d'arrière plan, transparence, profils utilisateur, etc...)

Les terminaux sont haut-niveau par rapport au système d'exploitation.
Il faut qu'un certain nombre de composants soient lancés pour pouvoir lancer un terminal.
Celà est transparent pour l'utilisateur évidemment, au démarrage du système, l'ordonnanceur va se charger de lancer ce qu'il faut dans le bon ordre.
Une fois que tout est chargé, notamment l'interface graphique, nous pourrons utiliser un terminal.

Les terminaux spéciaux « tty » (abréviation de teletype) sont ce qui se rapproche le plus de la console.
Il en existe 6 : tty1, tty2, tty3, tty4, tty5, tty6.
Ils sont servis directement par le système d'exploitation, contrairement aux terminaux de l'émulateur de terminal reposant tous sur un seul « tty ».
Il est possible d'y accéder avec le raccourci clavier « CTRL + ALT + Fn » où n est est le numéro du tty choisi.
Pour revenir à l'interface graphique il suffit d'utiliser le raccourci « CTRL + ALT + F7 ».

Sur les systèmes Debian et ses dérivés (ubuntu), le shell pour l'émulateur de terminal et l'exécution de scripts est bash.
Pour savoir quel shell est utilisé par défaut dans votre émulateur de terminal, lancez un nouveau terminal et tapez :

$ echo $SHELL

Ce qu'il faut retenir c'est que l'émulateur de terminal utilise un terminal, qui utilise le shell.
À travers le terminal, on entre des commandes pour interagir avec l'OS.

Cet article est le premier d'une série de 3 articles pour présenter le terminal et son utilisation. Vous pouvez consulter les autres : Terminal, les bases de l'utilisation, Terminal, personnalisation

https://fr.wikipedia.org/wiki/VT100
http://tldp.org/HOWTO/Text-Terminal-HOWTO.html
https://doc.ubuntu-fr.org/terminal
https://fr.wikipedia.org/wiki/Terminal_informatique

http://princessleia.com/plug/2008-JP_bash_vs_dash.pdf : un pdf à propos de la différence entre bash et dash
http://tldp.org/HOWTO/Text-Terminal-HOWTO.html : site de The Linux Documentation Project : une bible sur linux

Blog Comments powered by Disqus.

Article précédent Article suivant