Come usare tmux su Linux (e perché è meglio dello schermo)

Un terminale Linux stilizzato su un laptop con sessioni di shell in background.

fatmawati achmad zaenuri/Shutterstock.com



Il Linux |_+_| comando è un multiplexer di terminale, Piace |_+_|. I suoi sostenitori sono molti e accesi, quindi abbiamo deciso di confrontare i due. È |_+_| davvero meglio, o si tratta solo di preferire quello che sai?

tmux contro schermo

Sia il |_+_| e GNU |_+_| comandi sono multiplexer terminali? . Ti consentono di avere più finestre all'interno di una singola finestra di terminale e di saltare avanti e indietro tra di esse. Una finestra può essere suddivisa in riquadri, ognuno dei quali fornisce una riga di comando indipendente.





10 comandi di base di Linux per principianti IMPARENTATO 10 comandi di base di Linux per principianti

Puoi anche scollegare una sessione e diventa un'entità senza testa in esecuzione in background: puoi persino chiudere la finestra del terminale che l'ha avviata. Quando sei pronto, puoi aprire una nuova finestra del terminale e ricollegare la sessione ancora in esecuzione. Puoi anche farlo da capo una connessione SSH .

Puoi scollegare una sessione su un computer, tornare a casa e accedere al computer remoto. Una volta riconnesso, puoi ricollegare la sessione in background e utilizzarla di nuovo in modo interattivo.



Qual è il comando dello schermo?

Il |_+_| command è anche un multiplexer di terminale ed è ricco di opzioni. Per i dettagli su tutto ciò che puoi fare con esso, dai un'occhiata al nostro articolo di approfondimento .

Annuncio pubblicitario

Questa volta, andremo a concentrati su |_+_| . Andando avanti, menzioneremo come |_+_| gestisce la stessa caratteristica o funzione.

Solo una cosa ci ha infastidito di |_+_|. Ne parleremo quando ci arriveremo, e vedremo se |_+_| va meglio.



IMPARENTATO: Come usare il comando dello schermo di Linux

Installazione di tmux

Mentre |_+_| è generalmente installato di default sulle distribuzioni Linux più diffuse, |_+_| non lo è. Per installare |_+_| su Ubuntu, digita quanto segue:

tmux

Su Manjaro puoi usare |_+_|:

screen

Su Fedora 31, |_+_| è già installato.

Avvio di una sessione tmux

Per iniziare |_+_|, digitalo e premi Invio:

tmux

La finestra del terminale mostrerà una barra di stato quando ti trovi in ​​un |_+_| sessione.

Il lato destro della barra di stato mostra il nome host, l'ora e la data. Il lato sinistro mostra le seguenti informazioni relative alla sessione:

    [0]:Questo è il nome della sessione. Per impostazione predefinita, sono numerati, a partire da zero. Di seguito viene spiegato come assegnare nomi significativi alle sessioni. 0:bash*:Lo 0 indica che questa è la prima finestra in questa sessione. L'unico processo in esecuzione in questa sessione è |_+_|. Se esegui un programma, il suo nome apparirà qui. L'asterisco (*) significa che questa è la finestra che stai guardando. Ogni volta che crei una nuova finestra in un |_+_| sessione, il suo numero di finestra e il nome del programma in esecuzione in essa vengono aggiunti alla barra di stato.

Il |_+_| il comando non ti dà una barra di stato per impostazione predefinita. Devi volare alla cieca e fare affidamento sul tuo ingegno per sapere cosa sta succedendo, il che richiede un po' di pratica. (A meno che tu configura la tua barra di stato .)

Tra i lati positivi, non perderai una linea di immobili nella finestra del terminale. Ovviamente, normalmente espandi la finestra del tuo terminale per rendere utile l'utilizzo di un multiplexer di terminale. In tal caso, la perdita di una riga per la barra di stato non è un grosso problema. Abbiamo lasciato le immagini delle finestre del terminale qui alla dimensione predefinita in modo che tu possa vedere le informazioni.

