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

Ceci est une ancienne révision du document !


tmux

Description

Tmux est un multiplexeur de terminaux, cela permet de créer des sessions dans lesquels vous pouvez créer un ou plusieurs terminal virtuel.

L’interet de tmux est le fait qu’une session peut être détaché mais quelle continue à exister et à fonctionner en arrière plan et que l’on puisse s’y rattacher plus tard.

l'intérêt c'est de pouvoir faire tourner mon client irc sur un serveur qui n'est pas chez moi (sur lequel je me connecte en ssh). weechat tourne dans un tmux, dont je peux me détacher quand je me déconnecte, ainsi, mon client irc reste connecter même quand j'éteins ma machine perso

Une autre fonction pratique est le fait que plusieurs utilisateurs puissent se connecter simultanément à une même session et pouvoir voir et effectuer des actions sur les mêmes terminaux.

Par exemple le serveur linux est souvent commandé par UN SEUL terminal, pas d'interface graphique.
Grâce à tmux, on peut diviser ce terminal en plusieurs fenêtres,

Beaucoup connaissent “screen”, eh bien tmux est similaire, on peut donc diviser autant que l'on veut le terminal.

Tmux est très proche de gnu-screen, mais présente deux avantages par rapport à son aîné: son architecture client-serveur lui permet plus de flexibilité dans la gestion des sessions et sa configuration est beaucoup plus simple.

Avec Tmux vous pourrez donc facilement créer plusieurs espaces de travail pour vos différents projets, composés de plusieurs terminaux. Vous pourrez exécuter une commande longue sur un serveur distant, vous déconnecter du serveur et vous reconnecter à la session pour récupérer l'application en cours d’exécution ou encore partager une session Tmux, à laquelle un autre utilisateur va se connecter pour faire du pair-programming.

Installation

eeeuh, premièrement, on l'installe avec :

apt-get update && apt-get install tmux

après installation, on le lance 2) avec :

tmux

Pour quitter le terminal tmux faire

exit

comme dans un terminal classique.

Remarque

  1. Un terminal peut avoir plusieurs sessions de tmux
  2. Une session de tmux peut avoir plusieurs fenêtres3), et
  3. Un windows peut avoir plusieurs “panes”.

Les sessions

La gestion des sessions est quelque chose de très très pratique. En effet, il est toujours bien pratique de pouvoir quitter une session SSH et de laisser tourner des tâches qui prennent du temps ou encore être à l’abri d'une déconnexion réseaux. C'est pourquoi lorsque vous êtes dans tmux, il est possible de se détacher de son tmux :

:-)

Se détacher de la session tmux (lancer 'tmux a' pour s'y rattacher)

Pour Se détacher de la session tmux avec le clavier (après avoir lancé tmux bien sûr) Ctrl+B+D (attention ça ne ferme pas le terminal tmux, il faut taper exit pour quitter)

Se connecter

Pour se connecter à la session qui vient d'être détachée :

tmux a

eeuh, là, le nom du session est seulement 0 ou 1,….. de plus, on ne peut se connecter qu'à la session qu'on vient de quitter !

Voici par exemple une connection SSH à une session tmux et weechat lancé dans tmux: https://i.imgur.com/VRvh6vK.png

Fermer la session

Pour fermer une session, c'est la commande clavier suivante Ctrl+B

Puis valider :

 :kill-session
 

La combinaison par défaut pour appeler les raccourcis avec CTRL+b:

CTRL+b “

Split vertical du terminal courant en deux + ouverture d'un terminal dans le nouveau panel

CTRL+b %

Split horizontal du terminal courant en deux + ouverture d'un terminal dans le nouveau panel

CTRL+b o

Aller au panel suivant

CTRL+b

Aller au panel précédent

CTRL+b {flèches directionnelles}

Aller au prochain panel qui se trouve dans la direction de la flèche

CTRL+b ;

Basculer dans le dernier panel actif

CTRL+b !

Créer un nouveau terminal à partir du panel courant

CTRL+b x

Fermer le panel courant

CTRL+b c

Créer un nouveau terminal

CTRL+b n

Aller au terminal suivant

CTRL+b p

Aller au terminal précédent

CTRL+b w

Afficher la liste des terminaux disponibles

CTRL+b d

Détacher tmux

CTRL+b :

Ouvrir l'invite de commande

CTRL+b (

Aller à la session précédente

CTRL+b )

Aller à la session suivante

Astuce:

Pour pouvoir entrer une commande tmux, on tape d'abord le bind-key4).

Mais il est possible de le modifier :

Supposons qu'on veut le modifier par: Ctrl+A

Ouvrir le fichier : ~/.tmux.conf avec votre éditeur5) préféré :

