Comando tmux in Linux: separare e riprendere una sessione
tmux è un multiplexer di terminale: permette di gestire più finestre e riquadri da un solo terminale. Puoi scollegarti da una sessione e ricollegarti in seguito, lasciando continuare i programmi al suo interno finché il server tmux e il sistema restano attivi.
Una sessione raggruppa finestre, e ogni finestra può contenere più riquadri, chiamati anche pane. Il client visualizza la sessione nel terminale; il server tmux ne mantiene lo stato. Se lavori tramite SSH, avvia tmux sul server remoto su cui devono continuare i programmi, non soltanto sul computer locale.
Sintassi e preparazione
tmux [opzioni] [comando [argomenti]]
Verifica la disponibilità con tmux -V e consulta man tmux. Se il comando manca, usa il pacchetto tmux previsto dalla tua distribuzione e i permessi richiesti per installarlo. Questi esempi richiedono un terminale interattivo e usano i tasti predefiniti, che una configurazione personale può modificare.
Il prefisso predefinito è Ctrl+b: tieni premuto Ctrl, premi b e poi rilascia entrambi. Premi quindi il tasto successivo, per esempio d minuscola. Non premere Ctrl, b e d tutti insieme e non aggiungere Shift per trasformare d in D.
Creare, elencare e riprendere una sessione
Avviare una sessione con nome
Dal terminale esterno a tmux, controlla prima con tmux ls se esiste già una sessione chiamata work. Se il server non è ancora in esecuzione, il comando può segnalarlo: non significa necessariamente che tmux sia installato male. Usa un nome libero per la prova.
tmux new -s work
Il comando crea la sessione e vi collega il terminale. Di norma compare una shell con la barra di stato tmux; i comandi digitati in quel riquadro vengono eseguiti al suo interno. Per tornare alla shell esterna senza chiudere il lavoro, premi il prefisso Ctrl+b, rilascialo e premi d.
Elencare le sessioni rimaste
Dopo la separazione, esegui dalla shell esterna:
tmux ls
Devi ritrovare il nome work finché la sessione esiste. L’elenco può includere numero di finestre, data di creazione e informazioni sui client; formato e dettagli dipendono dalla versione.
Ricollegarsi alla sessione esistente
Usa il nome verificato nell’elenco. Se ti sei scollegato da SSH, accedi prima di nuovo allo stesso server con lo stesso utente e poi esegui:
tmux attach -t work
Ritorni ai terminali della sessione esistente. Non stai eseguendo di nuovo i comandi già avviati al suo interno. Evita di creare una nuova sessione quando intendi soltanto riprendere quella precedente.
Provare la separazione e il ricollegamento
La sequenza seguente riassume tre momenti distinti. Esegui la prima riga da fuori tmux, poi separati usando Ctrl+b seguito da d. Solo dopo il ritorno alla shell esterna esegui la seconda e la terza riga. Incollarle tutte insieme dentro la nuova sessione non riproduce questa procedura.
tmux new -s demo
tmux ls
tmux attach -t demo
Per controllare visivamente che torni allo stesso riquadro, prima di separarti puoi eseguire printf 'prova-demo\n' nella shell della sessione. Dopo attach dovresti ritrovare quel testo nella cronologia visibile, se non è stata cancellata o sostituita da altri output.
Questo è un estratto illustrativo semplificato della riga relativa a demo nell’elenco, con i dettagli variabili omessi:
demo: 1 windows
Non aspettarti necessariamente una scritta letterale (detached) nell’output di tmux ls. La separazione riguarda il client: la sessione può restare disponibile e può anche essere collegata ad altri client. Attach non scollega automaticamente tutti gli altri terminali connessi alla stessa sessione.
Se il nome esiste già, new può fallire. Controlla l’elenco e ricollegati alla sessione corretta oppure scegli un altro nome di prova. Se attach segnala che la sessione non esiste, verifica anche server remoto, utente e server/socket tmux usato; non presumere che la sessione sia stata cancellata senza controllare il contesto.
Comandi principali
| Forma | Uso |
|---|---|
new -s nome |
Crea una sessione con nome e vi collega il terminale. |
ls |
Elenca le sessioni del server tmux selezionato. |
attach -t nome |
Collega il client alla sessione indicata. |
detach |
Separa il client corrente dalla sessione. |
split-window |
Crea un altro riquadro nella finestra corrente. |
Le forme della tabella si usano dopo tmux, per esempio tmux detach dalla shell di una sessione collegata. New, ls e attach sono abbreviazioni dei comandi new-session, list-sessions e attach-session.
Tasti, chiusura e limiti di persistenza
Con le associazioni predefinite, dopo Ctrl+b premi c per una nuova finestra, % per due riquadri affiancati o " per due riquadri sovrapposti. Per passare da un riquadro all’altro usa il prefisso seguito da un tasto freccia. La disposizione cambia, ma ogni riquadro mantiene il proprio terminale.
Separarsi con d non equivale a digitare exit nella shell interna. Per concludere una prova senza lasciare sessioni inutili, termina normalmente i programmi avviati e poi esci dalle sole shell di prova, ripetendo l’operazione nei riquadri e nelle finestre creati. Con il comportamento predefinito, quando l’ultima finestra si chiude la sessione termina; verifica dalla shell esterna con tmux ls.
Una sessione separata non è un backup e non rende i programmi immuni agli errori. Riavvio del sistema remoto, chiusura del server tmux, terminazione delle sessioni o politiche di gestione della sessione utente possono interrompere il lavoro. Salva comunque i file e prevedi un servizio o una procedura di ripresa quando il compito deve sopravvivere al riavvio.
Nell’ambiente Windows con Git Bash disponibile per la verifica, tmux non è installato. Le quattro sequenze sono state controllate soltanto per la sintassi Bash: non sono stati provati un server tmux, la pressione dei tasti o una reale disconnessione SSH.
Domande frequenti
La sessione tmux resta sempre disponibile quando cade SSH?
Di norma puoi ricollegarti se sessione, server tmux e sistema remoto sono ancora attivi e accedi allo stesso contesto. Tmux non ripristina automaticamente una sessione dopo un riavvio o una terminazione; i programmi devono essere stati avviati al suo interno.
Documentazione di riferimento
La guida ufficiale Getting Started di tmux spiega sessioni, client e comandi iniziali. Il manuale tmux indicato dal progetto descrive tasti e opzioni; confrontalo con man tmux della versione installata.




