Con il mul­ti­ple­xer terminale tmux è possibile applicare il mul­ti­ta­sking alle righe di comando della di­stri­bu­zio­ne Linux da voi se­le­zio­na­ta. Grazie a tmux siete in grado di avviare, elaborare, sud­di­vi­de­re e riunire più sessioni su un terminale allo stesso tempo.

Il sistema operativo Linux è accanto a Windows e macOS tra le di­stri­bu­zio­ni più popolari. Si tratta di un sistema operativo open source e pertanto gratuito. Il comando e la gestione di una delle tante di­stri­bu­zio­ni Linux, come Ubuntu, Debian o Linux Mint, sono spesso ef­fet­tua­ti tramite la riga di comando o il terminale e i comandi Linux. Per uti­liz­za­re, gestire e con­fi­gu­ra­re le sessioni di console in parallelo in un terminale, si usano i co­sid­det­ti terminali mul­ti­ple­xer, come GNU Screen o tmux.

Web Hosting
Diventa il n°1 della rete con il provider di hosting n°1 in Europa
  • Di­spo­ni­bi­li­tà garantita al 99,99%
  • Dominio, SSL ed e-mail inclusi
  • As­si­sten­za 24/7 in lingua italiana

Che cos’è tmux?

Il mul­ti­ple­xer terminale open source tmux è stato svi­lup­pa­to da Nicholas Marriott e ri­la­scia­to per la prima volta nel 2007. Nelle sue funzioni, tmux è simile a GNU Screen, in quanto entrambi con­sen­to­no di lavorare con più finestre di console in una sessione di terminale e di dividerle o separarle in riquadri separati durante la scrittura di uno script di shell. In questo modo si può persino col­la­bo­ra­re con altri in parallelo e, ideal­men­te, tramite Secure Shell (SSH) in sessioni da remoto.

Mediante tmux è possibile inserire comandi da riga di comando per gestire e mo­di­fi­ca­re la propria di­stri­bu­zio­ne Linux. Tra questi troviamo, ad esempio, i comandi per l’as­se­gna­zio­ne dei permessi di directory con chmod o il comando “shutdown -h” per il semplice shutdown di Linux. Sebbene sia possibile uti­liz­za­re tmux in Ubuntu, Debian o altre di­stri­bu­zio­ni Linux fa­cil­men­te, esso può essere uti­liz­za­to in Windows solo tramite WSL o WSL2 (Windows Subsystem for Windows 2). Grazie a WSL2 si possono uti­liz­za­re le ap­pli­ca­zio­ni Linux e gli strumenti Linux anche in Windows.

Consiglio

Siete alla ricerca del giusto partner di hosting per i vostri progetti Linux? Con l’Hosting Linux di IONOS potete ap­pro­fit­ta­re di tariffe fles­si­bi­li, per­for­man­ce scalabili, SSL, pro­te­zio­ne DDoS e HTTP/2.

Come funziona tmux?

Dopo aver ef­fet­tua­to l’in­stal­la­zio­ne per mezzo dei pacchetti sorgenti ufficiali Linux, tmux può essere avviato di­ret­ta­men­te dal terminale uti­liz­zan­do il comando “tmux”. Il mul­ti­ple­xer viene gestito tramite un comune terminale. Per uti­liz­za­re tmux sono necessari i seguenti pre­re­qui­si­ti:

  • Di­stri­bu­zio­ne Linux o sistema basato su Linux
  • Profilo utente con permessi di root
  • Accesso al terminale e ai comandi della riga di comando/tasti di scelta rapida

Gli aspetti più im­por­tan­ti del lavoro con tmux sono le sessioni di terminale, le finestre e i pannelli:

  • Sessioni del terminale: con­sen­to­no di eseguire compiti e comandi e di uti­liz­za­re la di­stri­bu­zio­ne Linux.
  • Finestre: se dovete eseguire compiti specifici se­pa­ra­ta­men­te in un’unica sessione, tmux offre la pos­si­bi­li­tà di lavorare in parallelo con diverse finestre.
  • Panes: queste finestre possono essere ul­te­rior­men­te suddivise in più aree (“panes”), ad esempio per eseguire log di errori, mentre portate a termine altri compiti nella stessa finestra.