Annuncio pubblicitario

I comandi sono dati a |_+_| usando le sequenze di tasti, e ci sono due parti a questo. Per prima cosa, premi Ctrl+B per ottenere l'attenzione di |_+_|. Quindi premi rapidamente il tasto successivo per inviare un comando a|_+_|. I comandi vengono dati premendo lettere, numeri, segni di punteggiatura o tasti freccia.

È lo stesso in |_+_|, tranne che premi Ctrl+A per attirare la sua attenzione.

Per chiudere la finestra, premi Ctrl+B, quindi premi rapidamente X. La barra di stato diventa color ambra. Ti viene quindi richiesto di confermare che desideri eliminare la finestra.

Premi Y per chiudere la finestra o N se cambi idea. Non è necessario 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 in questa sessione, la sessione viene terminata.

Il |_+_| la sessione viene chiusa e torni alla riga di comando da cui hai lanciato |_+_|. Vedrai [uscito] nella finestra del terminale.

Annuncio pubblicitario

Potrebbe sembrare che stia affermando l'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ù |_+_| sessioni, apprezzerai rapidamente la funzionalità di dare a ciascuna di esse un nome significativo. Puoi anche nominare le sessioni in |_+_|, ma non vengono visualizzate da nessuna parte nelle finestre della sessione.

Per iniziare |_+_| con un nome di sessione, usa |_+_| (nuova sessione) e il comando |_+_| (nome sessione). La nostra sessione si chiamerà geek-1, quindi digitiamo quanto segue:

tmux

Quando il |_+_| carica di sessione, geek-1 viene visualizzato come prima voce nella barra di stato, all'estrema sinistra.

Una sessione tmux con il nome

Aggiungere altre finestre

Per creare una nuova finestra nella sessione corrente, premi Ctrl+B e poi C. Otterrai una finestra di terminale vuota nella sessione corrente. Quindi avremo qualcosa in esecuzione in questa nuova finestra, iniziamo il |_+_| comando con il |_+_| (segui) opzione:

screen

Ora abbiamo due finestre nella sessione; uno è in esecuzione |_+_| e l'altro |_+_|. Tuttavia, possiamo vederne solo uno alla volta (ne parleremo più avanti tra un momento).

Annuncio pubblicitario

Dai un'occhiata al lato sinistro della barra di stato. Siamo ancora nel geek-1 |_+_| sessione. Nella finestra zero, top è in esecuzione, e nella finestra uno, |_+_| sta correndo. L'asterisco (*) dopo |_+_| ci dice quale finestra è visibile.

Per passare da una finestra all'altra, premi 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.

Puoi anche scegliere una finestra da un elenco. Se premi Ctrl+B e poi W, viene visualizzato un elenco di finestre.

Per spostare la barra di evidenziazione color ambra, premi le frecce su o giù, Home o Fine. La sezione inferiore del display mostra un'anteprima del contenuto nella finestra evidenziata.

Premi Invio per passare alla finestra evidenziata o Esc per uscire dall'elenco delle finestre senza cambiare.

Distacco e collegamento di sessioni

Se premi Ctrl+B e poi D, staccherai la sessione. Continuerà a funzionare in background, ma non sarai in grado di vederlo o interagire con esso.

Annuncio pubblicitario

Abbiamo iniziato |_+_| nella sessione, quindi abbiamo un processo in esecuzione con cui dimostrare. Quindi, premiamo Ctrl+B e poi D. La sessione scompare e diventa una sessione in background.

Torniamo alla finestra del terminale originale. C'è un messaggio da |_+_| dicendoci che la sessione è distaccata. Ci ricorda anche il nome che abbiamo dato alla sessione. Questo è utile perché è ciò che usiamo per allegare una sessione in background e quindi ripristinarla in una interattiva.

Per allegare una sessione separata, utilizzeremo l'autoesplicativo |_+_| comando con |_+_| (sessione di destinazione). Forniremo anche il nome della sessione che desideriamo ricordare.

