Affiancati
| Operazione | tmux | screen |
|---|---|---|
| Tasto prefisso | Ctrl+b | Ctrl+a |
| Nuova sessione con nome | tmux new -s work | screen -S work |
| Staccarsi | Ctrl+b d | Ctrl+a d |
| Elencare le sessioni | tmux ls | screen -ls |
| Collegarsi | tmux attach -t work | screen -r work |
| Avviare in background | tmux new -d -s work | screen -dmS work |
| Nuova finestra | Ctrl+b c | Ctrl+a c |
| Dividere sopra e sotto | Ctrl+b " | Ctrl+a S |
| Dividere affiancando | Ctrl+b % | Ctrl+a | |
| Regione o pannello successivo | Ctrl+b o | Ctrl+a Tab |
| Inviare tasti da uno script | tmux send-keys -t work 'ls' Enter | screen -S work -X stuff 'ls\n' |
| Barra di stato di serie | Sì | No |
| Porte seriali | No | Sì, per esempio screen /dev/ttyUSB0 115200 |
| Licenza | ISC e in stile BSD | GPL |
Differenze che contano nella pratica
Pannelli
Un pannello di tmux è una shell fin dal momento in cui dividi. Una nuova regione di screen è vuota e devi spostarti lì e premere Ctrl+a c.
Il tasto prefisso
In una shell, Ctrl+a di solito porta all'inizio della riga. Sotto screen per farlo premi Ctrl+a a. tmux usa Ctrl+b, che si usa meno spesso.
Script
Entrambi si possono pilotare dall'esterno, come mostra la tabella. tmux offre di più, per esempio tmux capture-pane -p per leggere lo schermo e tmux has-session per verificare se esiste una sessione.
Disponibilità
Nessuno dei due è sicuro di trovarsi su un server minimale, ma puoi installare l'uno o l'altro dai repository standard su Debian e Ubuntu:
sudo apt install tmux
sudo apt install screen
Debian 13 ha nei pacchetti tmux 3.5a e screen 4.9.1. macOS include ancora screen 4.00.03 del 2006, e niente tmux. Per il tmux aggiornato su un Mac, usa Homebrew: brew install tmux.
Quando una sessione non si può riattaccare
Una sessione ancora attaccata altrove non si apre con un semplice screen -r, che stampa There is no screen to be resumed matching work. Usa screen -d -r work per staccarla prima dall'altro posto. In tmux, tmux attach -d -t work fa la stessa cosa.
Per l'elenco completo dei comandi di tmux, vedi il cheat sheet di tmux.
Perché una sessione sopravvive a una connessione caduta lo spiega mantenere vive le sessioni SSH con tmux.
Domande
tmux è meglio di screen?
Per tenere i programmi attivi dopo la disconnessione vanno bene entrambi. tmux è più semplice per iniziare, grazie a barra di stato, pannelli pronti e comandi da script. screen serve per le porte seriali o quando è l'unico strumento sul server.
Quale dei due è installato di serie?
Su un server minimale non è detto che ci sia nessuno dei due. Su Debian e Ubuntu installi l'uno o l'altro con sudo apt install tmux o sudo apt install screen.
Una sessione tmux si può aprire da due posti insieme?
Sì. tmux attach -t work entra in una sessione già agganciata altrove, e tmux attach -d -t work prima la stacca dall'altro posto.