Cosa fa#
Terminal multiplexer — gestisce sessioni, finestre e pannelli in un solo terminale. Le sessioni restano vive anche dopo aver chiuso il terminale o disconnesso SSH. Fondamentale per Bandit e per lavoro su server remoti.
Gerarchia#
# tmux ha tre livelli:
# sessione → contiene finestre
# finestra → contiene pannelli
# pannello → e' il terminale vero
# Esempio:
# Session "lavoro"
# Window 0: "ctf"
# Pane 0 (sinistra) → nc -l -p 5555
# Pane 1 (destra) → ./suconnect 5555
# Window 1: "note"
# Pane 0 → vimPrefisso#
Tutti i comandi tmux iniziano con il prefisso Ctrl+b.
Prima premi Ctrl+b, rilasci, poi premi il tasto del comando.
# Cambiare prefisso in ~/.tmux.conf (molti usano Ctrl+a come screen):
# set -g prefix C-a
# Il prefisso default su Bandit e' sempre Ctrl+bSessioni#
# Avviare
tmux # nuova sessione senza nome
tmux new -s nome # -s = session name
# Detach / Attach
# Ctrl+b d # d = detach — sessione resta viva in background
tmux ls # ls = list sessions
tmux attach -t nome # -t = target, rientra per nome
tmux attach -t 0 # rientra per numero
tmux kill-session -t nome # chiude una sessione
tmux kill-server # chiude tuttoFinestre (Windows)#
Una finestra occupa tutto lo schermo — come un tab del browser.
# Ctrl+b c c = create — nuova finestra
# Ctrl+b , rinomina finestra corrente
# Ctrl+b n n = next — finestra successiva
# Ctrl+b p p = previous — finestra precedente
# Ctrl+b 0-9 vai alla finestra per numero
# Ctrl+b w w = window list — lista finestre interattiva
# Ctrl+b & & = kill (come kill in shell) — chiudi finestra (conferma)Pannelli (Panes)#
Un pannello divide la finestra — puoi avere piu terminali nella stessa schermata.
# Ctrl+b % % = split verticale (due colonne)
# Ctrl+b " " = split orizzontale (due righe)
# Ctrl+b space cambia direzione, da split verticale a orizzontale e viceversa
# Ctrl+b freccia sposta tra pannelli nella direzione
# Ctrl+b o o = other — passa al pannello successivo
# Ctrl+b ; torna al pannello usato prima
# Ctrl+b x x = exit/kill — chiudi pannello corrente (conferma)
# Ctrl+b z z = zoom — toggle fullscreen sul pannello corrente
# Ctrl+b q q = quit numbering — mostra numeri pannelli,
# premi il numero per saltarci
# Ctrl+b { sposta pannello a sinistra
# Ctrl+b } sposta pannello a destra
# Ctrl+b Ctrl+freccia ridimensiona pannello in piccoli stepScroll e copia#
Su Mac non hai PgUp fisica — usa Fn+Freccia Su oppure entra in
modalita copia con Ctrl+b [.
# Ctrl+b [ entra in modalita copia / scroll
# [ = apre il buffer di scrollback
# frecce scorrono riga per riga
# Fn+Freccia Su scorre pagina per pagina (Mac)
# q esce dalla modalita copia
# Space inizia selezione testo
# Enter copia selezione nel buffer tmux
# Ctrl+b ] incolla il testo copiato dal buffer tmuxComandi da riga di comando#
# Eseguire un comando in una sessione esistente senza entrarci
tmux send-keys -t nome:finestra "comando" Enter
# Creare una finestra con nome specifico
tmux new-window -t nome -n "titolo"
# Dividere un pannello da riga di comando
tmux split-window -h -t nome # -h = horizontal split (due colonne)
tmux split-window -v -t nome # -v = vertical split (due righe)Flag principali#
| Flag | Significato | Esempio | |
|---|---|---|---|
-s | session name | tmux new -s ctf | |
-t | target | tmux attach -t ctf | |
-d | detach dopo il comando | tmux new -s nome -d | |
-h | horizontal split | tmux split-window -h | |
-v | vertical split | tmux split-window -v | |
-x | larghezza finestra | tmux new -s nome -x 220 | |
-y | altezza finestra | tmux new -s nome -y 50 | |
Scenario Reale#
# Bandit 20 — split verticale per nc + suconnect nella stessa finestra
tmux new -s bandit20
# Ctrl+b % split verticale
# pannello sinistro:
echo PASSWORD | nc -l -p 5555 &
# Ctrl+b freccia destra vai al pannello destro
./suconnect 5555# Server remoto — sessione persistente che sopravvive alla disconnessione
ssh utente@server
tmux new -s lavoro # crea sessione
# ... lavori ...
# Ctrl+b d detach
# connessione SSH si chiude
# il processo continua sul server
ssh utente@server # riconnetti
tmux attach -t lavoro # rientra esattamente dove eriSu server remoti, apri sempre tmux subito dopo il login SSH. Se la connessione cade, il tuo lavoro e' ancora li quando torni.
-h e -v in split-window sembrano invertiti rispetto all'intuizione:
-h = horizontal = divide in due colonne (split verticale visivo)
-v = vertical = divide in due righe (split orizzontale visivo)
Il parametro indica la direzione della linea di divisione, non delle colonne.
Dove l'ho usato#
- bandit-20 — due pannelli per nc in ascolto e suconnect in parallelo
Collegato a#
- ssh — tmux e' essenziale nelle sessioni SSH remote
- shell-interattiva — tmux crea shell interattive in ogni pannello
- system — categoria


