GNU/Linux >> Linux Esercitazione >  >> Linux

Esempi di comandi dello schermo per gestire più sessioni di terminale

In questa guida vedremo cos'è GNU Screen e l'utilizzo di base del comando Screen con esempi nei sistemi operativi Linux e Unix.

Cos'è GNU Screen?

Schermo GNU è un multiplexer di terminali (gestore di finestre). Come dice il nome, Screen esegue il multiplexing del terminale fisico tra più shell interattive, così possiamo eseguire attività diverse in ogni sessione del terminale.

Tutte le sessioni dello schermo eseguono i loro programmi in modo completamente indipendente. Pertanto, un programma o un processo in esecuzione all'interno di una sessione dello schermo continuerà a funzionare anche se la sessione viene chiusa o disconnessa accidentalmente.

Ad esempio, durante l'aggiornamento di Ubuntu server tramite SSH, il comando Screen continuerà a eseguire il processo di aggiornamento nel caso in cui la sessione SSH venga interrotta per qualsiasi motivo.

GNU Screen ci consente di creare facilmente più sessioni dello schermo, passare da una sessione all'altra, copiare il testo da una sessione all'altra, allegare o scollegare una sessione in qualsiasi momento e così via.

GNU Screen è uno degli importanti strumenti da riga di comando che ogni amministratore Linux dovrebbe imparare e utilizzare ovunque sia necessario.

Vediamo come gestire più sessioni di Terminale usando il comando Screen con esempi in Linux.

Installa GNU Screen in Linux

GNU Screen è disponibile nei repository predefiniti della maggior parte dei sistemi operativi Linux.

Per installare GNU Screen su Arch Linux, EndeavourOS, Manjaro Linux, esegui:

$ sudo pacman -S screen

Su Debian, Ubuntu, Linux Mint:

$ sudo apt-get install screen

Su Fedora, RHEL, CentOS. AlmaLinux, Rocky Linux:

$ sudo dnf install screen

Oppure,

$ sudo yum install screen

Su CentOS 8, Screen non è disponibile nei repository ufficiali. Quindi devi abilitare [EPEL] repository e quindi installa la schermata.

$ sudo dnf install epel-release
$ sudo dnf install screen

Su SUSE/openSUSE:

$ sudo zypper install screen

Andiamo avanti e vediamo alcuni esempi di comandi su schermo.

Esempi di comandi a schermo

La scorciatoia predefinita del prefisso per tutti i comandi in Screen è Ctrl+a . Devi usare molto questa scorciatoia quando usi Screen. Quindi, ricorda questa scorciatoia da tastiera.

Crea nuova sessione Screen

Creiamo una nuova sessione Screen e alleghiamoci. Per farlo, digita il seguente comando nel terminale:

screen

Ora, esegui qualsiasi programma o processo all'interno di questa sessione. Il processo o il programma in esecuzione continuerà a funzionare anche se sei disconnesso da questa sessione.

Esci dalle sessioni dello schermo

Per scollegarti dall'interno di una sessione dello schermo, premi Ctrl+a e d . Non è necessario premere entrambe le combinazioni di tasti contemporaneamente. Per prima cosa premi Ctrl+a e quindi premi d . Dopo esserti disconnesso da una sessione, vedrai un output simile a quello di seguito.

[detached from 29149.pts-0.sk]

Qui, 29149 è l'ID schermo e pts-0.sk è il nome della sessione dello schermo. Puoi allegare, scollegare e terminare le sessioni Screen utilizzando l'ID schermo o il nome della rispettiva sessione.

Crea una sessione denominata

Puoi anche creare una sessione dello schermo con qualsiasi nome personalizzato a tua scelta diverso dal nome utente predefinito come di seguito.

screen -S ostechnix

Il comando precedente creerà una nuova sessione dello schermo con il nome "xxxxx.otechnix" e allegalo subito. Per uscire dalla sessione corrente, premi Ctrl+a seguito da d .

La denominazione delle sessioni dello schermo può essere utile quando si desidera trovare quali processi sono in esecuzione su quali sessioni. Ad esempio, quando uno stack LAMP di configurazione all'interno di una sessione, puoi semplicemente nominarlo come di seguito.

screen -S lampstack

Crea sessioni separate

A volte, potresti voler creare una sessione, ma non allegarla automaticamente. In questi casi, esegui il comando seguente per creare una sessione separata denominata "senthil" :

screen -S senthil -d -m

Oppure, in breve:

screen -dmS senthil

Il comando precedente creerà una sessione chiamata "senthil", ma non si allegherà ad essa.

Elenca le sessioni dello schermo

Per elencare tutte le sessioni in esecuzione (collegate o scollegate), eseguire:

screen -ls

Esempio di output:

There are screens on:
    29700.senthil   (Detached)
    29415.ostechnix (Detached)
    29149.pts-0.sk  (Detached)
3 Sockets in /run/screens/S-sk.

Come puoi vedere, ho tre sessioni in esecuzione e tutte sono staccate.

Se non c'erano sessioni dello schermo in esecuzione, otterrai un output come di seguito.

No Sockets found in /run/screen/S-sk.

Allega alle sessioni di Screen

Se vuoi collegarti a una sessione in qualsiasi momento, ad esempio 29415.otechnix , esegui semplicemente:

screen -r 29415.ostechnix

Oppure,

screen -r ostechnix

Oppure, usa semplicemente l'ID schermo:

screen -r 29415

