GNU/Linux >> Linux Esercitazione >  >> Linux

15 Comando dello schermo di Linux per la gestione delle sessioni del terminale

Lo schermo o schermo GNU è un multiplexer terminale. Usando questo, puoi eseguire un numero qualsiasi di applicazioni basate su console, shell di comandi interattive, applicazioni basate su corsi, ecc. Puoi usare lo schermo per continuare a eseguire il programma dopo aver chiuso accidentalmente il terminale, o anche dopo esserti disconnesso e successivamente riprendi ovunque tu sia.

Un esempio pratico è dove stai eseguendo 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. Ecco 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 (o il comando specificato) e poi si toglie di mezzo in modo che tu possa usare il programma come faresti normalmente. Quindi, in qualsiasi momento, puoi creare nuove finestre (a schermo intero) con altri programmi al loro interno (incluse più shell), chiudere la finestra corrente, visualizzare un elenco delle finestre attive, copiare il testo tra le finestre, passare da una finestra all'altra, ecc. .

Screen gestisce una sessione costituito da una o più finestre ciascuno contenente una shell o un altro programma. Inoltre, lo schermo può dividere il display di un terminale in più regioni , ciascuno 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 è pratico per prevenire sessioni di timeout ssh involontarie.

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 schermo al prompt dei comandi. Questo comando sullo schermo avvierà una nuova finestra all'interno dello schermo.

# screen

Puoi aprire una nuova finestra all'interno dello schermo e dare anche un nome alla finestra, ad esempio in alto. Crea una sessione con identificata da quel nome. Il nome può essere utilizzato per riattaccare in una fase successiva.

# screen -S aloft

Tieni presente che puoi svolgere tutto il tuo lavoro come se fossi nel normale ambiente CLI.

2) Elenca tutti i processi dello schermo

Poiché siamo in grado di avviare nuove finestre all'interno dello schermo, è possibile visualizzare le schermate attualmente aperte, comprese quelle in esecuzione in background. 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 principale dello schermo

È possibile operare con lo schermo utilizzando alcuni comandi. Elencheremo di seguito i principali comandi più utili.

  • Ctrl-a seguito da c :crea una nuova finestra
  • Ctrl-a seguito da w :visualizza l'elenco di tutte le finestre attualmente aperte
  • Ctrl-a seguito da A :rinomina le finestre correnti. Il nome apparirà quando elencherai l'elenco delle finestre aperte con Ctrl-a seguito da w .
  • Ctrl-a seguito da n :vai alle finestre successive
  • Ctrl-a seguito da p :vai alle finestre precedenti
  • Ctrl-a seguito da Ctrl-a:torna alle ultime finestre utilizzate.
  • Ctrl-a seguito da un numero da 0 a X:vai alle finestre n° X.
  • Ctrl-a seguito da " :scegli le finestre in cui spostarti.
  • Ctrl-a seguito da k :chiude le finestre correnti (uccidi)
  • Ctrl-a seguito da S :divide orizzontalmente le finestre correnti. Per passare da una finestra all'altra, fai Ctrl-a seguito da Tab .
  • Ctrl-a seguito da | :divide verticalmente le finestre correnti
  • Ctrl-a seguito da d :stacca una sessione dello schermo senza interromperla
  • Ctrl-a seguito da r :ricollega una sessione di schermo staccata
  • Ctrl-a seguito da [ :avvia la modalità di copia
  • Ctrl-a seguito da ] :incolla il testo copiato

4) Mostra parametro schermo

Puoi elencare tutti i parametri dello schermo per assistenza. Per farlo, 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 staccare una sessione dello schermo. È possibile avviare una sessione dello schermo su un computer dell'ufficio, scollegare la sessione dal terminale locale, tornare a casa, accedere al computer dell'ufficio in remoto e ricollegare la sessione dello schermo al terminale del computer di casa. Nel frattempo, tutti i lavori sul computer dell'ufficio hanno continuato a essere eseguiti. Questa funzione viene utilizzata per prevenire la perdita di dati che si verifica improvvisamente durante l'interruzione della connessione ssh.

Per capire bene di cosa stiamo parlando, facciamo un esempio. Avviamo un processo di installazione.

Ora staccheremo lo schermo con Ctrl-a seguito da d . Possiamo verificare 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 suo nome. Significa che dovrai aprire un'altra finestra o console per scollegare la sessione se la console corrente ha un processo in corso. Devi prima elencare la schermata corrente 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 qui sotto.

# screen -d 13686

oppure puoi usare il nome

# screen -d win200

Avrai un output come di seguito che indica che lo schermo è stato staccato.

[remote detached from 13686.win200]

6) Ricollega una sessione

Dopo aver staccato lo schermo, è possibile riattaccarlo con il comando. Normalmente la sessione dello schermo funziona ancora, quindi tutti i 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 che è completato. Significa che puoi lavorare su ssh e staccare una sessione che ricollegherai a casa tua per continuare il tuo processo di lavoro senza perdere nulla.

