Tmux CheatSheet
Terminologia
Pannello - un command prompt aperto (“pseudo-terminale”), che può occupare l’intero schermo o apparire splittato verticalmente/orizzontalmente se ce ne sono altri
Finestra - insieme dei pannelli che occupano lo schermo
Sessione - una singola collezione di pseudo-terminali gestiti da Tmux. Ogni sessione è persistente e sopravvive sia in caso di disconnessione accidentale (per esempio un timeout SSH) che in caso di disconnessione intenzionale ("detach") da parte dell’utente
Client - il processo in background che mostra la sessione
Server - tutte le sessioni sono gestite da un server singolo. Il server e il client comunicano tramite una socket in /tmp
Comandi generali
In seguito verranno elencati diversi comandi: alcuni sono da eseguire dal nostro terminale di sistema (fuori da Tmux), mentre altri sono scorciatoie da eseguire dentro a Tmux (dopo aver digitato la combinazione di tasti adeguata, che di default è Ctrl+b). Per discriminare tra i due, userò il $ all’inizio del comando per indicare quelli del primo tipo.
$ tmux - avvia Tmux (creando nuova sessione)
$ tmux list-keys - mostra tutti i comandi
$ tmux ls - mostra tutte le sessioni
$ tmux info - mostra tutte le sessioni, pannelli e finestre
$ tmux a/at/attach/attach-session - (re)attach alla sessione creata più recentemente
$ tmux a -t *s0* - attach alla sessione di nome s0
$ tmux new -s *s0* - crea nuova sessione chiamata s0
$ tmux kill-ses/kill-session - killa l’ultima sessione attiva
$ tmux kill-ses -t *s0* - killa la sessione di nome s0
$ tmux kill-ses -a - killa tutte le sessioni trannne quella corrente
$ tmux kill-ses -a -a *s0* - killa tutte le sessioni tranne quella di nome s0
$ tmux new -s *s0* -n *w0* - crea nuova sessione chiamata s0 con finestra chiamata w0
Prima di proseguire con i prossimi comandi, è bene menzionare che il comportamento di Tmux può essere modificato specificandolo nel file ~/.tmux.conf. Di default questo file non è presente, quindi possiamo sia crearlo e configurarlo da zero, sia partire da quello di esempio fornito con l’installazione di Tmux che si trova in /usr/share/doc/tmux/example_tmux.conf (andrà copiato nella nostra home e rinominato). Per quanto riguarda la combinazione di tasti da premere per mandare un comando a Tmux invece che alla shell, questa sarà sottinteso essere Ctrl+b (quella di default) anche quando non specificato. In caso di modifica nel file di configurazione (nel file di esempio viene impostata la a invece della b), basta sostituirla con quella scelta.
: - entra in modalità comando
? o :list-keys - mostra tutti i comandi
t - mostra l’orario di sistema
Comandi Pannello
% - splitta verticalmente
" - splitta orizzontalmente
-> (freccia dx) - spostati sul pannello a destra (sinistra,sopra,sotto sono uguali ma con le rispettive frecce)
q - mostra i numeri dei pannelli
q 0..9 - cambia pannello in base al numero
o - vai al prossimo pannello
z - zoom in/out
! - converti pannello in una nuova finestra
; - vai a ultimo pannello attivo
[spazio] - cambia tra i layout dei pannelli
{ - muovi il pannello a sinistra
} - muovi il pannello a destra
x - chiudi pannello corrente
:setw synchronize-panes - sincronizza input su tutti i pannelli (qualsiasi cosa digitata in un pannello verrà replicata in tutti gli altri che sono sincronizzati)
:setw synchronize-panes off - disattiva sincronizzazione pannelli
il comando di sincronizzazione funziona solo all’interno di una sessione Tmux, non ha effetto su finestre o pannelli di sessioni diverse
:resize-pane -L 5 - sposta il bordo del pannello a sinistra di 5 righe
le direzioni per questo comando sono: L sinistra, R destra, U sopra, D sotto
Comandi Finestra
c - crea nuova finestra
, - rinomina finestra corrente
p - vai alla finestra precedente
n - vai alla finestra successiva
w - mostra finestre
& - chiudi la finestra attiva
:swapw -s 0 -t 2 - swappa finestre 0 e 2
:swapw -t -1 - muovi la finestra attiva a sinistra di una posizione
Comandi Sessione
:new - crea nuova sessione
:new *s0* - crea nuova sessionne chiamata s0
d - esci (detach) dalla sessione
s - mostra tutte le sessioni
$ - rinomina sessione
w - preview di sessione e finestre
( - vai alla sessione precedente
) - vai alla prossima sessione