Digitiamo quanto segue:

screen

La nostra sessione ritorna e diventa di nuovo una sessione visibile e interattiva.

Tutti i processi di lunga durata o continui che hai avviato prima di scollegare la sessione continueranno a essere eseguiti in background (a meno che non siano terminati) quando colleghi la sessione.

|_+_| può farlo, ma non così intuitivamente.

Gestire più sessioni

Apriamo un'altra finestra di terminale e iniziamo una nuova |_+_| sessione chiamata geek-2:

tmux

In quella sessione, inizieremo |_+_|:

screen

Annuncio pubblicitario

Ora abbiamo il nostro geek-1 originale |_+_| sessione e uno nuovo chiamato geek-2.

La barra di stato ci mostra che questa sessione si chiama geek-2 e ha una finestra che esegue |_+_|.

Se premiamo Ctrl+B e poi D, stacchiamo quella sessione.

Sessione tmux staccata geek-2 in una finestra terminale.

Di nuovo nel geek-1 |_+_| sessione, premiamo Ctrl+B e poi S per vedere un elenco di |_+_| sessioni.

Per essere chiari, questo è un elenco di sessioni. La visualizzazione simile che abbiamo visto in precedenza era un elenco di finestre in una singola sessione.

Puoi spostare la barra di evidenziazione color ambra premendo le frecce su e giù, Home e Fine. La sezione inferiore mostra un'anteprima del contenuto nella sessione evidenziata.

Annuncio pubblicitario

Se si preme la Freccia destra, vengono visualizzate le finestre della sessione evidenziata.

Premere Invio per passare alla sessione o finestra evidenziata o Esc per uscire dall'elenco delle sessioni senza modificare le sessioni. Se selezioni una nuova sessione, quella attuale si stacca e quella che hai selezionato viene allegata.

Abbiamo staccato la sessione geek-2 prima di farlo. Tuttavia, puoi farlo con le sessioni che sono ancora collegate alle finestre del terminale originale. Quando lo fai, qualsiasi modifica dello schermo apparirà contemporaneamente in entrambi |_+_| sessioni.

Il |_+_| anche il comando può farlo tramite un insieme di comandi simile.

Lavorare con i vetri delle finestre

Se si preme Ctrl+B e quindi le virgolette doppie (), si divide la finestra orizzontalmente in due riquadri.

Ciò ha effetto solo sulla finestra corrente; gli altri nella sessione non verranno modificati. Abbiamo usato |_+_| comando 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 passiamo alla finestra zero premendo Ctrl+B, e poi 0 (zero), vediamo che è proprio come l'abbiamo lasciata.

Annuncio pubblicitario

Queste sono due righe di comando indipendenti, non due viste in una finestra; sono gusci distinti e separati. Possiamo mostrarlo eseguendo un comando diverso in ogni riquadro.

Digitiamo quanto segue:

screen

tmux

Per passare da un riquadro all'altro, premere Ctrl+B, quindi la freccia su, giù, sinistra o destra.

Due comandi diversi in due riquadri in una sessione tmux in una vedova terminale.