Le ope­ra­zio­ni di tmux si basano sui comandi della riga di comando e sulle scor­cia­to­ie da tastiera. Di seguito pre­sen­tia­mo quelli più im­por­tan­ti.

Comandi tmux

In­stal­la­re tmux con Linux tramite il gestore di pacchetti ufficiale di Linux:

apt-get install tmux

In­stal­la­re tmux con Ubuntu e Debian:

sudo apt-get install tmux

Avviare tmux

tmux

Avviare e ri­no­mi­na­re una nuova sessione tmux

tmux new -s [nome di sessione]

Terminare una sessione tmux

exit

Ri­pri­sti­na­re la con­nes­sio­ne all’ultima sessione tmux

tmux a -t [nome di sessione]

o

tmux a #

Vi­sua­liz­za­re tutte le sessioni tmux (vi­sua­liz­za­re i nomi di sessione e il numero delle finestre aperte)

tmux 1s

Adattare i panes con [Ctrl] + [B] + [:] e resize-pane

Sud­di­vi­den­do una finestra in panes, avete la pos­si­bi­li­tà di con­fi­gu­ra­re questi ultimi a vostro pia­ci­men­to. A tal fine dovete ricorrere alla com­bi­na­zio­ne di tasti [Ctrl] + [B] + [:]. Ora potete adattare i panes con i seguenti comandi:

  • resize-pane -D: sposta in basso la linea divisoria tra i panes (“downwards”)
  • resize-pane -U: sposta in alto la linea divisoria tra i panes (“upwards”)
  • resize-pane -R: sposta a destra la linea divisoria tra i panes
  • resize-pane -L: sposta a sinistra la linea divisoria tra i panes

Potete anche spostare la linea divisoria di un numero pre­de­fi­ni­to di righe, come mostrato di seguito; tuttavia, ciò si ri­per­cuo­te su tutti i panes contenuti all’interno della finestra:

  • resize-pane -U 10: sposta la linea divisoria 10 righe più in alto
  • resize-pane -t 2 -R 5: sposta la linea divisoria 5 righe a destra

Aumentare e ridurre il pane (previa scor­cia­to­ia [Ctrl] + [B] + [:])

resize-pane -Z

Di­stac­ca­re (“detach”) la sessione esistente (se presente, con il nome di sessione)

tmux detach

Con­net­te­re (“attach”) alla sessione esistente (se presente, con il nome di sessione)

tmux attach

Com­bi­na­zio­ne di tasti tmux

A pre­scin­de­re dal comando e dall’ese­cu­zio­ne tramite comandi da riga di comando e script, tmux viene operato at­tra­ver­so com­bi­na­zio­ni di tasti. Per avviare l’utilizzo mediante scor­cia­to­ia, immettete la com­bi­na­zio­ne di tasti [Ctrl] + [B]. A partire da ora, tutti gli in­se­ri­men­ti pro­vo­che­ran­no l’azione de­si­de­ra­ta. Tra i tasti di scelta rapida più im­por­tan­ti ri­cor­dia­mo:

Comandi per le sessioni:

  • S: vi­sua­liz­za tutte le sessioni e passa da una sessione all’altra
  • $: rinomina la sessione attuale
  • D: distacca la sessione esistente (“detach”) e la sposta in back­ground
  • ?: vi­sua­liz­za le com­bi­na­zio­ni di tasti at­tual­men­te attive (apre l’area di supporto)

