Multipliez les consoles sur votre écran

Publié
Commentaires Aucun

Comment afficher plusieurs consoles dans un même écran

Quand on travaille avec la ligne de commande, il arrive fréquemment qu’on ait besoin de travailler sur plusieurs “fenêtres” en même temps

C’est bien souvent le cas avec les nano-ordinateurs comme le Raspberry pi, car il faut exécuter le programme, surveiller le comportement du réseau, visualiser l’usage du CPU, vérifier l’état des GPIO, etc.
On peut toujours faire défiler les différentes consoles avec le raccourci clavier : Alt+fnct x, mais on ne voit qu’un seul écran à la fois

code.jpg

Malgré le fait que les écrans soient de plus en plus grand la console ne s’affiche qu’une fois, à moins d’être en mode graphique

Il existe un outil historique pour partager son écran en plusieurs console qui est screen
Mais nous allons aujourd’hui voir un autre outil plus récent et offrant de nouvelles fonctionnalités, il s’agit de TMUX

Pour aider quelqu’un à distance, on a souvent recours à teamviewer, qui est simple à utiliser mais qui oblige à faire passer tout ses flux par les serveurs de l’éditeur. Avec TMUX on va voir qu’il est possible d’interagir avec un utilisateur à distance

Selon Wikipédia

Tmux est un multiplexeur de terminaux libre en mode texte.
Il permet d’utiliser plusieurs terminaux virtuels dans une seule fenêtre de terminal ou une session sur un terminal distant.
Tmux peut être détaché d’une session et continuer de fonctionner en arrière-plan, on peut également s’y rattacher plus tard.
Il permet aussi de lancer, de gérer et de garder le visuel sur plusieurs processus en même temps.
Tmux a pour but d’être une alternative stable et moderne à GNU Screen, il possède d’ailleurs la majorité des fonctions de GNU Screen,
mais contrairement à celui-ci il est distribué sous licence BSD et fait partie de la base système d’OpenBSD

Par exemple ci dessous TMUX affiche 4 consoles indépendantes les unes des autres :

tmux_exemple.jpg


Comment fait on ?

code.jpg

  • L’installation est assez simple :
apt-get update
apt-get install tmux

Utilisation

utilisation en mode multi panneaux

  • on commence par lancer tmux :
tmux
  • Pour commencer, on va séparer l’écran en 2, en mode horizontal :
Ctrl+b puis " (la touche 3)

On a maintenant 2 console indépendantes qui permettent de lancer des commandes séparées

  • Pour passer d’une fenêtre à une autre :
Ctrl+b puis o

ou

Ctrl+b + flèches de directions (haut bas gauche droite suivant la console que vous voulez atteindre)
  • Pour diviser le panneau courant en 2 panneau verticaux :
Ctrl+b puis %
  • Pour afficher en surimpression le N° des panneau
Ctrl+b puis q
  • Pour se rendre directement à un panneau suivant son N°
Ctrl+b puis q puis le N°
  • Redimensionner les panneaux
Ctrl+b puis alt + flèche de direction
  • Disposition par défaut TMUX propose un agencement par défaut des panneaux. Répéter la commande plusieurs fois pour passer les différents agencement
Ctrl+b puis espace

utilisation en mode session

multi.png

L’autre force de TMUX est de fonctionner en mode session

Quel est l’avantage des sessions ?
les sessions tmux sont indépendantes de la console. Vous pouvez par exemple créer une session TMUx puis ouvrir un ssh depuis une autre machine et vous connecter à cette session TMUX

Vous pouvez par exemple lancer une tache qui est très longue depuis une session tmux, refermer votre session ssh (ou perdre la session à cause d’une coupure réseau) et reprendre la session tmux depuis une nouvelle connexion ssh sans que le travail en cours ait été perdu

  • Pour créer une session
tmux new
  • pour donner un nom à la session
tmux new -s session-admin -n "backup de ma machine"

-s session-admin remplace le N° de session par le nom session-admin
-n “backup de ma machine” est le nom qui sera affiché sur la barre des taches de TMUX

  • Maintenant que la session TMUX est en cours il est possible de la laisser s’exécuter en tache de fond, Pour cela on va explicitement demander à TMUX de se détacher de la console actuelle en tapant depuis TMUX