nano ~/.tmux.conf

Et insérer les lignes suivantes:

 unbind C-b
 set -g prefix C-a

Sessions multiples

On peut faire en sorte qu'une session se nomme par exemple :

 super_session

Et préciser qu'on veut se connecter à “super_session”.

D'abord faire en sorte que la session se nomme super_session.
Cela se fait par

Ctrl+B+$

Et là, tout en bas, on peut voir qu'on peut éditer, et c'est là qu'on écrit le nouveau nom du session, ainsi, on a une session qui se nomme super_session.

On peut donc avoir la sortie suivante, pour la commande

tmux ls
retour de la commande
1: 1 windows (created Thu Mar  7 22:09:07 2013) [168x43]\\
   super_session: 1 windows (created Thu Mar  7 21:20:09 2013) [168x43]

Pour se connecter à la super_session: hop :

tmux a -t super_session

Et pour la session qui se nomme 1, je vous laisse deviner

Sans sortir de tmux, il est possible de basculer d'une session dans une autre avec la commande

Ctrl+B+(

Ctrl+B+)

Astuce

Supposons que dans une session vous avez une 10windows dont chaque window possède 50panes.

Pour quitter les 10 fenêtres qui sont ouvertes, soit vous faites pour chacune Ctrl+B+&

Soit vous tapez la commande suivante Ctrl+B

 kill-session

Fenêtres multiples

Une session peut contenir plusieurs fenêtres. Pour créer une fenêtre la commande est Ctrl+B+C

Là, on ne voit pas où est passée la fenêtre précédente ?
Eh bien, regardez tout en bas, sur la ligne verte il y a des informations concernant les windows qui sont créés.

Et pour fermer6) le window où vous vous trouvez, on peut utiliser Ctrl+B+&

Comme dit précédemment, mais bon…

Multiple-"pane"

Enfin, la partie que j'utilise le plus souvent :-X.

perso, j'utilise tmux pour les split de windows, ainsi on peut avoir plusieurs terminaux ouverts en même temps.

Supposons une windows où nous nous trouvons

Splittons7) cette windows verticalement Ctrl+B+

Pour splitter cette windows horizontalement Ctrl+B+%

pour passer d’un split à un autre split Ctrl+B+O (il s'agit d'un O minuscule comme ordinateur)

Pour pouvoir fermer une division8), on fait Ctrl+B+X

Des p'tits trucs

Comment savoir les sessions qui sont ouvertes ?
Avant on le pouvait, mais il faut sortir de tmux puis taper la commande:

tmux ls

Maintenant, il est possible de voir les sessions qui sont ouvertes par tmux ainsi Ctrl+B+S

Il est aussi possible de voir les numéros de panes. On ne connaît pas pour le moment ce que cela veut dire mais voici la commande clavier Ctrl+B+Q

Redimensionnement des "panes"

Si une window possède plusieurs panes, il est possible de modifier ses dimensions ainsi Ctrl+B+ | | |

ou par les commandes suivantes:

 Ctrl-b :resize-pane -U 20

Pour le redimensionner en haut de 20cellules9).

L'option -U peut aussi être modifiée en :

  1. -D pour le redimensionnement en bas,
  2. -R pour le redimensionnement a droite,
  3. -L pour le redimensionnement à gauche.

Divers liens

1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
3)
windows
4)
Ctrl+B
6)
on peut dire aussi tuer
7)
divisons
8)
on le dit “pane”
9)
20cells
doc/systeme/tmux.1588356514.txt.gz · Dernière modification: 01/05/2020 20:08 par Jean-Pierre Pinson

Pied de page des forums

Propulsé par FluxBB