15 Comando della schermata di Linux per la gestione delle sessioni del terminale

Lo schermo o lo schermo GNU è un multiplexer terminale. Usando questo, puoi eseguire qualsiasi numero di applicazioni basate su console, shell di comandi interattivi, applicazioni basate su corsi, ecc. È possibile utilizzare lo schermo per continuare a eseguire il programma dopo aver chiuso accidentalmente il terminale o anche dopo essersi disconnessi in un secondo momento. riprendi direttamente da dove ti trovi.
Un esempio pratico è quando esegui un’attività su una macchina Linux remota in cui hai una sessione ssh. Molte volte hai visto terminare questa sessione ssh e non puoi più lavorare. È qui che entra in gioco l’utilità dello schermo per aiutare a riprendere le sessioni.
Come funziona lo schermo?
Quando viene chiamato screen, crea una singola finestra con una shell al suo interno (o il comando specificato) e quindi si toglie di mezzo in modo da poter utilizzare il programma come faresti normalmente. Quindi, in qualsiasi momento, puoi creare nuove finestre (a schermo intero) con altri programmi al loro interno (comprese più shell), chiudere la finestra corrente, visualizzare un elenco di finestre attive, copiare testo tra finestre, passare da una finestra all’altra ecc. .
Lo schermo gestisce a sessione costituito da uno o più finestre ciascuno contenente una shell o un altro programma. Inoltre, lo schermo può suddividere un display del terminale in più display regioni, ognuno dei quali visualizza il contenuto di una finestra. Tutte le finestre eseguono i loro programmi in modo completamente indipendente l’uno dall’altro. I programmi continuano a essere eseguiti quando la loro finestra non è attualmente visibile e anche quando l’intera sessione dello schermo è scollegata dal terminale dell’utente. Questo è fondamentalmente per prevenire il timeout della sessione ssh involontario.
Ora controlliamo come utilizzare questa utility in Linux.
1) Richiama nuove finestre
Se il comando screen non è già presente sul tuo sistema, puoi installarlo con il comando seguente.
Su Debian
# apt-get install screen
Su Cento
# yum install screen
Puoi avviare lo schermo semplicemente digitando screen al prompt dei comandi. Questo comando sullo schermo aprirà una nuova finestra sullo schermo.
# screen
Puoi aprire una nuova finestra all’interno dello schermo e anche dare un nome alla finestra, ad esempio top. Viene creata una sessione con identificato da quel nome. Il nome può essere utilizzato per allegare nuovamente in una fase successiva.
# screen -S aloft
Tieni presente che puoi svolgere tutto il tuo lavoro come faresti nel normale ambiente CLI.
2) Elenca tutti i processi sullo schermo
Poiché possiamo avviare nuove finestre sullo schermo, è possibile mostrare le schermate attualmente aperte, comprese quelle in esecuzione in background. Questo elencherà tutte le sessioni dello schermo esistenti.
# screen -ls
There is a screen on:
10437.aloft (Attached)
1 Socket in /var/run/screen/S-root.
3) Comando della schermata principale
È possibile operare con lo schermo utilizzando alcuni comandi. Di seguito elencheremo i principali comandi più utili.
Ctrl-a
seguito dac
: crea una nuova finestraCtrl-a
seguito daw
: visualizza l’elenco di tutte le finestre attualmente aperteCtrl-a
seguito daA
: rinomina le finestre correnti. Il nome apparirà quando elenchi l’elenco delle finestre con cui è stato apertoCtrl-a
seguito daw
.Ctrl-a
seguito dan
: vai alle seguenti finestreCtrl-a
seguito dap
: vai alle finestre precedentiCtrl-a
seguito da Ctrl-a: torna all’ultima finestra utilizzata.Ctrl-a
seguito da un numero da 0 a X: accesso alla finestra n. X.Ctrl-a
seguito da"
: scegliere su quali finestre passare.Ctrl-a
seguito dak
: chiude le finestre correnti (kill)Ctrl-a
seguito daS
: divide le finestre correnti orizzontalmente. Per passare da una finestra all’altra, procedereCtrl-a
seguito daTab
.Ctrl-a
seguito da|
: divide verticalmente le finestre correntiCtrl-a
seguito dad
: scollega una sessione dello schermo senza interromperlaCtrl-a
seguito dar
: ricollega una sessione dello schermo scollegataCtrl-a
seguito da[
: start the copy modeCtrl-a
followed by]
: incolla il testo copiato
4) Visualizzare i parametri dello schermo
Puoi elencare tutti i parametri dello schermo per aiuto. Per fare ciò, digita Ctrl-a
seguito dal carattere ?
. Verrà visualizzato un elenco di tutti i comandi.

