Screen: Tutti i Comandi Base per Gestire Sessioni Teminali su Linux

Qualsiasi utente linux si imbatte nella necessità di aumentare le prestazioni della propria attività lavorativa quotidiana nell'utilizzo del terminale. Per fare ciò si avvale di strumenti software sofisticati che aiutino a raggiungere tale obiettivo: screen è uno strumento tra questi.

Screen è un strumento potentissimo che consente la gestione delle sessioni di terminale su Linux, risulta particolarmente utile per mantenere le sessioni attive anche quando ci si disconnette dal sistema. Attraverso screen possiamo lanciare comandi su un server e successivamente disconnetterci dal server stesso lasciando il comando in esecuzione. Allo stesso modo screen può essere utilizzato per gestire diverse finestre di terminale contemporaneamente.

In questo articolo vedrai come utilizzare i comandi base di screen.

Introduzione

Attraverso i comandi di base puoi avviare una nuova sessione, scollegare una sessione, ricollegarsi ad una sessione esistente, elencare le sessioni attive, terminare una sessione.

Questi sono i comandi indispensabili per cominciare a lavorare produttivamente con screen.

Avviare una Nuova Sessione

Per avviare una nuova sessione di screen, puoi aprire il terminale e digitare:

screen

Il comando apre una finestra screen sulla quale puoi cominciare a lavorare. In questo momento il terminale è attached alla nuova finestra.

Avviare una Nuova Sessione attribuendo un nome

Ogni sessione creata in screen ha un nome associato. Nella creazione della sessione, mostrata al paragrafo precedente, il nome attribuito alla sessione screen è stabilito dal software stesso e di solito esso è costituito dal 6 caratteri numerici. Ovviamente tale nome non è facilmente rintracciabile nel futuro e pertanto è buona norma attribuire un nome parlante alle sessioni screen.

Per creare una nuova sessione attribuendole un nome, esegui il seguente comando:

screen -S nome_sessione

La nuova sessione creata si chiamerà nome_sessione e sarà facilmente distinguibile da altre sessioni attive.

Scollegarsi da una sessione attiva (Detaching)

Quando sei all'interno di una sessione screen, hai di fronte a te un terminale perfettamente funzionante. Tuttavia se esegui il comando exit da questo terminale, distruggerai la sessione screen e tornerai al terminale del nostro sistema (quello sul quale avevi creato la sessione screen in precedenza).

Ma quindi quando sei dentro una sessione screen come puoi abbandonarla senza dover distruggere la sessione? La risposta è nel seguente comando:

Ctrl-a d

Attraverso la pressione della sequenza di caratteri indicata, screen effettuerà il detach della sessione e quindi manterrà la stessa attiva, consentendoti di tornare al terminale originale.

Questo è il comando da utilizzare quando vorrei lanciare uno script che dovrà lavorare in background e ti consentirà di continuare ad utilizzare il terminale originale o di chiuderlo.

Ricollegarsi a una Sessione (Reattaching)

Sei sul tuo terminale di sistema e vuoi ricollegarti a qualche sessione screen creata in precedenza, come puoi fare?

Il comando da eseguire in questo caso è:

screen -r

Questo comando esegue il reattaching della sessione screen attiva, nel caso sia creata solo una. Se hai più di una sessione screen attiva, lancerai il seguente comando:

screen -r ID_SESSIONE

dove ID_SESSIONE è il nome della sessione, che può essere quello attribuito da screen durante la creazione o quello da noi scelto in fase iniziale.

Ma devo quindi ricordarti i nomi che attribuisci alle sessioni screen??? No, non preoccuparti, nel prossimo paragrafo ti dirò come vedere le sessioni attive.

Elenco delle Sessioni screen Attive

In qualsiasi momento puoi vedere le sessioni screen attive, con il comando:

screen -ls

L'output prodotto dal comando è il seguente:

There are screens on:
        612793.pippo    (Detached)
        631071.pluto    (Detached)
2 Sockets in /run/screens/S-scrivocodice.

Da notare che il comando precedente ti indica che hai due sessioni pippo e pluto entrambe in stato detached. Questo output ti comunica che hai invocato il comando dal terminale di sistema poiché nessuna delle due sessioni è Attached.

Se infatti eseguissi l'attaching alla sessione pippo e rieseguissi il comando, avresti come risultato:

There are screens on:
        612793.pippo    (Attached)
        631071.pluto    (Detached)
2 Sockets in /run/screens/S-scrivocodice.

Da qui deduci che sei all'interno della sessione pippo.

Terminare una sessione

Per terminare una sessione screen, ricollegati alla sessione e chiudi la shell all'interno della sessione con il comando exit. In alternativa, puoi chiudere una sessione digitando i caratteri:

Ctrl-d

Conclusioni

In questo articolo hai visto come utilizzare screen su Linux per gestire le sessioni di terminale. Ora sei in grado di creare nuove sessioni, scollegarti e ricollegarti alle sessioni attive.