Con tmux puoi creare più sessioni di terminale che possono essere aperte (allegate) e chiuse (scollegate) o visualizzate contemporaneamente, tutte da un'unica finestra.
Imparare a utilizzare un multiplexer di terminale ti farà risparmiare un sacco di mal di testa se trascorri molto tempo nel terminale. Ciò è particolarmente vero se il tuo lavoro prevede l'accesso a macchine remote solo tramite riga di comando.
Schermo vs tmux
Tmux è considerato il prossimo passo avanti evolutivo rispetto al multiplexer GNU Screen.
Se sei abituato al comando dello schermo, sarà facile iniziare subito. Ci sono molte somiglianze tra le due applicazioni. Abbiamo avuto un'ottima risposta al nostro articolo sui comandi dello schermo e credo che i nostri lettori apprezzeranno davvero l'utilizzo di alcune delle funzionalità aggiornate di tmux.
Se sei già a tuo agio con il comando dello schermo, puoi scansionare rapidamente questo articolo per le differenze. Per alcuni comandi, posso evidenziare somiglianze o differenze. A parte queste note, questo articolo non presuppone alcuna conoscenza precedente.
Se sei un po' perso e non sai ancora di cosa tratta questo articolo, va benissimo. Analizzeremo tutto insieme. Ti mostrerò come installare tmux e come eseguire le operazioni di base.
Installa tmux
Tmux è un'applicazione popolare e dovrebbe essere disponibile nel repository ufficiale della tua distribuzione Linux. Puoi installarlo utilizzando il pacchetto Manage della tua distribuzione.
Sulle distribuzioni basate su Debian e Ubuntu, puoi installarlo usando il seguente comando:
sudo apt install tmux
Guida introduttiva a tmux
Come abbiamo accennato, tmux è un'ottima applicazione per renderti più produttivo. È un potente software, ma può creare un po' di confusione per iniziare.
Ti guiderò attraverso le funzionalità critiche una alla volta. Il mio obiettivo è quello di facilitarti e mostrarti le funzionalità di base. Ci sono così tanti modi per personalizzare tmux, che non saremo in grado di coprire tutto in questo articolo. Se sei curioso di leggere un articolo su caratteristiche e funzionalità avanzate, faccelo sapere nella sezione commenti!
Crea una sessione in tmux
Apri un terminale e usa il seguente comando:
[email protected]:~$ tmux
Questo dovrebbe portarti in tmux. Vedrai un prompt dei comandi come al solito, ma ora vedrai un menu di stile della barra delle applicazioni nella parte inferiore del terminale che dirà qualcosa come bash 0 *. L'asterisco indica che questa è la tua finestra attiva .
Creiamo un paio di finestre tra le quali puoi passare. Puoi farlo usando il prefisso [ctrl + b] + c .
Dovresti vedere sulla barra delle applicazioni qualcosa chiamato 1:bash è stato aggiunto. Aggiungiamone altri due prima di continuare ulteriormente.
Ora dovrebbe assomigliare allo screenshot qui sotto. Dovresti avere un totale di quattro nuove finestre di terminale (vedrai solo una finestra alla volta).
Il nome della finestra automatica
Tmux può effettivamente identificare determinati programmi e rinominare automaticamente le tue finestre (se non avevi chiamato la tua finestra in modo esplicito). Ad esempio, se esegui il comando top in una finestra, noterai che il nome della finestra viene cambiato da bash a top.
Session vs Window vs Pane (split) in tmux
Prima di andare oltre, dovresti conoscere la differenza tra sessione, finestra e riquadro in tmux.
Considera le sessioni come taccuini, le finestre come capitoli e i riquadri come pagine.
Una sessione può avere più finestre. Una finestra è fondamentalmente un terminale. È possibile dividere una finestra tra più riquadri verticali e orizzontali. Ciò significa che una finestra di terminale può contenere più terminali.
È possibile creare una sessione tmux per un argomento/progetto specifico. Ad esempio, se gestisci tre server, potresti creare una sessione per ciascun server per eseguire attività. Utilizzare una finestra per monitorare le risorse di sistema e un'altra per eseguire alcune attività di manutenzione. La finestra di monitoraggio del sistema può avere più riquadri per monitorare l'utilizzo di memoria, CPU e disco.
Passaggio da una finestra all'altra in una sessione tmux
Ricorda che ctrl+b (simultaneamente) è come il tuo tasto "tmux". Dice al software che vuoi inserire un comando. Guarda la tabella qui sotto per iniziare a navigare nell'interfaccia di tmux.
Precedente | Avanti | n (0, 1, 2, 3 ecc.) |
---|---|---|
[ctrl + b] + p | [ctrl + b] + n | Passa a n Finestra:[ctrl + b] + 0 |
Ora puoi spostarti "avanti e indietro" o selezionare un'istanza specifica in base al suo numero ID. Prova queste cose finché non ti senti a tuo agio.
Pronto? Eccezionale. Diamo un'occhiata ad alcune delle altre funzionalità.
NOTA:se sei un utente esperto di Screen, potresti essere abituato a utilizzare il prefisso [ctrl + a]. La modifica del file di configurazione ti consentirà di modificare il prefisso, se lo desideri. In realtà ho scoperto che la combinazione di tasti alternativi ha migliorato la mia efficienza, ma capisco anche che le vecchie abitudini sono difficili da rompere.
Cambia utilizzando l'elenco delle finestre
Un'altra opzione usa [ctrl+b] + w. Questo ti dà una panoramica visiva delle sessioni. È possibile utilizzare i tasti freccia per selezionare le finestre/riquadri desiderati.
Nomina o rinomina le finestre in tmux
Puoi assegnare un nome alla finestra corrente con la seguente combinazione di tasti:
[ctrl+b] + ,
Assegna un nome alla tua sessione tmux
Potresti trovare utile nominare le tue sessioni con titoli significativi per mantenere le cose organizzate. Proviamo a nominare la tua prima sessione con tmux.
Puoi nominarlo come vogliamo, ma in questo caso lo chiamerò libero. Immettere il seguente comando:
tmux new -s free
Ora dovresti avere una nuova sessione di tmux in esecuzione. Se guardi nell'area in basso a sinistra della finestra, vedrai il nome della tua sessione anziché il generico "bash".
Se hai già creato una sessione, puoi nominarla o rinominarla utilizzando la seguente combinazione di tasti:
[ctrl+b] + $
Scollega una sessione (esci dalla sessione di tmux ma mantienila in esecuzione in background )
Prima di continuare, iniziamo a correre gratuitamente con il comando watch che aggiornerà i risultati ogni 2 secondi.
watch free
Se non hai familiarità con free o watch, ti consiglio di controllare watch e free command. La conoscenza delle loro funzionalità, tuttavia, non è essenziale per utilizzarli con tmux.
Ok, quindi una volta iniziato il programma, vai avanti e stacca la sessione. Usa questa combinazione di tasti:
[ctrl + b] + d
Questo dovrebbe riportarti a un prompt dei comandi standard. Tieni presente che la sessione di tmux è ancora in esecuzione in background e puoi inserirla di nuovo quando vuoi.
Elenca le sessioni di tmux
Cos'è successo alla tua sessione? È ancora in esecuzione in background. Puoi riaprire la sessione per nome o per numero ID, ma cosa succede se dimentichi il nome della sessione?
C'è una funzione di elenco incorporata in tmux:
tmux ls
Questo elencherà tutte le tue sessioni tmux correnti. L'esecuzione produrrà un output come questo:
[email protected]:~$ tmux ls
free: 1 windows (created Sat Feb 29 03:16:31 2020) [80x23]
Come puoi vedere, elenca anche quante finestre ha una sessione.
Rientra in una sessione in Tmux (noto anche come attach)
Per riaprire la tua sessione tmux puoi usare il comando tmux con l'opzione attach o attach-session in questo modo:
tmux attach -t session_name_or_number
Ecco un'animazione che mostra tutti questi passaggi fino a questo punto della dimostrazione.
Creazione di più riquadri in tmux
Ora che hai compreso le nozioni di base, puoi andare oltre e creare più riquadri.
Orizzontale (sinistra/destra) | Verticale (Su/Giù) |
---|---|
[ctrl + b] + % | [ctrl + b] + “ |
Facciamo un po' di pratica con questi comandi creando una divisione verticale seguita da una divisione orizzontale.
[ctrl + b] + "
[ctrl + b] + %
Se hai inserito i comandi in quest'ordine, dovresti avere tre riquadri che assomigliano a questo:
Puoi usare [ctrl+b] + tasto spazio per alternare il layout del riquadro attualmente attivo.
Commutazione tra i riquadri
Per passare da uno split all'altro puoi usare il prefisso tmux [ctrl+b] + i tasti freccia.
[ctrl+b] + arrow keys
Questo ciclo i riquadri nella direzione scelta. Il riquadro selezionato verrà evidenziato in verde.
Esegui lo zoom in un riquadro
Puoi anche "zoom" in un riquadro selezionato con [ctrl+b] + z. Questo porterà lo schermo selezionato a schermo intero. Per uscire dalla modalità zoom, premi di nuovo [ctrl+b] + z.
Uccidere o chiudere riquadri
Questo è importante. Puoi chiudere un riquadro (split) utilizzando il prefisso [ctrl + b] + x.
Ti chiederà la conferma:
kill-pane 0? (y/n)
Uccidere o chiudere Windows in tmux
Per chiudere la finestra corrente (schede), utilizzare:
[ctrl + b] + &
Ti chiederà conferma:
kill-window window_name? (y/n)
Sessioni di uccisione in tmux
Per terminare la sessione tmux corrente che stai utilizzando, dovrai prima uccidere tutte le finestre. Non è molto conveniente, vero?
Puoi uccidere selettivamente una sessione tmux usando il suo nome o numero in questo modo:
tmux kill-session -t session_name_or_number
Ucciderà la sessione anche se sei all'interno della sessione.
Se vuoi terminare tutta la sessione tranne quella che stai attualmente utilizzando (o l'ultima che hai utilizzato), usa questo comando:
tmux kill-session -a
Per terminare tutte le sessioni di tmux in una volta, puoi usare questo comando magico:
tmux kill-server
Scarica il cheat sheet di tmux
Hai imparato le basi di tmux ma ricordare tutti i comandi non è facile, specialmente all'inizio. Questo è il motivo per cui sto riassumendo tutti i comandi nella tabella seguente. Puoi anche scaricarlo in formato PDF.
Comando | Spiegazione |
---|---|
tmux | Inizia nuova sessione |
tmux new -s nome | Inizia nuova sessione con nome |
tmux ls | Elenca tutte le sessioni |
tmux kill-session -t nome | Uccidi la sessione menzionata |
tmux kill-session -a | Chiudi tutte le sessioni tranne l'ultima sessione utilizzata |
tmux kill-server | Chiudi tutte le sessioni di tmux |
tmux attach -t nome | Allega/accedi alla sessione menzionata |
[Ctrl +b] + d | Scollega/chiudi la sessione corrente |
[Ctrl +b] + $ | Nomina o rinomina la sessione corrente |
[Ctrl +b] + c | Crea nuova finestra |
[Ctrl +b] + , | Nomina o rinomina la finestra corrente |
[Ctrl +b] + w | Elenca tutte le finestre |
[Ctrl +b] + & | Chiudi la finestra corrente |
[Ctrl +b] + n/p/N | Sposta alla finestra successiva/precedente/ennesima |
[Ctrl +b] + % | Crea riquadro orizzontale |
[Ctrl +b] + “ | Crea riquadro verticale |
[Ctrl +b] + tasto spazio | Attiva/disattiva il layout del riquadro corrente |
[Ctrl +b] + z | Esegui lo zoom nel riquadro corrente |
[Ctrl +b] + x | Chiudi il riquadro corrente |
Conclusione
Grazie per aver seguito la nostra introduzione a tmux. Come puoi vedere ci sono un'ampia varietà di applicazioni. Spero che questa panoramica di base ti abbia dato alcune idee su come utilizzare tmux per migliorare il tuo flusso di lavoro.
Come sempre, se hai domande, lasciale qui sotto nella sezione commenti.