Sia che tu stia avviando un elaborato laboratorio domestico Raspberry Pi o che tu stia gestendo un edificio pieno di workstation, a volte devi svolgere la stessa attività su più host. Esistono molti modi per automatizzare le attività tra i sistemi. Ansible, ad esempio, garantisce che tutti i sistemi siano nello stesso stato e, a volte, un semplice lavoro cron funzionerà. Ma a volte è necessario eseguire i comandi manualmente. Per questo, hai bisogno di tmux, un singolo terminale che ti dia il controllo di più prompt dei comandi.
tmux è un'applicazione open source che aggiunge livelli (o "finestre", nella terminologia tmux) alla finestra del terminale in modo da poter aprire più di un terminale in una singola finestra del desktop. Il risultato è un'interfaccia a schede (senza le schede fisiche), quindi puoi passare da un terminale aperto all'altro senza dover utilizzare il mouse come devi quando si passa da una scheda all'altra in Firefox.
Questo potrebbe sembrare ridondante. Dopotutto, le moderne applicazioni terminali, come GNOME Terminal e Konsole, hanno le schede integrate per impostazione predefinita e anche alcuni terminali molto vecchi, come rxvt, hanno la possibilità di aggiungere un'interfaccia a schede. Tuttavia, tmux aggiunge la possibilità di dividere una finestra in riquadri, con ogni riquadro contenente un terminale separato e ogni terminale può essere registrato in un host separato. Puoi creare una serie di terminali con poche scorciatoie da tastiera o uno script tmuxinator rudimentale.
(Seth Kenlon, CC BY-SA 4.0)
Installa tmux
Su Linux e BSD, puoi installare tmux dal tuo repository software o dall'albero dei port. Su Mac, usa Homebrew.
Ad esempio, su RHEL o Fedora:
$ sudo dnf install tmux
Avvia tmux
Per avviare tmux, apri un terminale e digita:
$ tmux
Quando lo fai, il risultato ovvio è che tmux avvia una nuova shell nella stessa finestra con una barra di stato lungo la parte inferiore. C'è dell'altro in corso, però, e puoi vederlo con questo piccolo esperimento. Per prima cosa, fai qualcosa nel tuo terminale attuale per aiutarti a distinguerlo da un altro terminale vuoto:
$ echo hello
hello
Ora premi Ctrl+B seguito da C sulla tua tastiera. Potrebbe sembrare che il tuo lavoro sia svanito, ma in realtà hai creato quella che tmux chiama una finestra (che può essere, certamente, confuso perché probabilmente chiami anche il terminale che hai lanciato una finestra ). Grazie a tmux, in realtà hai due finestre aperte, entrambe elencate nella barra di stato nella parte inferiore di tmux. È possibile navigare tra queste due finestre in base al numero di indice. Ad esempio, premi Ctrl+B seguito da 0 per andare alla finestra iniziale:
$ echo hello
hello
Premi Ctrl+B seguito da 1 per andare alla prima nuova finestra che hai creato.
Puoi anche "camminare" attraverso le finestre aperte usando Ctrl+B e N (per Avanti) o P (per il precedente).
Il trigger e i comandi tmux
Più risorse Linux
- Comandi Linux cheat sheet
- Cheat sheet sui comandi avanzati di Linux
- Corso online gratuito:Panoramica tecnica RHEL
- Cheat sheet della rete Linux
- Cheat sheet di SELinux
- Cheat sheet dei comandi comuni di Linux
- Cosa sono i container Linux?
- I nostri ultimi articoli su Linux
La scorciatoia da tastiera Ctrl+B è il trigger di tmux. Quando lo premi in una sessione tmux, avvisa tmux di "ascoltare" il tasto o la combinazione di tasti successiva che segue. Tutte le scorciatoie di tmux, quindi, sono precedute da Ctrl+B .
Puoi anche accedere a una riga di comando tmux e digitare i comandi tmux per nome. Ad esempio, per creare una nuova finestra nel modo più difficile, puoi premere Ctrl+B seguito da : per accedere alla riga di comando di tmux. Digita new-window
e premi Invio per creare una nuova finestra. Questo fa esattamente la stessa cosa di premere Ctrl+B quindi C .
Dividi le finestre in riquadri
Dopo aver creato più di una finestra in tmux, è spesso utile vederle tutte in un'unica finestra. Puoi dividere una finestra orizzontalmente (il che significa che la divisione è orizzontale, posizionando una finestra in posizione nord e un'altra in posizione sud) o verticalmente (con finestre posizionate in posizione ovest e est).
- Per creare una divisione orizzontale, premi Ctrl+B seguito da " (questa è una virgoletta doppia).
- Per creare una divisione verticale, premi Ctrl+B seguito da % (percentuale).
Puoi dividere le finestre che sono state divise, quindi il layout dipende da te e dal numero di righe nel tuo terminale.
A volte le cose possono sfuggire di mano. Puoi regolare un terminale pieno di riquadri divisi a caso usando questi rapidi preset:
- CTRL+B Alt+1 :Anche le spaccature orizzontali
- CTRL+B Alt+2 :anche spaccature verticali
- CTRL+B Alt+3 :Intervallo orizzontale per il riquadro principale, divisioni verticali per i riquadri minori
- CTRL+B Alt+3 :Intervallo verticale per il riquadro principale, divisioni orizzontali per i riquadri minori
- CTRL+B Alt+5 :Layout piastrellato
Commutazione tra i riquadri
Per passare da un riquadro all'altro, premi Ctrl+B seguito da O (come in altro ). Il bordo attorno al riquadro cambia colore in base alla tua posizione e il cursore del terminale cambia nel suo stato attivo. Questo metodo "scorre" attraverso i riquadri in ordine di creazione.
In alternativa, puoi utilizzare i tasti freccia per passare a un riquadro in base al tuo layout. Ad esempio, se hai due riquadri aperti divisi da una divisione orizzontale, puoi premere Ctrl+B seguito da Su freccia per passare dal riquadro inferiore al riquadro superiore. Allo stesso modo, Ctrl+B seguito da Giù la freccia passa dal riquadro superiore a quello inferiore.
Esecuzione di un comando su più host con tmux
Ora che sai come aprire molte finestre e dividerle in comodi riquadri, sai quasi tutto ciò che devi sapere per eseguire un comando su più host contemporaneamente. Supponendo che tu abbia un layout che ti soddisfa e che ogni riquadro sia connesso a un host separato, puoi sincronizzare i riquadri in modo tale che l'input digitato sulla tastiera sia rispecchiato in tutti i riquadri.
Per sincronizzare i riquadri, accedi alla riga di comando di tmux con Ctrl+B seguito da : , quindi digita setw synchronize-panes
.
Ora tutto ciò che scrivi sulla tastiera appare in ogni riquadro e ogni riquadro risponde di conseguenza.
Scarica il nostro cheat sheet
È relativamente facile ricordare Ctrl+B per invocare le funzionalità di tmux, ma le chiavi che seguono possono essere difficili da ricordare all'inizio. Tutte le scorciatoie da tastiera integrate in tmux sono disponibili premendo Ctrl+B seguito da ? (uscire dalla schermata della guida con Q ). Tuttavia, la schermata della guida può essere un po' opprimente per tutte le sue opzioni, nessuna delle quali è organizzata per attività o argomento. Per aiutarti a ricordare le caratteristiche di base di tmux, così come molte funzioni avanzate non trattate in questo articolo, abbiamo sviluppato un cheatsheet di tmux. Il download è gratuito, quindi prendi la tua copia oggi stesso.