5) Sessione di distacco
Il miglior vantaggio del comando screen è la possibilità di scollegare una sessione dello schermo. È possibile avviare una sessione dello schermo su un computer in ufficio, staccare la sessione dal terminale locale, tornare a casa, connettersi al computer dell’ufficio remoto e ricollegare la sessione dello schermo al terminale sul computer di casa. Durante l’intervallo, tutti i processi sul computer desktop hanno continuato a essere eseguiti. Questa funzione viene utilizzata per prevenire la perdita di dati che si verifica improvvisamente durante una connessione ssh interrotta.
Per capire meglio di cosa stiamo parlando, facciamo un esempio. Lanciamo un processo di installazione.

Ora staccheremo lo schermo con Ctrl-a
seguito da d
. Possiamo controllare con il comando qui sotto.
# screen -ls
There is a screen on:
12449.win (Detached)
1 Socket in /var/run/screen/S-root.
È possibile staccare lo schermo con screen -d
comando seguito dall’ID dello schermo o dal nome dello schermo. Significa che dovrai aprire un’altra finestra o console per staccare la sessione se la console corrente ha un processo in corso. Per prima cosa devi elencare la schermata attualmente allegata.
# screen -ls
There is a screen on:
13686.win200 (Attached)
1 Socket in /var/run/screen/S-root.
Ora, su un nuovo terminale, inserisci il comando seguente.
# screen -d 13686
oppure puoi usare il nome
# screen -d win200
Avrai un output come sotto che indica che lo schermo è stato staccato.
[remote detached from 13686.win200]
6) Ricollegare una sessione
Dopo aver staccato lo schermo è possibile riattaccarlo con il comando. Normalmente, la sessione dello schermo è ancora in esecuzione, quindi tutti i tuoi processi non vengono interrotti. Prima di ricollegare una sessione, è necessario elencare la sessione come sopra, quindi scegliere la sessione da ricollegare.
# screen -r 13686
oppure puoi usare
# screen -r win200

Puoi vedere che dopo aver ricollegato la sessione, le finestre mostrano la fine del processo in fase di completamento. Significa che puoi lavorare su ssh e staccare una sessione che ricollegherai a casa per continuare il tuo processo di lavoro senza perdere nulla.
7) Creare una nuova shell interattiva
Se hai del lavoro da fare e non vuoi perdere il tuo lavoro, è possibile creare una nuova shell interattiva. Puoi facilmente avere diverse shell interattive (numerate da 0 a X) aperte in una finestra di terminale. Quando avvii una nuova sessione, sarai loggato conchiglia 0.
Per fare ciò, è necessario creare nuove finestre in finestre esistenti con Ctrl-a
seguito da c
. Avrai qualcosa come sotto.

Puoi vedere schermo 3 nella parte superiore dello screenshot che indica che siamo nella terza schermata. In fondo possiamo anche vedere 3
8) Passa tra le finestre dello schermo
Quando sono aperte più finestre dello schermo, per passare da una finestra all’altra, premere Control-a
seguito da space
o numero di caso. Ad esempio, per passare alla cartuccia numero 1, premere Control-a
poi 1
. Ad esempio, passeremo alla prima schermata.

La parte superiore e inferiore dello screenshot mostra che siamo nella prima schermata.
9) Finestre divise
Per avere una visione globale del tuo lavoro, potresti dover dividere le finestre invece di avere più finestre. Ctrl-a
seguito da S
o |
dividere lo schermo orizzontalmente o verticalmente. È possibile ripetere l’operazione senza limiti. Per spostare altre finestre, usa Ctrl-a
seguito da Tab
.

Quando il cursore si trova nelle finestre in basso, puoi creare una nuova finestra (Ctrl-a
seguito da c
) o chiamare una finestra esistente (Ctrl-a
seguito da un numero).

