{{tag>administration système console terminal }}
----
{{ tmux.png?190nolink| Logo du logiciel Tmux}}
====== Tmux (terminal multiplexer) ======
**[[wpfr>Tmux]]**, à l'instar de [[:Screen]], est un multiplexeur de terminaux, outil permettant d'exploiter plusieurs terminaux au sein d'un seul et même affichage.
===== Installation =====
Tmux n'est pas installé par défaut.
Pour l'installer à l'aide d'un utilitaire graphique il suffit d'[[:tutoriel:comment_installer_un_paquet|Installer le paquets]] **[[apt>tmux]]**.\\
===== Utilisation de tmux =====
Depuis le [[:unity#tableau_de_bord_dash|tableau de bord (dash)]], un [[:terminal]] ou encore une [[:console]] saisissez la [[:commande_shell|commande]] suivante :
tmux
===== Les principaux raccourcis =====
Tmux fait appel à l'ensemble de touches + là ou Screen fait appel à + .
Les raccourcis et fonctions étant proches voire identiques à ceux de Screen, pour mieux les comprendre, reportez-vous à la page [[:Screen]].
==== Raccourcis de base ====
* + suivi de : Créer un nouveau terminal dans la session tmux active
* + suivi de <&> : Supprime la fenêtre courante
* + suivi de : Switcher entre les différents terminaux de la session
* + suivi de : Choisir un terminal spécifique (ou X est le numéro du terminal)
* + suivi de : Se détacher de la session tmux (lancer 'tmux a' pour s'y rattacher)
* + suivi de <,> : Permet de renommer un terminal
* + suivi de : Affiche la liste des terminaux disponibles
* + suivi de : Afficher l’heure dans un terminal
* + suivi de <[> : Permet de scroller ligne/ligne (avec les fleches du clavier ou la souris) ou même page/page avec PgnUP et PgnDOWN, tapez "q" pour quitter ce mode
==== Commandes dans un Split ====
* + suivi de <"> : Split horizontal du terminal courant en deux + ouverture d’un terminal dans le nouveau panel
* + suivi de <%> : Split vertical du terminal courant en deux + ouverture d’un terminal dans le nouveau panel
* + suivi de : Switcher entre les terminaux splittés
* + suivi de : Changer l’organisation visuelle des terminaux splittés
* + suivi de (flèches directionnelles) : se déplacer de terminal en terminal
* + suivi de + (flèches directionnelles) : Reduire, agrandir fenêtre du split
* + suivi de : Convertir un split en terminal seul
* + suivi de : Afficher les numéros des terminaux splittés
* + puis saisissez //:join// : permet de joindre un terminal seul dans un split
Par exemple, après avoir tapé le combo + si vous saisissez
:join -v -s 3.0 -p 50
Où :
* //-h// ou //-v// : pour horizontalement ou verticalement
* //-s 3.0// : terminal 3 et volet 0 (volet si écran splitté)
* //-p 50// : occupation à 50% de la fenêtre
Ici donc vous ajouterez verticalement, un terminal numéroté 3 et qui prendra 50% de l’espace total.
===== Utilisation à distance =====
Il peut être intéressant de se rattacher rapidement à un Tmux sur une machine distante à travers [[:ssh]].
==== Préparation ====
Pour cela, [[:tutoriel:comment_modifier_un_fichier|ouvrez ou créez le fichier]] **~/.bash_aliases** ((fichier caché dans votre //Dossier Personnel//)) pour y ajouter la ligne suivante :
function ssh_tmux() { ssh -t "$1" "tmux a || tmux"; }
==== Utilisation ====
ssh_tmux user@servername
Où :
* //user// est votre login
* //servername// l'adresse de la machine à contacter.
Si vous perdez la connexion réseau, relancer la commande et retrouvez votre terminal Tmux.
Pour plus d'informations sur ce type de connexion à distance, reportez-vous à la page [[:ssh]].
===== Configuration =====
Le fichier ~/.tmux.conf permet de rajouter quelques fonctionnalités utiles :
# Permet de définir le shell utilisé par défaut
set-option -g default-shell /usr/bin/zsh
# Permet d'utiliser la souris dans un terminal virtuel (avant la version 2.1)
setw -g mode-mouse on
set -g mouse-resize-pane on
set -g mouse-select-pane on
set -g mouse-select-window on
# Permet d'utiliser la souris dans un terminal virtuel (à partir de la version 2.1)
set -g mouse on
===== Voir aussi =====
* [[https://github.com/tmux/tmux|Le site officiel de Tmux]]
* [[http://tmuxp.readthedocs.org/en/latest/|Se créer des modèles Tmux pour un gain en production]]
* [[http://denisrosenkranz.com/tuto-introduction-a-tmux-terminal-multiplexer/|Cette page]] et [[http://denisrosenkranz.com/tuto-personnalisation-de-tmux-via-son-fichier-de-configuration/|celle-ci]] qui ont été utiles pour créer cette page.
* [[http://www.chtiland.fr/page.php?id=informatique:linux:start|Mémo tmux en français]] + commandes Linux
* [[https://tmuxcheatsheet.com/|Le site TmuxCheatSheet]]
* [[https://github.com/gpakosz/.tmux|Oh My Tmux!]]
----