Oltre un semplice terminale, che ci permette di lavorare in multitasking e di effettuare un detach dello stesso terminale, come ci aveva già abituato screen
Sicuramente TMUX è un MUST HAVE nella suite di tool indispensabili per un SysAdmin e una volta imparato ad usarlo, non ne potete fare a meno!
Chi lavora con i terminali sa benissimo che non bastano mai, si ha sempre la necessità di una “finestra” in più, quindi ci si ritrova sempre ad avere N connessioni in SSH sul server, soggette a timeout di connessione o simili. Altro problema è quando ci si deve disconnettere dal terminale remoto senza effettuare il blocco dell’applicazione o di quello che in quel momento sta processando il terminale. In passato si usava il comando fg e bg, per mettere il programma attualmente in esecuzione in BackGround o riportarlo in Foreground, ma in ogni caso, la chiusura del terminale o della sessione remoto portava alla distruzione di quella shell e di conseguenza al kill del programma.
Inizialmente venne in aiuto Screen, terminale multiplexer che permetteva di aprire N Sessioni di Terminale dedicate. Attraverso Screen era possibile mettere in background la sessione, oppure direttamente effettuare un detach della stessa. Questo permetteva di chiudere una sessione remota senza pericolo di perdere lo stato di esecuzione di un programma o un processo direttamente dipendente dal terminale attivo. Screen si è rivelato un tool molto importante ed interessante e TMUX non è altro che l’erede che ha aggiunto altre features interessanti.
Con TMUX puoi lavorare con più terminali in una sessione, dividerli o separarli in riquadri mediante comandi da riga di comando.
Il principio di funzionamento di TMUX si basa su 3 aspetti fondamentali:
- Sessioni
- Finestre
- Panes
Le Sessioni
La sessione è il modo in cui vengono distinte ogni avvio di un terminale all’interno dei quali sarà possibile eseguire comandi e programmi.
Le Finestre
La finestra è il modo in cui può essere divisa una sessione; ogni finestra, a sua volta, potrà eseguire comandi univoci o paralleli, sempre all’interno della stessa sessione di lavoro.
I Panes
Il Pane è un ulteriori possibile suddivisione di ogni finestra. Suddividendo una finestra in panes si ha la possibilità di configurare questi ultimi a proprio piacimento.
Comandi base
Per avviare una sessione TMUX, basta digitare il comando
tmux
Per avviare una nuova sessione, rinominandola all’avvio, basta digitare il comando
tmux new -s [nome di sessione]
Per terminare la sessione TMUX, basta digitare il comando
exit
Ripristinare la connessione all’ultima sessione, basta digitare
tmux a -t [nome di sessione]
oppure
tmux a #
Per visualizzare tutte le sessioni attive, basta digitare
tmux 1s
Per cancellare una sessione, basta digitare il comando
tmux kill-session -t [nome di sessione]
Shortcut
TMUX è dotato di una serie di “scorciatoie” che permettono con una serie di combinazioni di tasti di eseguire delle azioni, che possono essere anche personalizzate. Per attivare queste scorciatoie è necessario effettuare una combinazioni di tasti “PREFIX” prima di anteporre lo shortcut. Nella fattispecie il PREFIX di default di TMUX è CTRL + b
Tra le shortcut più utilizzate troviamo:
Comandi per le sessioni:
<PREFIX> + S: visualizza tutte le sessioni e passa da una sessione all’altra
<PREFIX> + $: rinomina la sessione attuale
<PREFIX> + D: distacca la sessione esistente (“detach”) e la sposta in background
<PREFIX> + ?: visualizza le combinazioni di tasti attualmente attive (apre l’area di supporto)
Comandi per le finestre:
<PREFIX> + C: crea/apre una nuova finestra
<PREFIX> + W: elenca tutte le finestre esistenti, passa da una finestra all’altra
<PREFIX> + L: passa all’ultima finestra utilizzata
<PREFIX> + P: passa alla finestra cronologicamente precedente
<PREFIX> + N: passa alla finestra cronologicamente successiva
<PREFIX> + ,: rinomina la finestra attuale
<PREFIX> + &: termina la finestra attuale (confermare con “y”)
<PREFIX> + 1, 2, 3, (…): passa alla finestra numero X
<PREFIX> + [: attiva la modalità scrolling (scorrere nella finestra attuale utilizzando i tasti freccia)
Comandi per i panes:
<PREFIX> + X: chiude il pane attuale
<PREFIX> + %: divide verticalmente il pane attuale (crea un secondo pane nella finestra)
<PREFIX> + “: divide orizzontalmente il pane attuale (crea un secondo pane nella finestra)
<PREFIX> + Tasti freccia (sinistra, destra, in alto, in basso): per navigare tra i panes
<PREFIX> + H: passa al pane a sinistra
<PREFIX> + I: passa al pane a destra
<PREFIX> + J: passa al pane in basso
<PREFIX> + K: passa al pane in alto
<PREFIX> + Q: mostra il numero di pane
<PREFIX> + O: naviga cronologicamente attraverso tutti i panes
<PREFIX> + }: sostituisce il pane attuale con quello successivo
<PREFIX> + {: sostituisce il pane attuale con quello precedente
<PREFIX> + Barra spaziatrice: passa da una suddivisione dei panes a un’altra
<PREFIX> + !: svincola i panes attuali e li apre in una nuova finestra
Quindi riassumendo TMUX permette di:
- Proteggere i programmi in esecuzione su un server remoto dalle interruzioni della connessione eseguendoli all’interno di TMUX.
- Consentire l’accesso ai programmi in esecuzione su un server remoto da più computer locali diversi.
- Lavorare con più programmi e shell insieme in un unico terminale, un po’ come un gestore di finestre.
Comments are closed.