Comandi per le finestre:

  • C: crea/apre una nuova finestra
  • W: elenca tutte le finestre esistenti, passa da una finestra all’altra
  • L: passa all’ultima finestra uti­liz­za­ta
  • P: passa alla finestra cro­no­lo­gi­ca­men­te pre­ce­den­te
  • N: passa alla finestra cro­no­lo­gi­ca­men­te suc­ces­si­va
  • ,: rinomina la finestra attuale
  • &: termina la finestra attuale (con­fer­ma­re con “y”)
  • 1, 2, 3, (…): passa alla finestra numero X
  • [: attiva la modalità scrolling (scorrere nella finestra attuale uti­liz­zan­do i tasti freccia)

Comandi per i panes:

  • X: chiude il pane attuale
  • %: divide ver­ti­cal­men­te il pane attuale (crea un secondo pane nella finestra)
  • ": divide oriz­zon­tal­men­te il pane attuale (crea un secondo pane nella finestra)
  • Tasti freccia (sinistra, destra, in alto, in basso): per navigare tra i panes
  • H: passa al pane a sinistra
  • I: passa al pane a destra
  • J: passa al pane in basso
  • K: passa al pane in alto
  • Q: mostra il numero di panes
  • O: naviga cro­no­lo­gi­ca­men­te at­tra­ver­so tutti i panes
  • }: so­sti­tui­sce il pane attuale con quello suc­ces­si­vo
  • {: so­sti­tui­sce il pane attuale con quello pre­ce­den­te
  • Barra spa­zia­tri­ce: passa da una sud­di­vi­sio­ne dei pane a un’altra
  • !: svincola i panes attuali e li apre in una nuova finestra

Come in­stal­la­re e applicare tmux

Seguite i passaggi suc­ces­si­vi per in­stal­la­re e uti­liz­za­re tmux:

Primo passaggio: in­stal­la­te il mul­ti­ple­xer terminale dai pacchetti sorgente di Linux ser­ven­do­vi del comando per l’in­stal­la­zio­ne di pacchetti, apt-get install tmux

Su Debian e Ubuntu dovete ag­giun­ge­re “sudo”, sudo apt-get install tmux

Secondo passaggio: avviate tmux im­met­ten­do “tmux” nel terminale. Dopo averlo avviato, vedrete una vi­sua­liz­za­zio­ne di stato co­sti­tui­ta da nome host (no­meu­ten­te@host-server), orario e data. In basso a sinistra vedrete il nome della sessione (se presente) e il numero delle finestre nel formato seguente “[0] 0:bash*”. La prima finestra porta la de­no­mi­na­zio­ne “0”. Qualora ci fosse un processo in ese­cu­zio­ne all’interno di una finestra, sarà mostrato dopo lo 0 (ad esempio “0:bash*”).

Terzo passaggio: usate tmux tramite comandi e scor­cia­to­ie da tastiera. Ciascuno dei comandi e dei tasti di scelta rapida va in­tro­dot­to con [Ctrl] + [B], nel caso di con­fi­gu­ra­zio­ne di un pane con [Ctrl] + [B] + [:], per ottenere l’at­ten­zio­ne di tmux.

Quarto passaggio: avviate una nuova sessione che avete ri­no­mi­na­to ser­ven­do­vi del comando “tmux new -s”. Dopo “-s” inserite il nome della sessione de­si­de­ra­to. Se de­si­de­ra­te avviare una sessione senza nome digitate solamente “tmux”.

Quinto passaggio: per terminare una sessione, inserite il comando “exit” o la com­bi­na­zio­ne di tasti [Ctrl] + [D].

Sesto passaggio: per aprire una nuova finestra nella sessione premete [C]. Per avviare pa­ral­le­la­men­te alla prima un’altra nuova sessione, uti­liz­za­te il comando “tmux new -s [nome di sessione].”. La vi­sua­liz­za­zio­ne di stato in basso mostra in quale sessione vi trovate.

Settimo passaggio: per sud­di­vi­de­re una finestra in panes, ovvero in riquadri, premete [%] per una finestra divisa ver­ti­cal­men­te e ["] per una divisa oriz­zon­tal­men­te. Con le frecce potete navigare tra i panes.

Ottavo passaggio: se de­si­de­ra­te in­ter­rom­pe­re una sessione attiva, ma con­ti­nua­re l’ese­cu­zio­ne di processi dovete ricorrere al comando “tmux detach”. La sessione e i processi in ese­cu­zio­ne con­ti­nue­ran­no in back­ground. Per ri­pren­de­re la sessione ri­pri­sti­na­te la con­nes­sio­ne con il comando “tmux attach”.

A cosa serve tmux?

Come il mul­ti­ple­xer terminale GNU Screen, anche tmux offre la pos­si­bi­li­tà di lavorare sul terminale di una di­stri­bu­zio­ne Linux con­tem­po­ra­nea­men­te con più sessioni e finestre, ma anche di sud­di­vi­de­re e con­fi­gu­ra­re finestre in più aree per il mul­ti­ta­sking. In questo modo potete eseguire processi e programmi paralleli e diversi comandi. Inoltre, sono possibili sessioni remote e la col­la­bo­ra­zio­ne con più utenti. Potete ab­ban­do­na­re processi e sessioni, spostare in back­ground e ri­pren­de­re da dove avete in­ter­rot­to.

Consiglio

Ne­ces­si­ta­te di una vir­tua­liz­za­zio­ne completa e una per­for­man­ce vps ottimale? Allora i VPS di IONOS fanno al caso vostro, grazie a una memoria SSD-SAN al 100%, ideale per progetti im­pe­gna­ti­vi, risorse scalabili e dedicate e, non da ultimo, un web hosting opzionale con Plesk.

In cosa si dif­fe­ren­zia tmux rispetto a GNU Screen?

A prima vista GNU Screen e tmux lavorano in modo analogo e offrono le stesse im­por­tan­ti funzioni, o quasi. Ad esempio, su GNU Screen comandi e scor­cia­to­ie vengono in­tro­dot­te mediante [Ctrl] + [A] invece che con [Ctrl] + [B]. Una grossa dif­fe­ren­za sta però nel fatto che GNU Screen non mostra au­to­ma­ti­ca­men­te un’in­di­ca­zio­ne di stato con il nome della sessione attuale nella parte bassa della finestra. Se de­si­de­ra­te uti­liz­za­re un’in­di­ca­zio­ne di stato in GNU Screen dovete con­fi­gu­rar­lo ma­nual­men­te.

In tmux è inoltre possibile de­no­mi­na­re e ri­no­mi­na­re co­mo­da­men­te sessioni e finestre, il che consente di ottenere una chiara visione d’insieme durante la na­vi­ga­zio­ne tra finestre e sessioni. In più, al contrario di GNU Screen, in tmux non c’è il rischio di perdere com­ple­ta­men­te una finestra quando viene spostata in back­ground. Le finestre possono infatti essere riprese di­ret­ta­men­te usando la riga di comando o aprendo il riepilogo delle finestre at­tual­men­te in uso.

Consiglio

I server cloud di IONOS offrono macchine virtuali con capacità di calcolo scalabili. In questo modo potete contare su un’in­fra­strut­tu­ra virtuale potente in grado di sup­por­ta­re il vostro progetto con risorse dedicate al 100%, accesso root, cloud panel e data center sicuri.

Con­clu­sio­ne: vale la pena di uti­liz­za­re tmux?

Per molti aspetti, come la pos­si­bi­li­tà di ri­no­mi­na­re finestre e sessioni o la presenza di in­di­ca­zio­ni di stato e sessione nella parte bassa delle finestre, tmux appare più chiaro e più facile da usare in confronto a GNU Screen. Dà quindi prova di essere un mul­ti­ple­xer terminale valido ed efficace, adatto in par­ti­co­la­re a chi lavora su terminali con più processi e programmi con­tem­po­ra­nea­men­te. Se cercate una soluzione mul­ti­ta­sking semplice ed efficace, oltre che com­ple­ta­men­te gratuita, tmux può si­cu­ra­men­te fare al caso vostro.

Vai al menu prin­ci­pa­le