Per verificare se siamo allegati alla suddetta sessione, è sufficiente elencare le sessioni aperte e verificare.

screen -ls

Esempio di output:

There are screens on:
        29700.senthil   (Detached)
        29415.ostechnix (Attached)
        29149.pts-0.sk  (Detached)
3 Sockets in /run/screens/S-sk.

Come puoi vedere nell'output sopra, siamo attualmente collegati a 29415.otechnix sessione. Per uscire dalla sessione corrente, premere ctrl+a, d.

Crea sessioni nidificate

Quando eseguiamo il comando "schermo", creerà una singola sessione per noi. Possiamo, tuttavia, creare sessioni nidificate (una sessione all'interno di una sessione).

Innanzitutto, crea una nuova sessione o allega una sessione aperta. Creerò una nuova sessione denominata "nidificata".

screen -S nested

Ora premi Ctrl+a e c all'interno della sessione per creare un'altra sessione. Ripeti l'operazione per creare un numero qualsiasi di sessioni Screen nidificate. Ad ogni sessione sarà assegnato un numero. Il numero inizierà da 0 .

Puoi passare alla sessione successiva premendo Ctrl+n e passa alla precedente premendo Ctrl+p .

Ecco l'elenco delle scorciatoie da tastiera importanti per gestire le sessioni nidificate.

  • Ctrl+a ” - Elenca tutte le sessioni
  • Ctrl+a 0 - Passa alla sessione numero 0
  • Ctrl+a n - Passa alla sessione successiva
  • Ctrl+a p - Passa alla sessione precedente
  • Ctrl+a S - Dividi la regione corrente orizzontalmente in due regioni
  • Ctrl+a l - Dividi la regione corrente verticalmente in due regioni
  • Ctrl+a Q - Chiudi tutte le sessioni tranne quella corrente
  • Ctrl+a X - Chiudi la sessione corrente
  • Ctrl+a \ - Termina tutte le sessioni e termina Screen
  • Ctrl+a? - Mostra le associazioni di tasti. Per uscire, premi INVIO.

Blocca sessioni

Lo schermo ha un'opzione per bloccare una sessione dello schermo. Per farlo, premi Ctrl+a e x . Inserisci la tua password Linux per bloccare lo schermo.

Screen used by sk <sk> on ubuntuserver.
Password:

Registrazione delle sessioni

Potresti voler registrare tutto quando sei in una sessione Screen. Per farlo, premi semplicemente Ctrl+a e H .

In alternativa, puoi abilitare la registrazione all'avvio di una nuova sessione utilizzando -L parametro.

screen -L

D'ora in poi, tutte le attività che hai svolto all'interno della sessione verranno registrate e archiviate in un file denominato screenlog.x nella tua directory $HOME. Qui, x è un numero.

Puoi visualizzare il contenuto del file di registro utilizzando cat comando o qualsiasi applicazione di visualizzazione di testo.

Lettura consigliata:

  • Come registrare tutto ciò che fai nel terminale

Sessioni di avvio automatico dello schermo

L'avvio automatico delle sessioni dello schermo sarà di grande aiuto durante l'esecuzione di un processo di lunga durata tramite SSH. Se hai perso la connettività di rete per qualsiasi motivo, il processo continuerà a essere eseguito all'interno della sessione Screen nel sistema remoto e potrai ricollegarti ad esso quando la rete tornerà online. Per sapere come avviare automaticamente una schermata all'avvio del sistema, fare riferimento al seguente collegamento.

  • Come avviare automaticamente la sessione dello schermo su Linux durante l'accesso

Verifica se sei una sessione Screen o meno

Come avrai notato, la sessione normale e la sessione dello schermo avranno esattamente lo stesso aspetto. Non vedrai alcuna indicazione ovvia se ti trovi all'interno della sessione Screen o della sessione normale. Per sapere se sei in sessione Screen o meno, segui i passaggi indicati nel link sottostante.

  • Come verificare se sei in sessione schermo o meno in Linux

Sessioni Kill Screen

Se una sessione non è più richiesta, uccidila. Per terminare una sessione separata denominata "senthil":

screen -r senthil -X quit

Oppure,

screen -X -S senthil quit

Oppure,

screen -X -S 29415 quit

Se non ci sono sessioni aperte, vedrai il seguente output:

$ screen -ls
No Sockets found in /run/screens/S-sk.

Per maggiori dettagli, fare riferimento alle pagine man.

$ man screen

Esiste anche un'utilità da riga di comando simile denominata "Tmux" che fa lo stesso lavoro di GNU Screen. Per saperne di più, fare riferimento alla seguente guida.

  • Esempi di comando Tmux per gestire più sessioni di terminale

Linux
  1. Condivisione di sessioni del terminale Linux con Tmux e Screen

  2. 8 Esempi di comandi TR Linux

  3. 10 esempi di comandi Cat per gestire i file in Linux / UNIX

  4. 20 Esempi di comandi Zypper per gestire i pacchetti su SUSE Linux

  5. Come posso avviare automaticamente più sessioni su schermo?

Come utilizzare il comando dello schermo su Linux per gestire i terminali

Come eseguire più comandi Linux contemporaneamente nel terminale Linux

15 Esempi di comandi Linux sfdisk per gestire le partizioni del disco

Esempi di comandi dello schermo:ottieni il controllo del terminale Linux / Unix

Esempi di comandi ip per gestire la rete in Linux

ClusterSSH(cssh) – Gestisci più sessioni SSH su Linux