Prima di Red Hat Enterprise Linux 8, la screen il comando era incluso. Nella versione 8, è stata presa la decisione di deprecare screen e usa tmux invece. tmux è un multiplexer di terminale, il che significa che puoi avere un processo in esecuzione, disconnetterti dal sistema e quindi riconnetterti in un secondo momento e da un computer diverso in modo da poter continuare a lavorare in quel processo. Un modo semplice per dimostrarlo è inviare tramite SSH a un sistema remoto, avviare tmux , e quindi dall'interno, avvia un ping comando a un sistema remoto, disconnettersi da tmux , riprendi tmux e vedrai che il ping sta ancora andando. Alcuni dei casi d'uso comuni per questo sono:
- Se hai un processo di lunga durata, come un aggiornamento di un'applicazione, e non vuoi lasciare la sessione ssh in esecuzione per tutto il tempo o temi che la tua connessione di rete possa interrompersi. li>
- Inoltre, se hai più sessioni in esecuzione, puoi utilizzare le etichette per le diverse sessioni.
- Se vuoi che qualcun altro veda cosa stai facendo, puoi avviare un
tmuxsessione e quindi fai in modo che l'altra persona SSH nel tuo sistema e si colleghi a queltmuxsessione.
Per avviare una sessione di base, esegui semplicemente tmux comando. Questo ti porta in un tmux sessione e sarai in grado di eseguire comandi e fare cose proprio come faresti normalmente come tuo utente. Per disconnetterti dalla sessione, ma continua a lasciarla in esecuzione, premi Ctrl+B e poi D . Per riprendere la sessione, posso eseguire:
$ tmux ls ### to see if there are any other tmux sessions
$ tmux a ### this will connect to the most recent session that was created. Se ci sono più sessioni, puoi connetterti in base al numero della sessione:
[root@opendemo ~]# tmux ls
0: 1 windows (created Thu Jan 28 19:58:27 2021) [103x22]
1: 1 windows (created Thu Jan 28 20:00:54 2021) [103x22]
2: 1 windows (created Thu Jan 28 20:01:08 2021) [103x22]
3: 1 windows (created Thu Jan 28 20:01:39 2021) [103x22]
[root@opendemo ~]# tmux a -t 1
[detached]
[root@opendemo ~]# Un esempio di come lo uso è che l'ultimo comando del mio script di avvio personale che si connette alla VPN e fa altre cose è eseguire:
# /usr/bin/ssh -t shell-el7.redhat.com tmux attach
Questo mi collega tramite SSH a quel server remoto e quindi si collega al mio tmux sessione che so esiste con irssi in esecuzione. Per informazioni sull'utilizzo di irssi , consulta il mio articolo Usare Irssi all'interno di una sessione Linux tmux.
[ Potrebbe interessarti anche: Building with Buildah:Dockerfiles, command line or scripts]
Il secondo caso d'uso di esempio sopra riguardava l'etichettatura delle diverse sessioni. Ora che abbiamo esaminato alcune delle nozioni di base sull'utilizzo di tmux , vediamo un esempio di utilizzo delle etichette:
[root@opendemo ~]# tmux new -s "database upgrade"
[detached]
[root@opendemo ~]# tmux new -s "other process"
[detached]
[root@opendemo ~]# tmux ls
database upgrade: 1 windows (created Thu Jan 28 19:50:03 2021) [103x22]
other process: 1 windows (created Thu Jan 28 19:50:23 2021) [103x22]
[root@opendemo ~]# tmux attach -t "database upgrade"
[detached]
[root@opendemo ~]# Potresti notare che se hai del testo che scorre oltre la parte superiore dello schermo, non puoi semplicemente premere Pagina su chiave per vederlo.
Per poter usare i tasti cursore in tmux per tornare nel buffer, premi Ctrl+B e poi [ chiave. A questo punto, potrai utilizzare la Freccia chiavi, Pagina su o Pagina giù per spostarsi nell'output sullo schermo.
Se vuoi dividere il tmux sessione in diversi riquadri, puoi dividere la sessione verticalmente con Ctrl+B e poi % . Per dividere il riquadro orizzontalmente, dovresti usare Ctrl+B e poi una doppia virgoletta singola “ . Nello screenshot qui sotto, ho prima diviso la sessione verticalmente, quindi ho diviso il riquadro destro orizzontalmente.
Per spostare il cursore da un riquadro all'altro, dovresti utilizzare Ctrl+B e poi qualsiasi Freccia per muoverti in quella direzione.
Per terminare una sessione senza collegarsi ad essa e quindi digitare exit , useresti kill-session e quindi specificare la sessione da terminare:
Ci sono più opzioni per tmux e sono disponibili per la visualizzazione utilizzando Ctrl+B e poi ? :
[ Impara le basi dell'uso di Kubernetes in questo cheat sheet gratuito. ]
Ulteriori letture possono essere trovate nella pagina man di tmux . Questo articolo ha fornito una rapida introduzione all'uso di tmux comando in modo che una sessione remota disconnessa non finisca per uccidere accidentalmente un processo. Un altro programma simile a tmux è screen e puoi leggere lo screen in questo articolo.