Come Utilizzare tmux su Linux (e Perché È Meglio Di Schermo)
- Dave McKay
@TheGurkha
- 14 Maggio 2020, 8:00 EDT
Linux tmux
comando è un terminal multiplexer, come screen
. I suoi sostenitori sono molti e vocali, quindi abbiamo deciso di confrontare i due. tmux
è davvero migliore ,o è solo un caso di preferire ciò che sai?
- tmux vs. screen
- Qual è il comando screen?
- Installazione di tmux
- Avvio di una sessione tmux
- Avvio di una sessione tmux denominata
- Aggiunta di altre finestre
- Disconnessione e collegamento delle sessioni
- la Gestione di Più Sessioni
- Lavorare con i riquadri delle finestre
- Un Cheat Sheet Ctrl+B
- Comandi di sessione
- Comandi finestra
- Comandi riquadro
- Come confrontano
tmux vs. screen
Entrambi i comanditmux
e GNUscreen
sono multiplexer di terminale. Essi consentono di avere più finestre all’interno di una singola finestra di terminale, e di saltare avanti e indietro tra di loro. Una finestra può essere divisa in riquadri, ognuno dei quali fornisce una riga di comando indipendente.
Puoi anche staccare una sessione e diventa un’entità senza testa in esecuzione in background—puoi persino chiudere la finestra del terminale che l’ha lanciata. Quando sei pronto, puoi aprire una nuova finestra del terminale e ricollegare la sessione ancora in esecuzione. È anche possibile farlo tramite una connessione SSH.
È possibile staccare una sessione su un computer, tornare a casa e accedere al computer remoto. Una volta ricollegato, è possibile ricollegare la sessione in background e utilizzarla nuovamente in modo interattivo.
Qual è il comando screen?
Ilscreen
comando è anche un multiplexer terminale, ed è ricco di opzioni. Per la verità su tutto ciò che si può fare con esso, controllare il nostro articolo approfondito.
Questa volta, ci concentreremo sutmux
. Mentre andiamo avanti, menzioneremo comescreen
gestisce la stessa funzione o funzione.
Solo una cosa ci ha infastidito suscreen
. Lo copriremo quando ci arriveremo, e vedremo se tmux
le tariffe sono migliori.
COLLEGATE: Come Utilizzare Linux il Comando a schermo
Installazione di tmux
Mentre screen
è generalmente installato di default su distribuzioni Linux, tmux
non è. Per installare tmux
su Ubuntu, digitare il seguente:
sudo apt-get install tmux
Su Manjaro è possibile utilizzare pacman
:
sudo pacman -Sy tmux
Su Fedora 31, tmux
è già installato.
Avvio di una sessione tmux
Per avviaretmux
, basta digitarlo e premere Invio:
tmux
La finestra del terminale mostrerà una barra di stato quando ci si trova in una sessionetmux
.
Il lato destro della barra di stato mostra il nome host e l’ora e la data. Il lato sinistro mostra le seguenti informazioni relative alla sessione:
- : Questo è il nome della sessione. Per impostazione predefinita, sono numerati, a partire da zero. Copriamo come si può dare nomi significativi alle sessioni di seguito.
- 0: bash*: Lo 0 indica che questa è la prima finestra di questa sessione. L’unico processo in esecuzione in questa sessione è
bash
. Se si esegue un programma, il suo nome apparirà qui. L’asterisco ( * ) significa che questa è la finestra che stai guardando. Ogni volta che si crea una nuova finestra in una sessionetmux
, il suo numero di finestra e il nome del programma in esecuzione vengono aggiunti alla barra di stato.
Il comando screen
non fornisce una barra di stato. Devi volare cieco e fare affidamento sul tuo ingegno per sapere cosa sta succedendo, il che richiede un po ‘ di pratica.
Sul lato positivo, non si perde una linea di finestra terminale immobiliare. Naturalmente, normalmente espanderesti la finestra del terminale per rendere utile l’utilizzo di un multiplexer terminale. In tal caso, la perdita di una riga per la barra di stato non è molto di un problema. Abbiamo lasciato le immagini delle finestre del terminale qui alla dimensione predefinita in modo da poter vedere le informazioni.
I comandi sono dati a tmux
usando le sequenze di tasti, e ci sono due parti in questo. Per prima cosa, premi Ctrl+B per ottenere l’attenzione di tmux
. Quindi premere rapidamente il tasto successivo per inviare un comando a tmux
. I comandi vengono dati premendo lettere, numeri, segni di punteggiatura o tasti freccia.
È lo stesso in screen
, tranne che premi Ctrl+A per attirare la sua attenzione.
Per chiudere la finestra, premere Ctrl+B, quindi premere rapidamente X. La barra di stato diventa ambra. Viene quindi richiesto di confermare che si desidera uccidere la finestra.
Premere Y per chiudere la finestra o N se si cambia idea. Non devi premere Invio in seguito; Y o N è sufficiente per registrare la tua scelta.
Se si preme Y, la finestra si chiude. Poiché questa è l’unica finestra di questa sessione, la sessione viene terminata.
La sessione tmux
viene chiusa e si ritorna alla riga di comando da cui si è avviato tmux
. Vedrai “” nella finestra del terminale.
Questo potrebbe sembrare ovvio, ma è una conferma che hai chiuso la sessione e non l’hai lasciata staccata e in esecuzione. Discuteremo le sessioni di distacco di seguito.
Avvio di una sessione tmux denominata
Se avvii regolarmente più sessionitmux
, apprezzerai rapidamente la funzionalità di dare a ciascuna di esse un nome significativo. Puoi nominare anche le sessioni in screen
, ma non vengono visualizzate da nessuna parte nelle finestre della sessione.
Per avviaretmux
con un nome di sessione, utilizzare il comandonew
(nuova sessione) e l’opzione-s
(nome sessione). La nostra sessione si chiamerà “geek-1”, quindi digitiamo quanto segue:
tmux new -s geek-1
Quando viene caricata la sessionetmux
, “geek-1” viene visualizzato come prima voce nella barra di stato, all’estrema sinistra.
Aggiunta di altre finestre
Per creare una nuova finestra nella sessione corrente, premere Ctrl+B, quindi C. Si otterrà una finestra di terminale vuota nella sessione corrente. Così avremo qualcosa di esecuzione in questa nuova finestra, iniziamo il dmesg
il comando -w
(follow) opzione:
dmesg -w
Ora abbiamo due finestre di una sessione; uno è in esecuzione top
e l’altro dmesg
. Possiamo vedere solo uno alla volta, però (più su che in un momento).
Dai un’occhiata al lato sinistro della barra di stato. Siamo ancora nella sessione” geek-1″tmux
. Nella finestra zero, top è in esecuzione e nella finestra uno,dmesg
è in esecuzione. L’asterisco ( * ) dopo dmesg
ci dice quale finestra è visibile.
Per passare da una finestra all’altra, premere Ctrl+B, quindi uno dei seguenti tasti:
- N: Visualizza la finestra successiva.
- P: Visualizza la finestra precedente.
- da 0 a 9: visualizza una finestra numerata da 0 a 9.
È anche possibile scegliere una finestra da un elenco. Se si preme Ctrl + B e poi W, viene visualizzato un elenco di finestre.
Per spostare la barra di evidenziazione ambra, premere le frecce Su o Giù, Home o Fine. La sezione inferiore del display mostra un’anteprima del contenuto nella finestra evidenziata.
Premere Invio per passare alla finestra evidenziata o Esc per uscire dall’elenco delle finestre senza cambiare.
Disconnessione e collegamento delle sessioni
Se si preme Ctrl+B e poi D, si scollega la sessione. Continuerà a funzionare in background, ma non sarà in grado di vedere o interagire con esso.
Abbiamo iniziato top
nella sessione in modo da avere un processo in esecuzione con cui dimostrare. Quindi, premiamo Ctrl + B, quindi D. La sessione scompare e diventa una sessione in background.
Torniamo alla finestra del terminale originale. C’è un messaggio da tmux
che ci dice che la sessione è staccata. Ci ricorda anche il nome che abbiamo dato alla sessione. Questo è utile perché è quello che usiamo per collegare a una sessione in background, e quindi ripristinarlo a uno interattivo.
Per allegare una sessione distaccata, useremo il comando autoesplicativo attach-session
con l’opzione -t
(sessione di destinazione). Forniremo anche il nome della sessione che vogliamo richiamare.
Digitiamo quanto segue:
tmux attach-session -t geek-1
La nostra sessione ritorna e diventa di nuovo una sessione visibile e interattiva.
Qualsiasi processo di lunga durata o continuo avviato prima di scollegare la sessione verrà comunque eseguito in background (a meno che non sia terminato) quando si collega la sessione.
screen
può farlo, ma non in modo intuitivo.
la Gestione di Più Sessioni
aprire un’altra finestra di terminale, e l’avvio di una nuova tmux
sessione di geek-2″:
tmux new -s geek-2
In quella sessione, inizieremo dmesg
:
dmesg -w
Ora, abbiamo la nostra originale “geek-1” tmux
sessione, e una nuova chiamata “geek-2.”
La barra di stato ci mostra questa sessione si chiama “geek-2”, e ha una finestra che esegue dmesg
.
Se premiamo Ctrl + B, e poi D, stacchiamo quella sessione.
Di nuovo nella sessione” geek-1″tmux
, premiamo Ctrl+B, e poi S per vedere un elenco di tmux
sessioni.
Per essere chiari, questo è un elenco di sessioni. Il display simile che abbiamo visto in precedenza era un elenco di finestre in una singola sessione.
È possibile spostare la barra di evidenziazione ambra premendo le frecce Su e Giù, Home e End. La sezione inferiore visualizza un’anteprima del contenuto nella sessione evidenziata.
Se si preme la freccia destra, vengono visualizzate le finestre per la sessione evidenziata.
Premere Invio per passare alla sessione o finestra evidenziata o Esc per uscire dall’elenco delle sessioni senza modificare le sessioni. Se si seleziona una nuova sessione, quella corrente si stacca e quella selezionata viene allegata.
Abbiamo staccato la sessione “geek-2” prima di farlo. Tuttavia, è possibile farlo con sessioni che sono ancora collegate alle finestre del terminale originale. Quando lo fai, tutte le modifiche allo schermo appariranno simultaneamente in entrambe le sessionitmux
.
Il screen
comando può fare anche questo, tramite un insieme simile di comandi.
Lavorare con i riquadri delle finestre
Se si preme Ctrl+B, quindi si raddoppiano le virgolette (“”), si divide la finestra orizzontalmente in due riquadri.
Questo riguarda solo la finestra corrente; gli altri nella sessione non verranno modificati. Abbiamo usato il comandotmux ls
nel riquadro in alto per elencare le finestre in questa sessione. Ce ne sono due, e la riga di stato ci dice che siamo nella finestra uno. Se saltiamo verso la finestra zero premendo Ctrl+B, e poi 0 (zero), vediamo che è proprio come l’abbiamo lasciato.
Queste sono due linee di comando indipendenti, non due viste in una finestra; sono shell distinte e separate. Possiamo mostrarlo eseguendo un comando diverso in ogni riquadro.
Digitiamo quanto segue:
uname -a
ls -hl
Per passare da un riquadro all’altro, premere Ctrl+B, quindi la freccia Su, Giù, Sinistra o Destra.
Se si preme Ctrl+B e quindi il segno percentuale (%)
divide verticalmente il riquadro corrente.
Premere Ctrl+B, e poi Q per fare tmux
flash brevemente il numero di ogni riquadro.
Questi numeri vengono utilizzati nei prompt e nei messaggi da tmux
. Premere Ctrl + B, quindi X per chiudere il riquadro corrente. La barra di stato cambia in ambra e viene richiesto di confermare di voler chiudere il numero del riquadro. Premere Y per rimuovere il riquadro o N per lasciare le cose come sono.
Se si preme Y, il riquadro viene rimosso.
Il comando screen
ha anche riquadri, ma, ancora una volta, sono meno intuitivi da usare. La cosa che ci infastidisce di screen
è se si stacca una sessione con riquadri, scompaiono quando si riattacca quella sessione. Questo invecchia molto rapidamente.
Un Cheat Sheet Ctrl+B
Abbiamo incluso un cheat sheet dei diversi comandi che puoi usare intmux
di seguito.
Comandi di sessione
- S: Elenca le sessioni.
- $: Rinomina la sessione corrente.
- D: Staccare la sessione corrente.
- Ctrl + B, e poi ?: Visualizza la pagina di aiuto in
tmux
.
Comandi finestra
- C: Crea una nuova finestra.
- ,: Rinomina la finestra corrente.
- W: Elenca le finestre.
- N: Passare alla finestra successiva.
- P: Passare alla finestra precedente.
- da 0 a 9: passare al numero della finestra specificato.
Comandi riquadro
- %: crea una divisione orizzontale.
- “: Crea una divisione verticale.
- H o Freccia sinistra: passare al riquadro a sinistra.
- I o Freccia destra: Passare al riquadro a destra.
- J o Freccia giù: passare al riquadro sottostante.
- K o Freccia su: passare al riquadro sopra.
- D: Mostra brevemente i numeri del riquadro.
- O: Passare attraverso i riquadri in ordine. Ogni stampa ti porta alla successiva, fino a quando non li attraversi tutti.
- }: Scambia la posizione del riquadro corrente con quella successiva.
- {: Scambia la posizione del riquadro corrente con quella precedente.
- X: Chiudere il riquadro corrente.
Come confrontano
In termini di funzionalità,screen
etmux
hanno entrambi prestazioni simili e offrono le stesse caratteristiche principali. È il modo in cui accedi a quelle funzionalità che è marcatamente diverso. tmux
offre slicker, modi più comodi per arrivare alle varie funzioni. Tuttavia, questa non è l’unica differenza.
La possibilità di rinominare sessioni e finestre in tmux
è pulito, e il fatto che mantiene i riquadri quando si riattacca una sessione è un punto di svolta.
screen
, d’altra parte, perde completamente i riquadri quando si stacca e si riattacca una sessione. Questo è quasi abbastanza fastidioso da farti evitare di staccare in primo luogo.
C’è molto di più intmux
, incluse le sue capacità di scripting incredibilmente flessibili. Lo devi a te stesso per controllare.
Dave McKay ha usato per la prima volta i computer quando il nastro di carta punzonato era in voga, e da allora ha programmato. Dopo oltre 30 anni nel settore IT, ora è un giornalista tecnologico a tempo pieno. Durante la sua carriera, ha lavorato come programmatore freelance, manager di un team internazionale di sviluppo software, project manager di servizi IT e, più recentemente, come responsabile della protezione dei dati. Dave è un evangelista di Linux e fautore dell’open source.Leggi la Biografia completa ”