logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
atelier:chantier:terminaux-et-consoles-explications [27/04/2024 14:57]
agp91 [Les terminaux virtuels] conrection schema
atelier:chantier:terminaux-et-consoles-explications [26/05/2024 20:18] (Version actuelle)
agp91 [Explications > Les console graphiques] Ajout console framebuffer
Ligne 334: Ligne 334:
 La console Linux **n'​existe que dans l'​espace noyau et le matériel.** La console Linux **n'​existe que dans l'​espace noyau et le matériel.**
  
-<​note>​__**L'​espace noyau**__ fait référence aux anneaux ​théoriques ​de sécurité ​d'un système informatique(([[https://​fr.wikipedia.org/​wiki/​Anneau_de_protection|Anneau de protection ​(fr)(wikipedia)]])).\\+<​note>​__**L'​espace noyau**__ fait référence aux anneaux de protection ​d'un système informatique 
 +((**Les anneaux de protection** : [[https://​fr.wikipedia.org/​wiki/​Anneau_de_protection|(fr) ​Anneau de protection ​(wikipedia)]])).\\
 \\ \\
 Il y a 4 niveaux de sécurité (numérotés de 0 à 3) :\\ Il y a 4 niveaux de sécurité (numérotés de 0 à 3) :\\
Ligne 344: Ligne 345:
  
 Depuis l'​espace utilisateur,​ nous accédons au ressources du système (détenue par le noyau), que par le niveau 2.\\ Depuis l'​espace utilisateur,​ nous accédons au ressources du système (détenue par le noyau), que par le niveau 2.\\
-... Ainsi le noyau est protégé ​de tout accès direct.+... Ainsi le noyau et le matériel sont protégés ​de tout accès direct.
  
 Pour simplifier ce schéma, **les trois premiers anneaux** (0, 1 et 2),\\ Pour simplifier ce schéma, **les trois premiers anneaux** (0, 1 et 2),\\
Ligne 354: Ligne 355:
 </​note>​ </​note>​
  
-<​file ​config ​La console Linux> +<file
-                 ​+------------------------Logiciel---------------------------------------+ +La console Linux 
-                 ​+---------------------Espace-noyau--------------------------------------+ +                 ​+--------------------------Logiciel---------------------------------+ 
- ​+------------Console------------------------------------------------------------------+ ​+                 +-----------------------Espace-noyau--------------------------------+ 
- ​| ​              ​| ​            ​+-------------Noyau-------------+ ​                      ​| ​+ ​+------------Console--------------------------------------------------------------+ | 
- | +-Matériel-+ ​ |  +-------+ ​ ​|  ​+---------+ ​   +----------+ ​ ​|  ​+------------------+ | | + | +-Matériel-+ ​ |  +-------+ ​  ​+---------+ ​   +----------+ ​  ​+------------------+ | | 
- | | +-----+ ​ |  |  |Drivers| ​ ​|  ​|         ​| ​   |          |  ​|  ​|     ​Drivers ​     | | | + | | +-----+ ​ |  |  |Drivers| ​  ​|         ​| ​   |          |   ​|     ​Drivers ​     | | | 
- | | |Ecran|<​-|--|--| vidéo |<-|--|Emulateur| ​   |Discipline| ​ ​|  ​|  +------------+ ​ | | | + | | |Ecran|<​-|--|--| vidéo |<​--|Emulateur| ​   |Discipline| ​  ​|  +------------+ ​ | | | 
- | | +-----+ ​ |  |  +-------+ ​ ​|  ​|   ​de ​   |<​==>​| ​   de    |<=|==|=>​|/​dev/​console| ​ | | | + | | +-----+ ​ |  |  +-------+ ​  ​|   ​de ​   |<​==>​| ​   de    |<​==|=>​|/​dev/​console| ​ | | | 
- | |+-------+ |  |  +-------+ ​ ​|  ​|terminal |    |  ligne   ​| ​ ​|  ​|  +------------+ ​ | | | + | |+-------+ |  |  +-------+ ​  ​|terminal |    |  ligne   ​| ​  ​|  +------------+ ​ | | | 
- | ||Clavier|-|--|->​|Drivers|--|->​| ​        ​| ​   |          |  ​|  ​|       ​TTY ​       | | | + | ||Clavier|-|--|->​|Drivers|-->​| ​        ​| ​   |          |   ​|       ​TTY ​       | | | 
- | |+-------+ |  |  |Clavier| ​ ​|  ​+---------+ ​   +----------+ ​ ​|  ​+------------------+ | | + | |+-------+ |  |  |Clavier| ​  ​+---------+ ​   +----------+ ​  ​+------------------+ | | 
- | +----------+ ​ |  +-------+ ​ ​+-------------------------------+ ​                      | | + | +----------+ ​ |  +-------+ ​                                                     | | 
- ​+---------------|---------------------------------------------------------------------+ | + ​+---------------|-----------------------------------------------------------------+ | 
-                 +-----------------------------------------------------------------------++                 ​+-------------------------------------------------------------------+
 </​file>​ </​file>​
  
Ligne 375: Ligne 376:
 **Le terminal est émulé** au sein du noyau.\\ **Le terminal est émulé** au sein du noyau.\\
 Le noyau nous le présente donc comme **terminal physique**.\\ Le noyau nous le présente donc comme **terminal physique**.\\
-Son émulateur fut **nommé Linux**.\\+Son émulateur fut **nommé ​Linux**, le terminal émulé, **terminal ​Linux**.\\
 Ce qui donna **le type** ''​linux'',​ pour le différencier des autres types de terminaux. Ce qui donna **le type** ''​linux'',​ pour le différencier des autres types de terminaux.
  
Ligne 385: Ligne 386:
 >​[[https://​www.kernel.org/​doc/​Documentation/​fb/​fbcon.rst|(kernel)(en) Documentation : fbcon.txt]] (traduction) : La console framebuffer (fbcon), comme son nom l’indique,​ est une console de texte exécutée au-dessus du périphérique framebuffer. Il a les fonctionnalités de n’importe quel pilote de console de texte standard, tel que la console VGA, avec les fonctionnalités supplémentaires qui peuvent être attribuées à la nature graphique du framebuffer. >​[[https://​www.kernel.org/​doc/​Documentation/​fb/​fbcon.rst|(kernel)(en) Documentation : fbcon.txt]] (traduction) : La console framebuffer (fbcon), comme son nom l’indique,​ est une console de texte exécutée au-dessus du périphérique framebuffer. Il a les fonctionnalités de n’importe quel pilote de console de texte standard, tel que la console VGA, avec les fonctionnalités supplémentaires qui peuvent être attribuées à la nature graphique du framebuffer.
  
-Le noyau des systèmes Debian GNU/Linux récents, dispose des drivers framebuffer, par défaut.+Utilisant un 
 +**framebuffer**((**Le framebuffer** (tampon de trame en français) est un tampon mémoire d'​image. Une matrice contenant les informations de chaque pixels. Le framebuffer du noyau Linux est capable de manipuler plusieurs matrices d'​images (pages d'​écrans). [[https://​fr.wikipedia.org/​wiki/​Framebuffer|(fr) Framebuffer (wikipedia.org)]])) 
 +, la console est nommée 
 +**console framebuffer** ((**La console framebuffer**,​ est la console (système) obtenue lorsque la console Linux utilise le framebuffer comme sortie d'​affichage. [[https://​fr.wikipedia.org/​wiki/​Framebuffer_Linux|(fr) Framebuffer Linux (wikipedia.org)]])) 
 +(fbcon). 
 + 
 +<file config>​ 
 +La console framebuffer 
 +               ​+-----------------------------Logiciel--------------------------------+ 
 +               ​+---------------------------Espace-noyau------------------------------+ 
 +               ​| ​         +---+                                 ​+-----fbdev------+ ​  | 
 + ​+-Matériel-+ ​ |  +---+   | f |   ​+-------+ ​                    ​| ​ +----------+ ​ |   | 
 + | +-----+ ​ |  |  | D |   | b |   ​| ​      ​|<​====================|=>​| /dev/fb0 |  |   | 
 + | |Ecran|<​-|--|--| R |<--| d |<--| Fbcon |                     ​| ​ +----------+ ​ |   | 
 + | +-----+ ​ |  |  | I |   | e |   ​| ​      ​|<​-+ ​                 +----------------+ ​  | 
 + ​| ​         |  |  | V |   | v |   ​+-------+ ​ |          +---+   ​+-------TTY--------+ | 
 + ​|+-------+ |  |  | E |   ​+---+ ​      ​+------+-----+ ​   | D |   ​| ​ +------------+ ​ | | 
 + ​||Clavier|-|--|->​| R |-------------->​| ​ Emulateur |<​==>​| D |<​--|--|/​dev/​console| ​ | | 
 + ​|+-------+ |  |  | S |               ​| ​ terminal ​ |    | L |   ​| ​ +------------+ ​ | | 
 + ​+----------+ ​ |  +---+               ​+------------+ ​   +---+   ​+------------------+ | 
 +               ​| ​                                                                    | 
 +               ​+---------------------------------------------------------------------+ 
 +Drivers : Drivers matériel (écran clavier)  
 +Fbdev : Drivers framebuffer 
 +Fbcon : Framebuffer 
 +Emulateur terminal : Terminal Linux émulé 
 +DDL : Dicipline de ligne 
 +TTY : Drivers TTY 
 +</​file>​ 
 + 
 +Le noyau des systèmes Debian GNU/Linux récents, dispose ​par défaut, ​des drivers framebuffer.
  
 ==== Les terminaux virtuels ==== ==== Les terminaux virtuels ====
  
-Les **terminaux virtuels** sont le "​multiplexage"​ de la __console Linux__. Ils Rendent ​accessible la __console__ ​dans l'__espace utilisateur__.+Les **terminaux virtuels** sont le "​multiplexage"​ de la __console Linux__ ​ou de la __console framebuffer__.\\ 
 +Ils rendent ​accessible la console ​dans l'espace utilisateur.
  
 Linux Torvald, dans les sources du noyau à écrit : Linux Torvald, dans les sources du noyau à écrit :
 >​[[https://​git.kernel.org/​pub/​scm/​linux/​kernel/​git/​torvalds/​linux.git/​tree/​drivers/​tty/​Kconfig?​id=HEAD|(git.kernel)(en) Torvalds/​Linux/​drivers/​tty/​Kconfig]] (traduction) : Si vous dites Y ici, vous obtiendrez un support pour les terminaux avec des périphériques d’affichage et de clavier. Celles-ci sont dites « virtuelles » car vous pouvez exécuter plusieurs terminaux virtuels (également appelés consoles virtuelles) sur un terminal physique... Vous avez besoin d’au moins un terminal virtuel pour utiliser votre clavier et votre moniteur. >​[[https://​git.kernel.org/​pub/​scm/​linux/​kernel/​git/​torvalds/​linux.git/​tree/​drivers/​tty/​Kconfig?​id=HEAD|(git.kernel)(en) Torvalds/​Linux/​drivers/​tty/​Kconfig]] (traduction) : Si vous dites Y ici, vous obtiendrez un support pour les terminaux avec des périphériques d’affichage et de clavier. Celles-ci sont dites « virtuelles » car vous pouvez exécuter plusieurs terminaux virtuels (également appelés consoles virtuelles) sur un terminal physique... Vous avez besoin d’au moins un terminal virtuel pour utiliser votre clavier et votre moniteur.
  
-Virtualisant la __console__ils sont aussi nommés **consoles virtuelles**.+Virtualisant la console (Linux ou framebuffer)__ils sont aussi nommés **consoles virtuelles**__.
  
 <​note>​ <​note>​
Ligne 400: Ligne 432:
 Dans ce cas ils agissent comme une __console système__. Dans ce cas ils agissent comme une __console système__.
  
-Mais cela peut etre configuré autrement.\\+Mais cela peut être configuré autrement.\\
 \\ \\
 Linux Torvald, dans les sources du noyau à écrit : Linux Torvald, dans les sources du noyau à écrit :
Ligne 411: Ligne 443:
  
 Un système Debian GNU/Linux moderne, permet d'​utiliser 63 **terminaux virtuels**.\\ Un système Debian GNU/Linux moderne, permet d'​utiliser 63 **terminaux virtuels**.\\
-Dont sont accessibles avec la combinaison des touches ​ ''​Ctrl''​+''​Alt''​+''​F1''​ à ''​F6''​.\\ +Dont les 12 premiers ​sont accessibles avec la combinaison des touches  ​(''​Ctrl''​+)''​Alt''​+''​F1''​ à ''​F12''​.\\ 
-Et sont nommés ​respectivement ​**tty1** à **tty6**.+Et sont nommés **tty1** à **tty63**.
  
-<​file ​config Deux terminaux virtuels ​(tty1 et tty2), utilisés pour l'​exécution d'un shell chacun.>+<file
 +Les terminaux virtuels
                ​+-----------------------------Logiciel---------------------------------+                ​+-----------------------------Logiciel---------------------------------+
                ​+----------------------Espace-noyau------------------------+--Espace---+                ​+----------------------Espace-noyau------------------------+--Espace---+
Ligne 427: Ligne 460:
  ​+----------+ ​ |  +-------+ ​ +-----------------------+ ​ +---------------+ |           |  ​+----------+ ​ |  +-------+ ​ +-----------------------+ ​ +---------------+ |           |
                ​+----------------------------------------------------------+-----------+                ​+----------------------------------------------------------+-----------+
 +Alice a ouvert deux terminaux virtuels, sur son PC, démarrant chacun un shell.
 DDL : Discipline de ligne DDL : Discipline de ligne
 </​file>​ </​file>​
Ligne 432: Ligne 466:
 Les systèmes GNU/Linux sont multi-utilisateurs. Cet avantage permet d'​utiliser plusieurs **terminaux virtuels** avec, si nous le désirons, un utilisateur différent. Les systèmes GNU/Linux sont multi-utilisateurs. Cet avantage permet d'​utiliser plusieurs **terminaux virtuels** avec, si nous le désirons, un utilisateur différent.
  
-Même si plusieurs **terminaux virtuels** peuvent être ouvert, un seul uniquement, peut être au premier plan.+Même si plusieurs **terminaux virtuels** peuvent être ouvert, un seul uniquement, peut être au premier plan (affiché).
  
 Sur un __système non graphique__,​ après son démarrage, la sortie du premier **terminal virtuel** est affiché à l'​écran.\\ Sur un __système non graphique__,​ après son démarrage, la sortie du premier **terminal virtuel** est affiché à l'​écran.\\
-Le programme **agetty**, qui à ouvert le fichier périphérique ​**/dev/tty1**, sanctionne son accès, en demandant un __nom d'​utilisateur__.\\ +Le programme **agetty**, qui à ouvert le fichier périphérique ​''​/dev/tty1''​, sanctionne son accès, en demandant un __nom d'​utilisateur__.\\ 
-Pour aller plus loin, nous devons saisir notre __nom d'​utilisateur__,​ suivit de la touche ''​entrée''​.\\+Pour aller plus loin, nous devons saisir notre __nom d'​utilisateur__,​ suivit de la touche ''​Entrée''​.\\
 Une fois fait, le programme **agetty** est remplacé par le programme **login**, qui nous demande notre __mot de passe__.\\ Une fois fait, le programme **agetty** est remplacé par le programme **login**, qui nous demande notre __mot de passe__.\\
-S'il est exacte, **login** crée un processus fils, pour exécuter ​le **shell**, renseigné dans le fichier /etc/passwd (souvent bash).+S'il est exacte, **login** crée un processus fils, pour exécuter ​l**interpréteur de commande** (le shell), renseigné dans le fichier ​''​/etc/passwd'' ​(souvent bash).
  
 Voir aussi : [[doc:​systeme:​console|Console]]. Voir aussi : [[doc:​systeme:​console|Console]].
Ligne 505: Ligne 539:
  
 <file config Deux terminaux fenêtre émulés par le processus xterm> <file config Deux terminaux fenêtre émulés par le processus xterm>
-               ​+--------------------------Logiciel-------------------------+ +               +---------------------------Logiciel--------------------------+ 
-               +-Espace-noyau-------------------------+-Espace-------------+ +               ​+--------------Espace-noyau--------------+-Espace-utilisateur-
-               ​| ​               +-------------+       ​       ​utilisateur | +               ​| ​               +------Drivers PTY----+ |                    | 
-               ​| ​               | Drivers PTY |       |                    | +               ​| ​               ​|  ​+-----esclave----+ | |                    | 
-               ​| ​               ​|  ​+-------+  |  +----------+ ​  ​+-----+ ​   +               ​| ​        ​+---+  ​| ​ ​| ​ +----------+ ​ | | |     +-------+ ​     
-               ​| ​                ​| ​      |<​=|=>​|/​dev/​pts/​0|<​=>​|shell| ​   +               ​| ​        ​  ​|<=|==|=>​|/​dev/​pts/​0|<​=|=|=|====>| shell |      |  
- +-Matériel-+ ​ ​| ​ +---+  +---+  |  |esclave ​|  ​+----------+ ​  ​+-----+    |  ​ +               |         ​| ​  ​| ​ |  ​| ​ +----------+  | | |     ​+-------+ ​     | 
- ​| ​+------+  ​| ​ ​| ​  |  ​|   ​| ​ |  | (PTS) |  |  +----------+ ​  ​+-----+ ​   + +-Matériel-+  |  +---+  | |  |  |  +----------+ ​ | | |     +-------+ ​     
- ​| ​|Souris|-|--|->|  | D |<=|=>|       |<=|=>​|/​dev/​pts/​1|<​=>​|shell| ​   + ​| ​+------+  ​| ​ |   |  | D |<​=|==|=>​|/​dev/​pts/​1|<​=|=|=|====>| shell |        ​ 
- ​| ​+------ |  | |  ​| D |  |  +-------+ ​ |  +----------+ ​  ​+-----+ ​   + ​| ​|Souris|-|--|->|  | |  |  |  +----------+ ​ | | |     +-------+      | 
- ​|+-------+ |  |  | I |  | |  |  +------+ ​  ​      ​|                    | + | +------+ ​|  |  | R |  |   ​|  |  ​+----------------+ ​| |                    ​
- ​||Clavier|-|--|->​| V |  |   ​|<​=|=>​|maitre| ​  ​      ​|            +-----+ | + ​|+-------+ |  |  | I |  |   ​|  |      +------+ ​      ​| |                    | 
- ​|+-------+ |  |  | E |  +---+  |  |(PTM) |<==|=======|===========>​| ​    | | + ​||Clavier|-|--|->​| V |  |   ​|<​=|=====>​|maitre| ​      ​| |            +-----+ | 
- | +-----+ ​ |  |  | R |         ​| ​ +------+ ​  ​      ​|  +-----+ ​  ​|xterm| | + ​|+-------+ |  |  | E |  +---+  |      |(PTM) |<======|=|===========>​| ​    | | 
- | |Ecran|<​-|--|--| S |         ​+-------------+ ​      ​|  |serv.|<​=>​| ​    | | + | +-----+ ​ |  |  | R |         ​| ​     +------+ ​      ​| |  +-----+ ​  ​|xterm| | 
- | +-----+ ​ |  |  |   ​|<​==============================|=>​| ​ X  |   ​+-----+ | + | |Ecran|<​-|--|--| S |         +---------------------+ |  |serv.|<​=>​| ​    | | 
- ​+----------+ ​ |  +---+                               ​|  +-----+ ​          | + | +-----+ ​ |  |  |   |<================================|=>​| ​ X  |   ​+-----+ | 
-               ​+--------------------------------------+--------------------+ + ​+----------+ ​ |  +---+                                 ​|  +-----+ ​          | 
-DDL Discipline de ligne+               +----------------------------------------+--------------------+ 
 +Alice à ouvert deux terminaux fenêtre sur son PC. 
 +DDL Discipline de ligne
 </​file>​ </​file>​
  
Ligne 565: Ligne 601:
  
 <file config Deux accès distants au shell sur un ordinateur hôte> <file config Deux accès distants au shell sur un ordinateur hôte>
-+---------------------Logiciel-------------------+ +                          Hôte 
-+--------Espace-noyau-----------+-Espace---------+ ++-----------------Logiciel-----------------------+ 
-|        +-------------+           utilisateur ​++----------Espace-noyau----------+--Espace-------+ 
-|        | Drivers PTY |        |                ​+|        +------Drivers-PTY----+ |  utilisateur ​ 
-|        |  +------+ ​  ​       |  +---------+ ​  ​+|        |  +------+ ​          ​| |  +---------+ ​ 
-|        |  |      |<==|========|=>​|sshd@pts0| ​  ​+|        |  |      |<​==========|=|=>​|sshd@pts0|<=|==//=> Alice 
-+---+  ​|  |maître| ​  ​       |  +---------+ ​  ​+       |  |maître| ​          ​| |  +---------+ ​ 
-|   ​| ​ ​| ​ |(PTM) |   ​       |  +---------+ ​  ​++---+  ​| ​ |(PTM) |           ​| |  +---------+ ​ 
-| | |<​=|=>​| ​     |<==|========|=>​|sshd@pts1| ​  ​+| |   ​|<​=|=>​| ​     |<​==========|=|=>​|sshd@pts1|<=|==//=> Bob 
-| | |  |  +------+ ​  ​       |  +---------+ ​  ​+| |   ​|  |  +------+ ​          ​| |  +---------+ ​ 
-| | |  |  +-------+  |  +----------+ ​  ​+-----+ | +| | |  |  +--Esclave-(PTS)-+ | |               | 
-| |   ​|<=|=>|       |<=|=>​|/​dev/​pts/​0|<​=>​|shell| | +| | D |  |  ​| ​ +----------+ ​ | | |    ​+-----+ ​   
-+---+  ​|  ​|esclave|  |  +----------+ ​  ​+-----+ | +| | |<​=|==|=>​|/​dev/​pts/​0|<​=|=|=|===>​|shell| ​   
-       |  ​| (PTS) |  |  +----------+ ​  ​+-----+ | +|   |  |  |  +----------+ ​ | | |    ​+-----+ ​   |  
-        ​| ​      |<​=|=>​|/​dev/​pts/​1|<​=>​|shell| | +|   |  |  |  +----------+ ​ | | |    ​+-----+ ​   
-       ​|  ​+-------+  |  +----------+ ​  ​+-----+ | +| |   ​|<=|==|=>​|/​dev/​pts/​1|<​=|=|=|===>​|shell| ​   
-|        +-------------+ ​                      +| +---+  |  +----------------+ ​| |    ​+-----+ ​   
-+-------------------------------+----------------+ +|        +---------------------+ |               ​
-DDL : Discipline++--------------------------------+---------------+ 
 +Alice et Bob se sont connectés à distance sur l'​hôte pour ouvrir un shell. 
 +DDL : Discipline ​de ligne 
 +PTM : Drivers PTY maître 
 +PTS : Drivers PTY esclave
 </​file>​ </​file>​
  
Ligne 592: Ligne 632:
  
 <file config Accès à distance via un terminal virtuel> <file config Accès à distance via un terminal virtuel>
-   PC local    ​+---------------------------Logiciel------------------------+ ​     +----------------Logiciel-----------------+            ​PC local--------------------Logiciel----------------------+ ​     ​ 
-               +---------------Espace-noyau---------------+----------------+      +-Espace----------+----Espace-noyau-------+ +               +------------------Espace-noyau--------------+-Espace--+                     PC distant 
- ​+-Matériel-+ ​ |  +---+                                   ​| ​               |      |      utilisateur| ​                      | + +-Matériel-+  |  +---+                                     | utilis. |    ​+------------- ---Logiciel----------------+ 
- | +-----+ ​ |  |  | D |   ​+---+ ​  ​+---+ ​  ​+-------+   +---------+   +---+  |       +----------+   ​| ​        +---+   +---+ | + | +-----+ ​ |  |  | D |   ​+---+ ​  ​+---+ ​ +---------------+ ​ |         ​   +-Espace---------+-----Espace-noyau-------+ 
- | |Ecran|<​-|--|--| R |   | L |   ​| ​  ​| ​  ​      ​|<=>|/dev/tty1|<=>|ssh|<​=|==//​==|=>​|sshd@pts42|<​==|========>​|PTM|<​=>​| ​  | | + | |Ecran|<​-|--|--| R |   | L |   ​| ​  ​| ​  ​Drivers TTY  ​         ​      ​utilisateur ​                       
- | +-----+ ​ |  |  | I |<--| i |   | D |   ​|Drivers| ​  +---------+ ​  ​+---+  |      |  +----------+ ​  ​        ​+---+   | D | + | +-----+ ​ |  |  | I |<--| i |   | D |   +---------+ ​ ​| ​ |  ​+---+  |    |  +----------+ ​     +-----+ ​     ​+---+ |     ​ 
- ​|+-------+ |  |  | V |   | n |<=>| D |<​=>​| ​      ​                     ​                     ​                ​| D | | + ​|+-------+ |  |  | V |   | n |<=>| D |<=|=>|/dev/tty1|<=|==|=>|ssh|<​=|=//​=|=>​|sshd@pts42|<​=|====>​| PTM |<​====>​| D | | 
- ​||Clavier|-|--|->​| E |   | u |   | L |    ​TTY ​ ​| ​       ​| ​   Espace ​    ​| ​     | +-----+ ​  ​+-----------+ ​  ​+---+   ​| | + ​||Clavier|-|--|->​| E |   | u |   | L |  |  +---------+ ​ ​| ​ |  ​+---+  |    |  +----------+ ​ ​| ​    +-----+      | | 
- ​|+-------+ |  |  | R |-->| x |   ​| ​  ​| ​  |       ​| ​       ​|               ​| ​     | |shell|<​=>​|/​dev/​pts/​42|<​=>​|PTS|<​=>​| ​  | | + ​|+-------+ |  |  | R |-->| x |   ​| ​  ​| ​ |               ​| ​         ​       +-----+ ​   ​ +----PTS----+   ​| L | | 
- ​+----------+ ​ |  | S |   ​+---+ ​  ​+---+ ​  ​+-------+ ​       |  ​utilisateur  ​     | +-----+ ​  ​+-----------+   +---+   +---+ | + ​+----------+ ​ |  | S |   ​+---+ ​  ​+---+ ​ +---------------+ ​ ​| ​        ​| ​   |     ​|shell|<​===|=>​|/​dev/​pts/​42|<​=>​| ​  | | 
-               |  ​+---+                                    |               ​| ​     |                 ​| ​                      | +               |  ​+---+                                             ​   ​| ​    +-----+ ​   ​|  ​+-----------+ ​  +---+ | 
-               +-------------------------------------------+---------------+ ​     +-----------------+-----------------------+ ​        ​ +               ​+--------------------------------------------+---------+ ​   +----------------+------------------------+ 
-Linux : Émulateur ​de terminal ​                                                                   ​PC distant+Bob utilise ssh depuis une console virtuelle, pour se connecter et ouvrir un shell distant, sur le PC d'​Alice. 
 +Linux : L'​émulateur ​de terminal ​du noyau                                                                    
 DDL : Discipline de ligne            DDL : Discipline de ligne           
 PTM : Drivers PTY maître PTM : Drivers PTY maître
 PTS : Drivers PTY esclave PTS : Drivers PTY esclave
- 
 </​file>​ </​file>​
  
Ligne 614: Ligne 654:
  
 <file config Accès à distance via un terminal fenêtre>​ <file config Accès à distance via un terminal fenêtre>​
-   PC local    ​+-----------------------Logiciel-----------------------+ ​     +------------------Logiciel-----------------+ +            ​PC local-----------------Logiciel-----------------------+ ​   +----------------Logiciel------------------+ 
-               ​+--------Espace-noyau-------------+-Espace-------------+ ​     +-Espace----------+-----Espace-noyau--------+ +               +----------Espace-noyau---------+-Espace-------------+ ​   +-Espace----------+------Espace-noyau------+ 
- ​+-Matériel-+ ​ |  +---+                          |     ​utilisateur ​   |      |      utilisateur| ​                        ​+ ​+-Matériel-+ ​ |  +---+                        |     ​utilisateur ​   |    |      utilisateur| ​                       
- | +------+ |  |  |   ​| ​ +---+   +-----+   ​+----------+   ​+---+       ​     |  +----------+ ​  ​| ​        ​+-----+ ​  ​+---+ | + | +------+ |  |  |   ​| ​ +---+   +---PTS----+  ​| ​      +---+           |  +----------+ ​  ​| ​    ​+-----+ ​     +---+ | 
- | |Souris|-|--|->​| D |  |   |<=>| PTS |<​=>​|/​dev/​pts/​0|<​=>​|ssh|<​======|==//==|=>​|sshd@pts42|<​==|========>| PTM |<​=>​| ​  ​| | + | |Souris|-|--|->​| D |  |   ​|<​=>​|/​dev/​pts/​0|<​=|======>​|ssh|<​=======|=//​=|=>​|sshd@pts42|<​==|====>​| PTM |<====>​| ​| | 
- | +------+ |  |  | R |  | D |   +-----+ ​  +----------+ ​  ​+---+       ​     |  +----------+ ​  ​| ​        ​+-----+ ​  ​| D | | + | +------+ |  |  | R |  | D |   ​+----------+ ​ ​| ​      +---+           |  +----------+ ​  ​| ​    ​+-----+ ​     | D | | 
- ​|+-------+ |  |  | I |  | D |                   ​|                    |                      ​                  ​| | + ​|+-------+ |  |  | I |  | D |                 ​|                    |        +-----+ ​     ​+----PTS----+ ​  | | 
- ​||Clavier|-|--|->​| V |  | L |   ​+-----+ ​        ​|            +-----+ |      +-----+ ​  ​+-----------+ ​  ​+-----+ ​  | | + ​||Clavier|-|--|->​| V |  | L |     ​+-----+ ​    ​|            +-----+ |        ​|shell|<​====|=>​|/​dev/​pts/​42|<​=>​| ​  | | 
- ​|+-------+ |  |  | E |  |   ​|<​=>​| PTM |<========|===========>​| ​    | |      | |shell|<​=>​|/​dev/​pts/​42|<​=>​| PTS |<​=>​| ​  ​+ ​|+-------+ |  |  | E |  |   |<===>| PTM |<​====|===========>​| ​    | |        +-----+ ​     ​+-----------+ ​  ​+---+ 
- | +-----+ ​ |  |  | R |  +---+   ​+-----+ ​        ​|  +-----+ ​  ​|xterm| |      ​| ​+-----+   +-----------+   +-----+   +---+ | + | +-----+ ​ |  |  | R |  +---+     ​+-----+ ​    ​|  +-----+ ​  ​|xterm| |    +-----------------+------------------------+ 
- | |Ecran|<​-|--|--| S |                          |  |serv.|<​=>​| ​    ​| ​|      |                 ​| ​                        + | |Ecran|<​-|--|--| S |                        |  |serv.|<​=>​| ​    | |  
- | +-----+ ​ |  |  |   |<=========================|=>​| ​ X  |   ​+-----+ |      ​+-----------------+-------------------------+ + | +-----+ ​ |  |  |   ​|<​=======================|=>​| ​ X  |   ​+-----+ |                    PC distant 
- ​+----------+ ​ |  +---+                          |  +-----+ ​          ​| ​                     PC distant + ​+----------+ ​ |  +---+                        |  +-----+ ​          | 
-               +---------------------------------+--------------------++               ​+-------------------------------+--------------------+ 
 +Bob utilise ssh depuis un terminal fenêtre, pour se connecter et ouvrir un shell distant, sur le PC d'​Alice.
 DDL : Discipline de ligne DDL : Discipline de ligne
 PTM : Drivers PTY maître PTM : Drivers PTY maître
-PTS : Drivers PTY esclave 
 </​file>​ </​file>​
 +
 +==== Les consoles graphiques ====
 +
 +Une **consoles graphique ** est une **console système graphique**.\\
 +Elle permet de communiquer avec l'​ordinateur depuis sont démarrage.\\
 +Sa sortie est un graphique.
 +
 +La console framebuffer est une console graphique.
 +
 +----
 +
 +Les consoles graphiques qui permettent d'​utiliser les machines virtuelles (qui disposent d'un système graphique) en sont aussi l'​exemple.
 +
 +Une telle console affiche les messages du système et permet la communication entrante, depuis le démarrage de la machine virtuelle.\\
 +Une fois démarrée, elle permet d'​utiliser le système graphique.
 +
 +Les machines virtuelles sont vues comme des machines physiques distantes.\\
 +Pour qu'une console graphique (qui est locale) puisse communiquer avec une machine (virtuelle) distante, le réseau doit être utilisé.\\
 +Des projets comme
 +**VNC**((**VNC** est une suite logiciel historique, de type client/​serveur,​ qui permet l'​usage d'une console graphique connectée à système distant. Il a alors été développé un protocole réseau, qui établit, ​ la communication entre la console et la machine distante, par un flux graphique. [[https://​fr.wikipedia.org/​wiki/​VNC|(wikipedia)(fr) Virtual_Network_Computing]]))
 +ou
 +**SPICE**((**SPICE** est projet qui fourni une console graphique permettant d'​accéder à une machine virtuelle. La communication entre la console et la machine virtuelle est réalisée par un flux vidéo. [[https://​fr.wikipedia.org/​wiki/​SPICE_(protocole)|(wikipedia)(fr) SPICE (protocol)]] - [[http://​www.spice-space.org/​|(spice-space)(en)]]))
 +ont développés des protocoles réseaux, dont la console communique graphiquement avec la machine. ​
 +
 +  * **VNC** véhicule un flux graphique.
 +  * **SPICE** véhicule un flux vidéo.
 +
 +<​note>​Qui dit vidéo, dit graphisme et audio...\\
 +\\
 +LOL Pouvons-nous voir là, une //console système graphique audio// ?</​note>​
 +
 +----
 +
 +Un autre exemple de **console graphique** est celle que nous utilisons pour communiquer avec un BIOS graphique.
  
 ==== Les terminaux X ==== ==== Les terminaux X ====
  
-Un terminal X est un client léger. Un ordinateur avec peut de ressources (processeur et mémoire), parfois même sans disque.+Un **terminal X** est un client léger. Un ordinateur avec peu de ressources (processeur et mémoire), parfois même sans disque.
  
 Il dispose : Il dispose :
Ligne 645: Ligne 719:
  
 <file config Accès à un ordinateur via un terminal X> <file config Accès à un ordinateur via un terminal X>
-                                           +------------------Logiciel---------------------+ +                                                       ​Ordinateur distant 
-          ​Terminal X                       +-Espace utilisateur--+-------Espace noyau------+ +          Terminal X                    ​+------------------Logiciel--------------------+ 
- +-Matériel-+  ​+------Logiciel------+ ​     ​| ​                    ​| ​                        | + +-Matériel-+  ​+------Logiciel-----+ ​   +-Espace utilisateur--+-----Espace noyau-------+ 
- | +------+ |  |  +---+             ​         ​+-----+ ​  ​+-----------+ ​  +-----+   +---+ | + | +------+ |  |  +---+                          +-----+ ​ ​|  ​+----PTS----+   +---+ | 
- | |Souris|-|--|->​| D |             ​         ​|Shell|<​=>​|/​dev/​pts/​42|<=>| PTS |<=>| D | | + | |Souris|-|--|->​| D |                          |Shell|<=|=>​|/​dev/​pts/​42|<​=>​| D | | 
- | +------+ |  |  | R |             ​         ​+-----+ ​  ​+-----------+ ​  +-----+ ​  | D | | + | +------+ |  |  | R |                          +-----+ ​ ​|  ​+-----------+ ​  | D | | 
- ​|+-------+ |  |  | I |    +-----+ ​ |      |  +-----+ ​  ​+-----+ ​ |         ​+-----+ ​  ​| L | | + ​|+-------+ |  |  | I |   ​+-----+ ​ |    |  +-----+ ​  ​+-----+ ​ |     ​+-----+ ​     | L | | 
- ​||Clavier|-|--|->​| V |    |     ​| ​ |      |  |     ​|<​=>​|xterm|<​=|========>| PTM |<​=>​| ​  | | + ​||Clavier|-|--|->​| V |   ​|     ​| ​ |    |  |     ​|<​=>​|xterm|<​=|====>​| PTM |<====>​| ​  | | 
- ​|+-------+ |  |  | E |    |Serv.| ​ |      |  |Serv.| ​  ​+-----+ ​ |         ​+-----+ ​  ​+---+ | + ​|+-------+ |  |  | E |   ​|Serv.| ​ |    |  |Serv.| ​  ​+-----+ ​ |     ​+-----+ ​     +---+ | 
- | +-----+ ​ |  |  | R |<==>​| ​ X  |<=|==//==|=>​| ​ X  |   ​+------+ |                         ​+ | +-----+ ​ |  |  | R |<​=>​| ​ X  |<​=|=//​=|=>​| ​ X  |   ​+------+ |                        
- | |Ecran|<​-|--|--| S |    |     ​| ​ |      |  |     ​|<​=>​|Clt. X| |    ​Ordinateur ​          + | |Ecran|<​-|--|--| S |   ​|     ​| ​ |    |  |     ​|<​=>​|Clt. X| |                        
- | +-----+ ​ |  |  +---+    +-----+ ​ |      |  +-----+ ​  ​+------+ |                         ​+ | +-----+ ​ |  |  +---+   ​+-----+ ​ |    |  +-----+ ​  ​+------+ |                        
- ​+----------+ ​ +--------------------+ ​     +---------------------+-------------------------++ ​+----------+ ​ +-------------------+ ​   +---------------------+------------------------+ 
 +Depuis un terminal X, Alice se connecte à la machine distante, pour y exécuter un shell.
 DDL : Discipline de ligne DDL : Discipline de ligne
 PTM : Drivers PTY maître PTM : Drivers PTY maître
Ligne 680: Ligne 755:
 D'​autres permettent d'en afficher plusieurs à l'​écran ou dans une fenêtre. D'​autres permettent d'en afficher plusieurs à l'​écran ou dans une fenêtre.
  
-===== Tuto =====+===== T0 - Tutos, préparatifs ​=====
  
-Ce tuto propose un voyage initiatique dans le monde des terminaux GNU/​Linux.\\ +Voila le moment où nous devons expliquer ​par la pratique.
-Après la présentation de la variables d'​environnement **TERM** et de la commande **stty**, il mettra en évidences ​par la pratique ​la théorie donnée plus haut.+
  
-Dans ce tuto, nous utilisons les termes suivants : +==== Itinéraire ==== 
 + 
 +Cette suite de tutos propose un voyage initiatique dans le monde des terminaux GNU/​Linux. 
 + 
 +  * T0 - Tutos préparatifs 
 +    * Itinéraire :-) **nous sommes ici** 
 +    * Recommandations (conseil pour un meilleur confort) 
 +    * Conventions (qui est quoi et qui somme nous) 
 +    * **Sauvegarde du fichier** ''​~/​.bashrc''​ 
 +    * Usage de root 
 +  * [[#​t1-le-type-term|T1 - Le type $TERM]] 
 +    * Présentation de la variable d'​environnement TERM. 
 +    * Son usage dans le fichier ''​.bashrc''​ pour coloriser l'​invite de l'​interpréteur bash. 
 +  * [[#​t2-configuration-avec-stty|T2 - Configuration avec stty]] 
 +    * Manipulation de la configuration d'un terminal. 
 +  * [[#​t3-la-commande-tty|T3. La commande tty]] 
 +    * Retourne le chemin du fichier périphérique du terminal utilisé. 
 +    * **Modification du fichier** ''​~/​.bashrc''​ 
 +  * (A venir) [[#​t4-les-terminaux-virtuels|T4 - Les terminaux virtuels]] 
 +    * Premières approches 
 +    * Visualisation des processus et des fichiers périphériques,​ **Modification du fichier** ''​~/​.bashrc''​ 
 +    * Colorisation de l'​invite de bash, **Modification du fichier** ''​~/​.bashrc''​ 
 +    * Graphisme avec le framebuffer.  
 +  * (A venir) [[#​t5-les-terminaux-fenetres|T5 - Les terminaux fenêtres]] 
 +    * Visualisation des processus et des fichiers périphériques 
 +    * Redimensionnement du terminal 
 +    * Graphisme avec l’émulateur xterm. 
 +  * (A venir) [[#​t6-les-terminaux-connectes|T6 - Les terminaux connectés]] 
 +    * Visualisation des processus et des fichiers périphériques associés ;  
 +  * (A venir) [[#​t7-les_peripheriques-tty-et-tty0|T7 - Les périphériques tty et tty0]] 
 +    * Deux fichiers de périphérique spéciaux. 
 +  * (A venir) [[#​t8-Le_peripherique-console|T8 - Le périphérique console]] 
 +    * Le terminal du noyau. 
 +  * [[#​tx-retour-a-l-etat-initial|TX - Retour à l'​état initial]] 
 +    * Fin des tutos. Le système est remis à son état initial. 
 +    * **Restauration du fichier** ''​~/​.bashrc''​ 
 + 
 + 
 +==== Recommandations ==== 
 + 
 +Pour un confort pratique, nous conseillons de réaliser cette suite de tutos dans une machine virtuelle. 
 + 
 +Car nous allons utiliser des terminaux virtuels en ligne de commande.\\ 
 +Il nous sera alors pas possible de lire les instruction affichées sur cette page. 
 + 
 +Disposer d'une machine virtuelle, dont la console est affichée dans une fenêtre, pour exécuter les tutos.\\ 
 +Permet d'​avoir accoté, la fenêtre du navigateur qui affiche les instruction de cette page. 
 + 
 +Pour créer facilement (sans ligne de commande) une machine virtuelle, voir le tuto  ​[[https://​debian-facile.org/​doc:​autres:​vm:​virt-manager|Virt-manager : Un gestionnaire graphique de machine virtuelle]]. 
 + 
 +---- 
 + 
 +Vous devriez déjà avoir une sauvegarde de votre fichier ''​.bashrc''​.\\ 
 +LOL Mais, nous ne jouerons pas là dessus.\\ 
 + 
 +... Alors, nous le sauvegarderons tout même plus bas ^_^ 
 + 
 +==== Conventions ==== 
 +  
 +Dans cette suite de tutos, nous utilisons les termes suivants : 
  
 ^  Désignations ​ ^  Noms  ^  Périphériques (fichiers) ​ ^ ^  Désignations ​ ^  Noms  ^  Périphériques (fichiers) ​ ^
Ligne 695: Ligne 828:
 |Avec **N**, le numéro du terminal (un décimal entier).||| |Avec **N**, le numéro du terminal (un décimal entier).|||
  
-Nous utilisons ici un PC nommé **pc24**, ​disposant d'un système Debian GNU/linux 11 (Bullseye).\\+---- 
 + 
 +Nous utilisons ici d'un PC disposant d'un système Debian GNU/linux 11 (Bullseye).\\
 Le bureau graphique **xfce4** y a été installé. Le bureau graphique **xfce4** y a été installé.
  
Ligne 701: Ligne 836:
 Ici, nous utilisons l'​utilisateur **DF**, pour nous connecter. Ici, nous utilisons l'​utilisateur **DF**, pour nous connecter.
  
-Une fois connecté, nous sommes sous le bureau d'​**Xfce**.\\+Une fois connecté, nous sommes sous le bureau d'​**Xfce**. 
 Nous lançons une **fenêtre de terminal** (ici, **xfce4-treminal**).\\ Nous lançons une **fenêtre de terminal** (ici, **xfce4-treminal**).\\
 ... L'​interpréteur de commande **bash** y est exécuté. ... L'​interpréteur de commande **bash** y est exécuté.
  
 <​note>​ <​note>​
-Les fichiers de configuration de bash de l'​utilisateur **DF**, n'ont pas été modifiés. +Les fichiers de configuration de bash de l'​utilisateur **DF**, n'ont pas été modifiés.\\ 
- +Les fichiers **~/​.profile** et **~/​.bashrc**,​ sont les fichiers donnés par défaut par un système Debian 11 GNU/Linux.
-  * Les fichiers **~/​.profile** et **~/​.bashrc**,​ sont les fichiers donnés par défaut par un système Debian 11 GNU/Linux+
-  * Et le fichier **~/​.bash_aliases**,​ n'​existe pas.+
 </​note>​ </​note>​
  
-<note warning> +==== Sauvegarde ==== 
-Au court de ce tuto, nous modifierons ​les fichiers ​:\\ + 
-\\ +Plusieurs fois, nous modifierons ​notre fichier ''​.bashrc'' ​
-  * **~/​.bashrc** afin de : + 
-    * Décommenter ​la variable ​de colorisation **force_color_prompt**+  * Au tuto [[#t3-la-commande-tty|T3 - La commande tty]], pour ajouter le nom du terminal utilisé à l'​invite (le prompt) ​de l'​interpréteur de commande (bash)
-    Modifier ​la variable ​de l'interpréteur **PS1** définissant ​l'invite ​de l'​interpréteur (le **prompt**). Pour y ajouter ​le nom du terminal utilisé+  Au tuto [[#​t4-les-terminaux-virtuels|T4 - Les terminaux virtuels]], pour forcer ​la colorisation ​de l'invite pour les terminaux virtuels et nous y ajouterons deux alias qui nous faciliterons ​l'écriture ​de commande. 
-  * Nous ajouterons aussi 2 **alias** ​dans le fichier ​**~/.bash_aliases** pour nous simplifier l'écriture ​de commande.+ 
 +Ces modifications pourraient être réalisées en exécutant leurs commandes directement dans le terminal, sans modifier le fichier ''​.bashrc''​.\\ 
 +Mais elles seraient appliquées qu'​à ​l'​interpréteur ​de commande de ce terminal ​(dans l'​interface où elles ont été exécutéeset ne le seraient pas pour les autres.\\ 
 +C'est pourquoi nous plaçons nos commandes ​dans le fichier ​''​.bashrc'', qui lui, est interprété à chaque démarrage interactif ​de bash.
  
 Ainsi ces modifications seront disponibles pour tous shells bash que nous exécuterons,​ lorsque nous ouvriront un nouveau terminal. Ainsi ces modifications seront disponibles pour tous shells bash que nous exécuterons,​ lorsque nous ouvriront un nouveau terminal.
  
-Nous allons doncsauvegarder ces deux fichiers, dans le répertoire **DF-tuto**,​ que nous créons dans notre répertoire personnel.\\ +<​note>​Avant de modifier le fichier ''​~/​.bashrc''​nous devons en réaliser une sauvegarde.\\ 
-Ainsi nous pourrons **les restaurer à la fin du tuto**.+Ainsi nous pourrons restaurer son état actuelà la fin de notre voyage.\\ 
 + 
 +Nous le copions simplement ​dans le répertoire **''​~/​DF-tuto''​**, que nous créons ​préalablement, ​dans le répertoire personnel ​de notre utilisateur.
 </​note>​ </​note>​
  
Ligne 732: Ligne 871:
 # Copie du fichier .bashrc dans DF-tuto # Copie du fichier .bashrc dans DF-tuto
 cp -v .bashrc DF-tuto cp -v .bashrc DF-tuto
- 
-# Si pour votre utilisateur,​ le fichier .bash_aliases existe, copie le dans DF-tuto 
-[ -f .bash_aliases ] && cp -v .bash_aliases DF-tuto 
 </​code><​code>​ </​code><​code>​
 mkdir: création du répertoire '​DF-tuto'​ mkdir: création du répertoire '​DF-tuto'​
Ligne 741: Ligne 877:
  
 Voila qui est bien fait ;-) Voila qui est bien fait ;-)
 +
 +==== Root ====
  
 Nous utiliserons l'​utilisateur **root**((L'​utilisateur **root** est l'​administrateur de tout le système. Il a tout les droits sur tout. Il est aussi l'​utilisateur qui exécute les programmes nécessaires au fondement du système.)) via la commande **su**((La commande **[[doc:​systeme:​su|su]]** permet de changer d'​utilisateur,​ si nous en connaissons le mot de passe.)) pour exécuter des commandes sous son autorité. Nous utiliserons l'​utilisateur **root**((L'​utilisateur **root** est l'​administrateur de tout le système. Il a tout les droits sur tout. Il est aussi l'​utilisateur qui exécute les programmes nécessaires au fondement du système.)) via la commande **su**((La commande **[[doc:​systeme:​su|su]]** permet de changer d'​utilisateur,​ si nous en connaissons le mot de passe.)) pour exécuter des commandes sous son autorité.
  
-Nous installerons aussi des programmes avec la commande **apt-get**((La commande **[[doc:​systeme:​apt:​apt-get|apt-get]]** permet d'​installer,​ supprimer ou mettre à jour les programmes d'un système Debian GNU/​Linux.)) pour montrer les capacités graphique des terminaux.\\ +Le mot de passe root doit donc être connu.
-Seront installés : +
- +
-  * **Fbi** un visualiseur d'​image pour terminal virtuel. +
-  * **Imagemagick** pour convertir les formats d'​images. +
-  * Et les lecteurs multi-médias **mplayer** et **vlc**, pour lire des vidéos. +
- +
-Ces programmes seront supprimés à la fin du tuto. +
- +
-Pour installer correctement des programmes, il nous est recommandé, ​de mettre à jour le système. +
- +
-<code root> +
-apt-get update && apt-get upgrade +
-</​code>​+
  
-==== Le type $TERM ====+=====T1 - Le type $TERM =====
  
 La variable d'​environnement **TERM** contient le type du terminal utilisé. La variable d'​environnement **TERM** contient le type du terminal utilisé.
Ligne 1003: Ligne 1128:
 Sinon, il est définit sans. Sinon, il est définit sans.
  
-==== Configuration avec stty ====+===== T2 - Configuration avec stty =====
  
 La commande **stty** (set tty) permet d'​afficher ou de modifier la configuration d'un terminal. La commande **stty** (set tty) permet d'​afficher ou de modifier la configuration d'un terminal.
Ligne 1309: Ligne 1434:
 unset stty # Destruction de la variable stty unset stty # Destruction de la variable stty
 </​code>​ </​code>​
 +===== T3 - La commande tty =====
  
 +Dans un système GNU/Linux, un appareil (un périphérique) est caractérisé (accessible),​ par __un fichier spécial__, aussi nommé __fichier de périphérique__ (ou plus communément,​ __périphérique__).\\
 +Ces fichiers sont placés dans le répertoire ''/​dev''​ et ses sous-répertoires (dev pour device en anglais, appareil en français).
 +
 +**__Les périphériques des terminaux virtuels__**,​\\
 +Sont nommés **tty<​n>​** (avec <n>, un entier décimal, de 1 à 63).\\
 +Ils sont situés dans le répertoire ''/​dev''​ (''/​dev/​tty<​n>''​).\\
 +Par exemples : ''/​dev/​tty1'',​ ''/​dev/​tty2'',​ etc.
 +
 +<​note>​
 +Le fichier périphérique ''/​dev/​tty0''​ est particulier,​ il caractérise toujours le terminal virtuel qui est affiché.\\
 +(Actuellement le 7em, puisque nous affichons l'​interface graphique.)\\
 +Son usage est présenté dans la section [[#​t7_-_les_peripheriques_tty_et_tty0|T7 - Les périphériques tty et tty0]].
 +</​note>​
 +
 +**__Les périphériques des terminaux fenêtre ou connecté (les pseudo-terminaux)__**\\
 +Sont nommés **pts<​n>​** (avec <n> un entier décimal).\\
 +Leurs fichiers sont numérotés dans le répertoire ''/​dev/​pts''​ (''/​dev/​pts/<​n>''​).\\
 +Par exemples : ''/​dev/​pts/​0'',​ ''/​dev/​pts/​1'',​ etc.
 +
 +__**La commande tty**__,
 +
 +Retourne le chemin du fichier périphérique du terminal utilisé par la commande.
 +
 +<​note>​
 +La commande **tty**, ne doit pas être confondue avec le périphérique ''/​dev/​tty''​.\\
 +\\
 +Le fichier périphérique ''/​dev/​tty''​ est particulier,​ il caractérise toujours le terminal utilisé, qu'il soit virtuel, fenêtre ou connecté.\\
 +Son usage est présenté dans la section [[#​t7_-_les_peripheriques_tty_et_tty0|T7 - Les périphériques tty et tty0]].\\
 +\\
 +Le chemin de la commande **tty** est ''/​usr/​bin/​tty''​.\\
 +
 +<code user>
 +which tty
 +</​code><​code>​
 +/​usr/​bin/​tty
 +</​code>​
 +</​note>​
 +
 +<code user>
 +tty
 +</​code><​code>​
 +/dev/pts/0
 +</​code>​
 +
 +La commande nous indique que le terminal que nous utilisons, est le périphérique ''/​dev/​pts/​0''​.\\
 +Le chemin retourné montre que les terminaux fenêtres sont des pseudo-terminaux.
 +
 +Nous venons de redémarrer ; Avons  ouvert qu'un seul terminal fenêtre ; Et aucun PC distant n'est connecté au notre.\\
 +Alors le système n'a créé qu'un seul pseudo-terminal (celui que notre terminal utilise). Il l'a numéroté (et nommé) 0, le premier nombre disponible.\\
 +Mais, nous y reviendrons...
 +
 +----
 +
 +<note warning>
 +Par la suite, nous allons ouvrir plusieurs terminaux.\\
 +Pour mieux nous situer, nous allons insérer dans l'​invite de notre interpréteur de commande (le prompt), le nom du périphérique utilisé.\\
 +\\
 +L'​invite (le prompt) affichée, est le retour de l'​interprétation du contenu de la variable **PS1**, définit dans le fichier ''​~/​.bashrc''​.\\
 +\\
 +Nous pourrions modifier cette variable directement dans notre terminal, mais la modification ne serait pas disponible pour les autres terminaux que nous ouvrirons.\\
 +Pour qu'​elle le soit, elle doit être écrite dans le fichier ''​~/​.bashrc''​.\\
 +\\
 +**__Rappel__ :** A la section [[#​t0-tutos-preparatifs|T0 - Tutos, préparatifs]],​ nous avons sauvegardé le fichier ''​~/​.bashrc''​ afin de pouvoir le restaurer plus tard.
 +</​note>​
 +
 +Nous n'​allons pas insérer le chemin complet du périphérique dans l'​invite,​ mais son nom simplifié :
 +
 +  - La commande **tty** permet de récupérer le chemin du périphérique.
 +  - De ce chemin (''/​dev/​tty<​n>''​ ou ''/​dev/​pts/<​n>''​),​ est formé le nom du périphérique (tty<​n>​ ou pts<​n>​).\\
 +  - Puis, le nom obtenu est passé en majuscule, en étant ajouté au début du contenu de la variable PS1.
 +
 +<​note>​
 +L'​opérateur de redirection **>>​** permet d'​ajouter la sortie standard à la fin d'un fichier.\\
 +\\
 +Placer entre guillemets, simple ou double, une chaîne de caractère peut s'​étendre sur plusieurs lignes.\\
 +\\
 +Nous utilisons ici, les guillemets simples, pour que la chaîne de caractère ne soit pas interprété par bash.
 +</​note>​
 +
 +<code user>
 +echo '
 +# Insère le nom du terminal dans PS1
 +n=$(tty) # Récupère le chemin du périphérique dans la variable n
 +n=${n#/​dev/​} #​ Supprime /dev/ du chemin
 +n=${n/​\//​} #​ Supprime le / restant (si pseudo-terminal)
 +PS1=${n^^}:​$PS1 #​ Ajoute le nom en majuscule à PS1
 +unset n # Destruction de n
 +' >> ~/.bashrc
 +</​code>​
 +
 +Pour que cette modification soit prise en compte, il est nécessaire de réinterpréter le fichier ''​~/​.bashrc'',​ avec la commande **.** (point) ou **source**.
 +
 +<​note>​
 +La commande **.** (synonyme de **source**) est une commande interne de l'​interpréteur bash.\\
 +\\
 +Elle ne doit pas être confondue avec l'​usage du point dans les chemins de systèmes de fichiers :\\
 +\\
 +  * Le point seul **.**  ou **./** en début du chemin, indiquent le répertoire courant.
 +  * Un nom de fichier (ou de dossier) débutant par un point (**.<​nom>​**) , indique que cet élément est caché (par exemple ''​.bashrc''​).
 +</​note>​
 +
 +<code user>
 +. ~/.bashrc
 +</​code><​code>​
 +PTS0:​DF@pc24:​~
 +</​code>​
 +
 +Yes ! Maintenant, nous ne pouvons plus nous perdre.\\
 Nous allons maintenant nous intéresser aux terminaux virtuels. Nous allons maintenant nous intéresser aux terminaux virtuels.
  
 +===== TX - Retour à l'​état initial =====
 +
 +... Nous arrivons à la fin de cette suite de tutos.\\
 +Nous remettons ici le système, tel qu'il était lorsque nous avons commencé notre voyage.
 +
 +Le fichier ''​~/​.bashrc''​ **doit être restauré**.
 +
 +<code user>cd
 +cp -v ~/​DF-tuto/​.bashrc .
 +</​code><​code>​
 +'​DF-tuto/​.bashrc'​ -> '​./​.bashrc'​
 +</​code>​
 +
 +Et le répertoire ''​~/​.DF-tuto''​ **supprimé**.
 +
 +<code user>rm -vrf ~/DF-tuto
 +</​code><​code>​
 +'​DF-tuto/​.bashrc'​ supprimé
 +répertoire '​DF-tuto'​ supprimé
 +</​code>​
 +
 +Voila notre voyage est terminé.\\
 +La compagnie Debian-Facile vous remercie,\\
 +Et espère que vous avez réalisé un bon voyage.
 +8-)
atelier/chantier/terminaux-et-consoles-explications.1714222658.txt.gz · Dernière modification: 27/04/2024 14:57 par agp91

Pied de page des forums

Propulsé par FluxBB