Se premi Ctrl+B e poi il segno di percentuale (|_+_| divide verticalmente il riquadro corrente.

Premi Ctrl+B, quindi Q per creare |_+_| lampeggia brevemente il numero di ciascun riquadro.

Questi numeri vengono utilizzati nei prompt e nei messaggi di |_+_|. Premi Ctrl+B e poi X per chiudere il riquadro corrente. La barra di stato diventa color ambra e ti viene chiesto di confermare che desideri chiudere quel numero di riquadro. Premi Y per rimuovere il riquadro o N per lasciare le cose come sono.

Se si preme Y, il riquadro viene rimosso.

Annuncio pubblicitario

Il |_+_| Il comando ha anche dei riquadri, ma, ancora una volta, sono meno intuitivi da usare. La cosa che ci infastidisce di |_+_| è che se scolleghi una sessione con i riquadri, scompaiono quando riattacchi quella sessione. Questo invecchia molto rapidamente.

Un cheat sheet Ctrl+B

Abbiamo incluso un cheat sheet dei diversi comandi che puoi usare in |_+_| qui di seguito.

Comandi di sessione

    S:Elenca le sessioni. $:Rinomina la sessione corrente. D:Scollega la sessione corrente. Ctrl+B, e poi ?:Visualizza la pagina della guida in |_+_|.

Comandi della finestra

    C:Crea una nuova finestra. ,:Rinomina la finestra corrente. IN:Elenca le finestre. N:Passa alla finestra successiva. P:Passa alla finestra precedente. da 0 a 9:Passa al numero di finestra specificato.

Comandi del riquadro

    %:Crea una divisione orizzontale. :Crea una divisione verticale. H o freccia sinistra:Spostati nel riquadro a sinistra. I o freccia destra:Spostati nel riquadro a destra. J o freccia giù:Passa al riquadro sottostante. K o Freccia su:Passa al riquadro in alto. Q: mostra brevemente i numeri di riquadro. O:Spostati tra i riquadri in ordine. Ogni pressione ti porta alla successiva, finché non le esegui tutte. }:Scambia la posizione del riquadro corrente con quello successivo. {:Scambia la posizione del riquadro corrente con il precedente. X:Chiudi il riquadro corrente.

Come si confrontano?

In termini di funzionalità, |_+_| e |_+_| entrambi funzionano allo stesso modo e offrono le stesse caratteristiche principali. È il modo in cui accedi a quelle funzionalità che è notevolmente diverso. |_+_| offre modi più semplici e comodi per accedere alle varie funzioni. Tuttavia, questa non è l'unica differenza.

La possibilità di rinominare sessioni e finestre in |_+_| è pulito e il fatto che mantenga i riquadri quando si ricollega una sessione è un punto di svolta.

|_+_|, d'altra parte, perde completamente i riquadri quando si scollega e si ricollega una sessione. Questo è quasi abbastanza fastidioso da farti evitare di staccare in primo luogo.

C'è molto di più in |_+_|, comprese le sue capacità di scripting incredibilmente flessibili. Lo devi a te stesso per verificarlo.

Comandi Linux
File catrame · pv · gatto · tac · chmod · presa · differenza · sed · Con · uomo · spinto · popd · fsck · testdisk · seguito · fd · pandoc · cd · $PATH · awk · giuntura · jq · piega · unico · journalctl · coda · stato · ls · fstab · buttato fuori · meno · chgrp · chown · rev · Guarda · stringhe · genere · rinominare · cerniera lampo · decomprimere · montare · smontare · installare · fdisk · mkfs · rm · rmdir · rsync · df · gpg · noi · nano · mkdir · a partire dal · ln · toppa · convertire · rclone · brandello · SRM
Processi alias · schermo · superiore · Bello · renice · progresso · strace · sistema · tmux · chsh · storia · in · lotto · libero · quale · dmesg · usermod · ps · chroot · xargs · tty · mignolo · lsof · vmstat · tempo scaduto · parete · · uccisione · dormire · sudo · il suo · volta · gruppoaggiungi · usermod · gruppi · lshw · spegnimento · riavviare · fermare · spegni · passwd · lscpu · crontab · Data · bg · fg
Rete netstat · ping · traceroute · ip · ss · chi è · fail2ban · bmon · voi · dito · nmap · ftp · arricciare · wget · chi · chi sono · In · iptables · ssh-keygen · ufw

IMPARENTATO: I migliori laptop Linux per sviluppatori e appassionati

LEGGI SUCCESSIVO Foto del profilo di Dave McKay Dave McKay
Dave McKay ha usato per la prima volta i computer quando era in voga il nastro di carta perforata, 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 Data Protection Officer. I suoi scritti sono stati pubblicati da howtogeek.com, cloudavvyit.com, itenterpriser.com e opensource.com. Dave è un evangelista di Linux e un sostenitore dell'open source.
Leggi la biografia completa

Articoli Interessanti