Dimanche 3 juillet 2016

Tmux (terminal multiplexer)

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

Debian ,installer avec apt-get install ou apt install (Jessie) depuis un terminal :
sudo apt-get install tmux
Archlinux/Manjaro ,installer avec pacman -S depuis un terminal :
sudo pacman -S tmux

Utilisation de tmux

Depuis le tableau de bord , un terminal ou encore une console saisissez la commande suivante :
tmux

Les principaux raccourcis

Tmux fait appel à l’ensemble de touches + là ou Screen fait appel à + .

Raccourcis de base

  • + suivi de : Créer un nouveau terminal dans la session tmux active
  • + 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 quiter ce mode

Commandes dans un Split

  • + suivi de <"> : Split vertical du terminal courant en deux + ouverture d’un terminal dans le nouveau panel
  • + suivi de <%> : Split horizontal 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) : 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 distant à travers ssh

Préparation

Pour cela, ouvrez le fichier ~/.bash_aliases ,fichier caché dans votre Dossier Personnel, pour y ajouter la ligne suivante :
function ssh_tmux() { ssh -t "$1" tmux a [[ ssh -t "$1" 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.

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 
setw -g mode-mouse on
set -g mouse-resize-pane on
set -g mouse-select-pane on
set -g mouse-select-window on

Voir aussi

Personnalisation

Création dans son “home” d’un fichier de configuration
nano ~/.tmux.conf

#Configuration de tmux
#Origine : http://denisrosenkranz.com
 
##################################
#Changements des raccourcis claviers
##################################
#On change Control +b par Control +x
#set -g prefix C-x
#unbind C-b
#bind C-x send-prefix
 
#On utilise control + flèches pour naviguer entre les terminaux
bind-key -n C-right next
bind-key -n C-left prev
 
#on utilise alt + flèches our naviguer entre les panels
bind-key -n M-left select-pane -L
bind-key -n M-right select-pane -R
bind-key -n M-up select-pane -U
bind-key -n M-down select-pane -D
 
#On change les raccourcis pour faire du split vertical et horizontal
#On utilise la touche "[" (pipe) pour faire un split vertical
bind [ split-window -h
#Et la touche "-" pour faire un split horizontal
bind - split-window -v
 
##################################
#Changements pratiques
##################################
#On permet l'utilisation de la souris pour changer de terminal et de panel
set -g mouse-select-pane on
set-option -g mouse-select-window on
set -g mode-mouse on
 
#Les fenêtres commencent par 1 et non par 0
set -g base-index 1
 
##################################
#Changements visuels
##################################
#On met les panneaux non actif en gris
set -g pane-border-fg colour244
set -g pane-border-bg default
 
#On met le panneau actif en rouge
set -g pane-active-border-fg colour124
set -g pane-active-border-bg default
 
#On met la barre de status en gris
set -g status-fg colour235
set -g status-bg colour250
set -g status-attr dim
 
# On surligne les fenêtres actives dans la barre de status en gris foncés
set-window-option -g window-status-current-fg colour15
set-window-option -g window-status-current-bg colour0

fichier de conf, les changements:

  • On peut utiliser control + flèches droites/gauches pour switcher entre les terminaux
  • On peut utiliser alt + flèches haut/bas/droites/gauches pour switcher entre les différents terminaux splittés
  • On peut utiliser la souris pour changer de terminal ou de panneau
  • On peut créer des split verticaux et horizontaux avec les touches [ et –