7) Crea una nuova shell interattiva

Se hai dei lavori da fare e non vuoi perdere il tuo lavoro, è possibile creare una nuova shell interattiva. Puoi facilmente avere alcune shell interattive (numerate da 0 a X) aperte in una finestra di terminale. Quando inizi una nuova sessione, sarai nella shell 0 .

Per fare ciò, devi creare nuove finestre all'interno di finestre esistenti con Ctrl-a seguito da c . Avrai qualcosa come sotto.

Puoi vedere la schermata 3 nella parte superiore dello screenshot che indica che siamo sul terzo schermo. In basso possiamo vedere anche 3

8) Passa da una finestra all'altra dello schermo

Quando hai aperto più di una finestra dello schermo, per passare da una finestra all'altra, premi Control-a seguito da space o il numero della shell. Ad esempio, per passare alla shell numero 1, premi Control-a quindi 1 . Ad esempio, ci sposteremo sulla prima schermata.

La parte superiore e inferiore dello screenshot mostra che siamo sulla 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 alcun limite. Per spostare un'altra finestra, usa Ctrl-a seguito da Tab .

Quando il cursore si trova nella parte inferiore delle finestre, puoi creare una nuova finestra (Ctrl-a seguito da c ) o chiama una finestra esistente (Ctrl-a seguito da un numero).

Per chiudere una finestra divisa, usa Ctrl-a seguito da X (Nota che è il carattere maiuscolo).

10) Riconnettiti a una sessione ssh disconnessa

Al primo accesso,

  • esegui schermo per avviare una sessione dello schermo. Ottieni un'altra shell, esegui i comandi in quella.
# screen -S remote_session
  • Al termine, scollega la sessione dello schermo, quindi disconnetti su ssh
[detached from 20995.remote_session]
  • Puoi elencare prima 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 dello schermo e continua il tuo lavoro
# screen -d -r remote_ression

Il comando screen è più utilizzato per la sessione ssh perché aiuta a continuare il lavoro dopo una disconnessione senza perdere i processi in corso.

11) Scorri 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. Devi usare i comandi Screen per accedere al buffer di scorrimento.

  • Usa Ctrl-a seguito da escape
  • Premi il Up e Down tasti freccia o il PgUp e PgDn tasti per scorrere l'output precedente.

Puoi vedere dove si trova il mio cursore sullo screenshot. Ogni terminale virtuale ha il proprio buffer di scorrimento.

12) Vedi il proprietario di ogni sessione dello schermo

Lo screen -ls o screen -list i comandi ti mostrano solo le tue sessioni dello schermo anche per root. Per quanto ne so, è il massimo per lo schermo stesso.

Se vuoi vedere quali sessioni dello schermo sono state avviate da quali utenti guardano in ciascuna directory degli utenti in /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 account

Puoi fare in modo che due persone accedano allo stesso account da posizioni remote. Possono facilmente condividere una sessione dello schermo (quindi ciò che uno digita vede l'altro e viceversa). Per fare questo:

  • Crea una sessione dello schermo denominata:
# screen -d -m -S share_session
  • Allega alla sessione dello schermo nella finestra del tuo terminale
# screen -x share_session
  • Fai in modo che anche l'altra persona (che ha effettuato l'accesso allo stesso account) si colleghi alla sessione dello schermo
# screen -x share_session

avrai esattamente lo stesso output visualizzato nell'altra posizione. Tutto ciò che apparirà sul tuo terminale apparirà anche sul terminale dell'altro utente.

14) Sessione di blocco schermo

È 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à a operazioni non autorizzate. Per fare ciò, usa il comando Ctrl-a  seguito da x (Nota che è il carattere minuscolo).

Screen used by root <root> on centos-01.
Password:

15) Termina 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à richiesta una conferma.

Puoi anche usare il comando di uscita. Se desideri salvare il processo in corso, puoi semplicemente staccare la sessione dello schermo prima di terminare la sessione.

Conclusione

L'utilità dello schermo può monitorare una finestra per attività o inattività. Questo è ottimo se stai scaricando file di grandi dimensioni, compilando o aspettando l'output. A quel punto, se necessario, puoi persino avviare alcuni processi da un computer utilizzando il comando dello schermo e staccarlo quando hai finito.


Linux
  1. Una guida al terminale Linux per principianti

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

  3. Le mie prime 10 scorciatoie da terminale per Linux

  4. 5 usi del comando mv nel terminale Linux

  5. Come utilizzare il comando dello schermo di Linux

I 20 migliori comandi del terminale Linux da provare per un principiante

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

Installa il sottosistema Windows per Linux con un comando singolo

Spiegazione del comando dello schermo su Linux

Comando cronologia in Linux:visualizza la cronologia del terminale Linux

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