Côte à côte
| Tâche | tmux | screen |
|---|---|---|
| Touche de préfixe | Ctrl+b | Ctrl+a |
| Nouvelle session nommée | tmux new -s work | screen -S work |
| Se détacher | Ctrl+b d | Ctrl+a d |
| Lister les sessions | tmux ls | screen -ls |
| Se rattacher | tmux attach -t work | screen -r work |
| Démarrer en arrière-plan | tmux new -d -s work | screen -dmS work |
| Nouvelle fenêtre | Ctrl+b c | Ctrl+a c |
| Diviser haut et bas | Ctrl+b " | Ctrl+a S |
| Diviser côte à côte | Ctrl+b % | Ctrl+a | |
| Région ou panneau suivant | Ctrl+b o | Ctrl+a Tab |
| Envoyer des touches depuis un script | tmux send-keys -t work 'ls' Enter | screen -S work -X stuff 'ls\n' |
| Barre d'état par défaut | Oui | Non |
| Ports série | Non | Oui, par exemple screen /dev/ttyUSB0 115200 |
| Licence | ISC et style BSD | GPL |
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.