Ctrl+b puis d

TMUX disparaît de l’écran

Maintenant comment retrouver ses sessions TMUX et s’y connecter ?

  • Lister les sessions en cours :
tmux ls
0: 1 windows (created Thu Jul 28 13:10:59 2016) [130x42]
1: 1 windows (created Sun Jul 31 11:35:05 2016) [319x78] (attached)
session-admin: 1 windows (created Sun Jul 31 12:21:36 2016) [319x78] (attached)

On voit ici que 3 sessions sont en cours

  1. Une session lancée le 28/07
  2. Une session lancée le 31/07
  3. Une session lancée le 31/07 mais dont le N° est remplacé par session-admin

La session du 31 est attachée (attached) à une console, c’est à dire qu’un utilisateur avec une console tty visualise et utilise cette session
Ici la session du 28 tourne en tache de fond

  • Se connecter à une session
tmux attach -t x

x représente le N° ou le nom de la session

Il est intéressant de noter ici que si on attache une session sur 2 consoles différentes, alors ce que fait un utilisateur dans sa session TMUX est visible dans la console TMUX du 2eme utilisateur

Cela permet donc notamment de pouvoir faire du support ou de la formation à distance.
Imaginons par exemple une salle de cours avec chaque utilisateur sur la même session TMUX et l’enseignant qui fait ses manipulations directement dans cette session

  • Tuer une session par N°
tmux kill-session -t x

Cependant je trouve plus propre pour arrêter une session, de l’attacher et de fermer toutes les fenêtres

La page de manuel de TMUX fourni toutes les commandes et options, mais il est possible de visualiser rapidement la liste des commandes disponibles en tapant :

tmux list-commands

et la liste des touches de raccourcis de commande avec :

tmux list-keys

Duplication de commandes TMUX

Une fonctionnalité intéressante est de pouvoir taper la même commande dans chacun des panneaux
Par exemple, imaginons que nous soyons connecté sur 4 Raspberry en même temps, et que nous décidions d’installer le même package sur chacun d’eux, il suffira de taper les commandes d’installation et de configuration dans un seul panneau pour que tous les Raspberry se mette à jour en même temps

L’option magique est :

set-window-option synchronize-panes

Dans tmux, on passe en mode “modification de variable” avec

Ctrl-b :
  • pour activer la duplication de commande :
set-window-option synchronize-panes on
  • Pour désactiver la duplication de commande
set-window-option synchronize-panes on

Options de configuration :

Support de la souris régler sur “on” pour activer “off” pour désactiver

  • setw -g mode-mouse off
  • set -g mouse-select-pane off
  • set -g mouse-resize-pane off
  • set -g mouse-select-window off

Configurer le terminal par défaut en mode 256couleurs

  • set -g default-terminal “screen-256color”

Activer les alertes d’activité

  • setw -g monitor-activity on
  • set -g visual-activity on
    1. Centrer la liste des fenêtres
    2. set -g status-justify centre

Commandes sur les fenêtres

A l’intérieur d’un session tmux, il est possible d’ouvrir des fenêtres (ou onglets) (Ctrl+b puis)

  • c Crée une nouvelle fenêtre
  • w Liste les fenêtres
  • n Sélectionne la fenêtre suivante
  • p Sélectionne la fenêtre précédente
  • f Trouve une fenêtre
  • , Nomme ou renomme la fenêtre
  • & Ferme la fenêtre tmux en cours
  • ! détache un panneau dans une nouvelle fenêtre
  • ctrl+b : join-pane -s :1 insert une fenêtre (ici 1) dans celle en cours
  • ctrl+b : list-panes liste tous les panneaux de la fenêtre en cours

Commandes diverses :

  • t Affiche un pendule dans le panneau en cours
  • ? Liste les raccourcis
  • : Prompt dans la barre des tache pour tapper des commandes
  • x Ferme le panneau en cours
  • z Zoom le panneau en cours (même commande pour revenir au mode normal)

Auteur

Commentaires

Commentaires fermés pour cet article.

← Plus anciens Plus récents →