Tmux : le multiplexeur de terminal remplaçant de screen

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

1 Introduction

Tmux est pour des tas de bonnes raisons mieux que screen et permet donc de multiplexer des fenêtres de terminal. Ce qui est super pratique voir indispensable une fois qu'on y a goûter.

2 Installation

Command aptitude
aptitude install tmux

3 Utilisation

Pour utiliser tmux, il suffit de le lancer :

Command tmux
tmux

Tout comme screen, tmux doit utiliser une combinaison de touches pour utiliser ses fonctions internes. Par défaut c'est "Ctrl+b" (sachez que c'est modifiable) qui est utilisé.
Pour commencer, sachez que vous pouvez obtenir de l'aide très facilement (n'oubliez pas "Ctrl+b" avant de saisir une touche):

Description Touches
Obtenir de l'aide ?

3.1 Gestion des fenêtres

Vous pouvez gérer vos fenêtres de la sorte (n'oubliez pas "Ctrl+b" avant de saisir une touche) :

Description Touches
Créer une nouvelle fenêtre c
Obtenir la liste des fenêtres ouvertes w
Se déplacer sur la fenêtre suivante n
Se déplacer sur la fenêtre précédente p
Se déplacer sur l'avant dernière fenêtre utilisée l
Se déplacer sur une fenêtre en fonction de son numéro 0 1 2 3 4 5 6 7 8 9
Faire une recherche dans les buffers des fenêtres f puis "nom de recherche d'une fenêtre"
Renommer la fenêtre en cours ,
Forcer la fermeture d'une fenêtre &
Afficher l'heure t

3.2 Split

Vous pouvez splitter l'écran de plusieurs manières :

Description Touches
Découper horizontalement l'écran "
Découper verticalement l'écran %
Se déplacer sur le volet précédent {
Se déplacer sur le volet suivant } ou o
Se déplacer sur le volet correspondant à la touche ← → ↑ ↓
Obtenir les numéros des volets q
Changer l'organisation visuelle des volets [espace]
Agrandir une réduire un volet Alt+(← → ↑ ↓)
Convertir un volet d'un split en fenêtre !
Convertir une fenêtre pour intégration dans un split
* -h : horizontalement
* -s 0.0 : fenêtre 0 et volet 0
* -p 75 : occupation à 75% de la fenêtre
:joinp -h -s 0.0 -p 75

3.3 L’historique

Par défaut, Tmux ne garde que 2000 lignes d'historique. Voici comment naviguer :

Description Touches
Remonter dans l'historique ↑↑ (PageUP)
Descendre dans l'historique après être remonté ↓↓ (PageDOWN)
Sélectionner des lignes de l'historique (après PageUP) [espace] puis (↑/↓)
Copier la sélection [entrée]
Coller la sélection =

3.4 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 :

Description Touches
Détachement de session tmux d
Lister les sessions tmux s
Basculer à la session tmux suivante )
Basculer à la session tmux précédente (

Puis de s'y rattacher plus tard :

Command tmux
tmux a

Cette commande permet également à plusieurs participants de voir exactement la même chose.

4 Cheat Sheet

J'ai créer une Cheat Sheet pour ceux que ça intéresse :

5 Personnalisation

Il est possible de personnaliser tout un tas de choses (je vous laisse lire le man tellement c'est complet), et en voici ma configuration :

Configuration File .tmux.conf
# Tmux configuration
# Pierre Mavro
 
# Default shell
set -g default-command zsh
 
# Screen addict (replacing Ctrl+b by Ctrl+a)
#set -g prefix C-a
#unbind C-b
#bind C-a send-prefix
 
# Enable utf8
set -g status-utf8 on
setw -g utf8 on
 
# Same hack as screen to scroll terminal (xterm ...)
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
 
# Scrollback buffer n lines
set -g history-limit 100000
 
# Lock session after delay (in seconds)
set -g lock-after-time 720
# Use vlock to lock session (aptitude install vlock)
set -g lock-command vlock
# To unlock as a user
#vlock -a
# To unlock as root
#vlock -sn
 
# Highlight active window
set-window-option -g window-status-current-bg red
 
# Split easier keys (| for horizontal and - for vertical)
bind | split-window -h
bind - split-window -v
 
# Set window notifications when somethings new happen
setw -g monitor-activity on
set -g visual-activity on
#set -g visual-bell on
 
# Start window to number to 1 (default 0)
set -g base-index 1
 
# Automatically set window title
setw -g automatic-rename
 
# force resize local window
#setw -g aggressive-resize on
 
# Enable mouse
#set -g mouse-select-pane on
#setw -g mode-mouse on

Vous pouvez également trouver la dernière version que j'utilise sur mon git.

6 Lancer un programme avec tmux au boot

Vous avez peut être envie de lancer un weechat (client IRC) ou autre dans un tmux au lancement de votre machine. Pour faire celà, c'est facile :

Command su
su - deimos -c "tmux new-session -d 'weechat-curses'"

Donc là on demande à tmux de créer une nouvelle session via l'utilisateur deimos.

7 Ressources

http://tmux.sourceforge.net/
http://myhumblecorner.wordpress.com/2011/08/30/screen-to-tmux-a-humble-quick-start-guide/
http://blog.hawkhost.com/2010/06/28/tmux-the-terminal-multiplexer/
http://blog.hawkhost.com/2010/07/02/tmux-%E2%80%93-the-terminal-multiplexer-part-2/
http://www.dayid.org/os/notes/tm.html
http://tmux.svn.sourceforge.net/viewvc/tmux/trunk/examples/ http://linux-attitude.fr/post/configuration-de-tmux?utm_source=rss&utm_medium=rss&utm_campaign=configuration-de-tmux