tmux ou screen : quelle différence

Les deux gardent des programmes actifs sur un serveur après votre déconnexion, et pour cela l'un ou l'autre convient. tmux a une barre d'état et des panneaux faciles par défaut, et chaque action est une commande nommée que l'on peut scripter. GNU screen est l'outil le plus ancien, et il sait aussi se connecter à des ports série. Si aucun n'est encore une habitude, tmux est le départ le plus simple. Sur un serveur qui n'a que screen, utilisez screen.

Mis à jour le . tmux 3.5a et screen 4.09.01 sous Debian 13 dans un conteneur jetable : sessions lancées en arrière-plan, listées, touches envoyées de l'extérieur et fermées. Le screen 4.00.03 fourni avec macOS 27 a aussi été vérifié.

Côte à côte

Tâchetmuxscreen
Touche de préfixeCtrl+bCtrl+a
Nouvelle session nomméetmux new -s workscreen -S work
Se détacherCtrl+b dCtrl+a d
Lister les sessionstmux lsscreen -ls
Se rattachertmux attach -t workscreen -r work
Démarrer en arrière-plantmux new -d -s workscreen -dmS work
Nouvelle fenêtreCtrl+b cCtrl+a c
Diviser haut et basCtrl+b "Ctrl+a S
Diviser côte à côteCtrl+b %Ctrl+a |
Région ou panneau suivantCtrl+b oCtrl+a Tab
Envoyer des touches depuis un scripttmux send-keys -t work 'ls' Enterscreen -S work -X stuff 'ls\n'
Barre d'état par défautOuiNon
Ports sérieNonOui, par exemple screen /dev/ttyUSB0 115200
LicenceISC et style BSDGPL

Les différences qui comptent en pratique

Les panneaux

Un panneau tmux est un shell dès l'instant où vous divisez. Une nouvelle région screen est vide, et vous devez vous y placer et appuyer sur Ctrl+a c.

La touche de préfixe

Dans un shell, Ctrl+a saute normalement au début de la ligne. Sous screen, il faut appuyer sur Ctrl+a a pour cela. tmux utilise Ctrl+b, moins souvent utilisé.

Les scripts

Les deux peuvent être pilotés de l'extérieur, comme le montre le tableau. tmux offre plus de moyens, comme tmux capture-pane -p pour lire l'écran et tmux has-session pour tester l'existence d'une session.

Disponibilité

Aucun des deux n'est sûr d'être sur un serveur minimal, mais vous pouvez installer l'un ou l'autre depuis les dépôts de paquets standard de Debian et Ubuntu :

sudo apt install tmux
sudo apt install screen

Debian 13 propose tmux 3.5a et screen 4.9.1 dans ses paquets. macOS fournit encore screen 4.00.03 de 2006, et pas de tmux. Pour le tmux actuel sur un Mac, utilisez Homebrew : brew install tmux.

Quand une session ne peut pas être rattachée

Une session encore rattachée ailleurs ne s'ouvrira pas avec un simple screen -r, qui affiche There is no screen to be resumed matching work. Utilisez screen -d -r work pour la détacher d'abord de l'autre endroit. Dans tmux, tmux attach -d -t work fait la même chose.

Pour la liste complète des commandes tmux, voir l'aide-mémoire tmux.

Pourquoi une session survit à une connexion coupée, c'est expliqué dans garder les sessions SSH actives avec tmux.

Questions

tmux est-il meilleur que screen ?

Pour garder des programmes actifs après une déconnexion, les deux conviennent. tmux est plus simple pour débuter, avec sa barre d'état, ses panneaux prêts et ses commandes scriptables. screen reste utile pour les ports série ou quand c'est le seul outil sur le serveur.

Lequel est installé par défaut ?

Aucun des deux n'est garanti sur un serveur minimal. Sur Debian et Ubuntu, installez l'un ou l'autre avec sudo apt install tmux ou sudo apt install screen.

Peut-on ouvrir une session tmux depuis deux endroits à la fois ?

Oui. tmux attach -t work rejoint une session déjà attachée ailleurs, et tmux attach -d -t work la détache d'abord de l'autre endroit.

Sources

Autres guides : Sessions et tmux

Tous les guides