Per chiudere una finestra divisa, utilizzare Ctrl-a
seguito da X
(Notare che è il carattere maiuscolo).
10) Riconnettiti a una sessione ssh disconnessa
Quando accedi per la prima volta,
- ruotare lo schermo per avviare una sessione dello schermo. Ottieni un’altra shell, esegui i comandi in quella.
# screen -S remote_session
- Quando hai finito, scollega la sessione dello schermo, quindi disconnettiti da ssh
[detached from 20995.remote_session]
- Puoi prima elencare tutte le sessioni dello schermo
# screen -ls
There are screens on:
20995.remote_session (Detached)
14331.daby (Attached)
14134.mom (Detached)
3 Sockets in /var/run/screen/S-root.
- Riconnettiti alla sessione sullo schermo e continua il tuo lavoro
# screen -d -r remote_ression
Il comando screen è il più utilizzato per la sessione ssh perché ti aiuta a continuare il tuo lavoro dopo una disconnessione senza perdere i processi in esecuzione correnti.
11) Scorrere verso l’alto nelle finestre dello schermo
Poiché lo schermo assume la gestione dei programmi remoti, non è possibile utilizzare le funzioni di scorrimento dell’emulatore di terminale durante l’esecuzione dello schermo. È necessario utilizzare i comandi dello schermo per accedere al buffer di riavvolgimento.
- Uso
Ctrl-a
seguito daescape
- continua
Up
eDown
tasti freccia oPgUp
ePgDn
tasti per scorrere l’output precedente.

Puoi vedere dove si trova il mio cursore sullo screenshot. Ogni terminale virtuale ha il proprio buffer di scrollback.
12) Vedere il proprietario di ogni sessione dello schermo
Il screen -ls
o screen -list
i comandi ti mostrano solo le tue sessioni dello schermo anche per root. Per quanto ne so, è altrettanto buono per lo schermo stesso.
Se vuoi vedere quali sessioni dello schermo sono state avviate da quali utenti guardano in ogni directory utente /var/run/screen/
.
# ls -lR /var/run/screen
/var/run/screen:
total 0
drwx------ 2 patrick patrick 60 Jun 17 20:47 S-patrick
drwx------ 2 root root 100 Jun 17 19:39 S-root
/var/run/screen/S-patrick:
total 0
srwx------ 1 patrick patrick 0 Jun 17 20:47 21941.pat_session
/var/run/screen/S-root:
total 0
srw------- 1 root root 0 Jun 9 16:45 14134.mom
srwx------ 1 root root 0 Jun 9 01:07 14331.daby
srwx------ 1 root root 0 Jun 17 20:46 20995.remote_session
13) Condivisione di una sessione dello schermo con un singolo account
Puoi avere due persone che hanno effettuato l’accesso allo stesso account da postazioni remote. Possono facilmente condividere una sessione dello schermo (quindi ciò che uno scrive lo vede l’altro e viceversa). Per farlo:
- Crea una sessione dello schermo chiamata:
# screen -d -m -S share_session
- Allega alla sessione dello schermo dalla finestra del terminale
# screen -x share_session
- Fai in modo che anche l’altra persona (che ha effettuato l’accesso allo stesso account) si unisca alla sessione dello schermo
# screen -x share_session
avrai esattamente lo stesso output visualizzato nell’altra posizione. Tutto ciò che appare sul tuo terminale apparirà anche sul terminale dell’altro utente.
14) Schermata di blocco della sessione
È possibile bloccare la sessione dello schermo senza bloccare l’utente della sessione normale. Significa che puoi lasciare il tuo computer ed essere sicuro che nessuno verrà per operazioni non autorizzate. Per fare questo, usa il comando Ctrl-a
seguito da x
(Notare che è minuscolo).
Screen used by root <root> on centos-01.
Password:
15) Terminare la sessione dello schermo
Quando hai finito e vuoi uscire dalla sessione dello schermo, puoi usare il comando Ctrl-a
seguito da k
. Ti verrà chiesta una conferma.

Puoi anche usare il comando exit. Se vuoi salvare il processo in corso, puoi semplicemente staccare la sessione dello schermo prima di terminare la sessione.
Conclusione
Screen Utility può monitorare una finestra per attività o inattività. Questo è fantastico se stai scaricando file di grandi dimensioni, compilando o aspettando l’output. A quel punto, se necessario, puoi anche avviare un processo da un computer usando il comando screen e staccarlo quando hai finito.