Come usare il comando dello schermo di Linux

Contenuti

Un terminale Linux su un laptop con altre sessioni di terminale sovrapposte dietro.

Con Linux screen comando, puoi spingere le app del terminale in esecuzione in background e spostarle in avanti quando vuoi vederle. È anche compatibile con schermi divisi e funziona tramite connessioni SSH, anche dopo la disconnessione e la riconnessione.

IMPARENTATO: 10 comandi di base di Linux per principianti

Qual è il comando sullo schermo??

il screen il comando è a multiplexer terminaleed è assolutamente pieno di alternative. Dire che puoi fare molto è il nonno degli eufemismi. La pagina man si estende a più di 4.100 Linee.

Di seguito sono riportati i casi più comuni in cui utilizzeresti il screen comando, e li tratteremo di più in questo post:

  • L'operazione standard è creare una nuova finestra con una shell dentro, eseguire un comando e quindi spingere la finestra in basso (chiamato “spezzare”). Quando vuoi vedere come funziona la tua procedura, può riportare la finestra in primo piano (“riattacca”) e usalo di nuovo. Questo è l'ideale per i processi lunghi che non si desidera terminare accidentalmente quando si chiude la finestra del terminale.
  • Una volta che hai un screen sessione di corsa, può creare nuove finestre ed eseguire altri processi in esse. Puoi facilmente passare da una finestra all'altra per monitorare i tuoi progressi. Inoltre puoi dividere la finestra del terminale in regioni verticali o orizzontali e visualizzarne le varie screen finestre in una finestra.
  • Può connettersi a una macchina remota, inizia uno screen sessione e avviare una procedura. Può disconnettersi dall'host remoto, riconnettiti e la tua procedura continuerà a essere eseguita.
  • Puoi condividere un screen sessione tra due diverse connessioni SSH in modo che due persone possano vedere la stessa cosa, in tempo reale.

Installazione dello schermo

Installare screen en libero, usa questo comando:

sudo apt-get install screen

Installare screen a Manjaro, usa il seguente comando:

sudo pacman -Sy screen

In Fedora, scrivi quanto segue:

schermata di installazione sudo dnf

Introduzione allo schermo

Iniziare screen, basta digitarlo come mostrato di seguito e premere Invio:

schermo

Vedrai una pagina con le informazioni sulla licenza. Puoi premere la barra spaziatrice per leggere la seconda pagina o Invio per tornare al prompt dei comandi.

Rimane al prompt dei comandi e non sembra che sia successo molto. Nonostante questo, ora stai eseguendo una shell all'interno di un emulatore di terminale multiplex. Perché questa è una cosa buona? Bene, iniziamo una procedura che richiederà molto tempo per essere completata. Scaricheremo il codice sorgente per l'ultimo kernel Linux e lo reindirizzeremo a un file chiamato latest_kernel.zip.

Per farlo, scriviamo quanto segue:

ricciolo https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz > ultime_kernel.zip

Il nostro download inizia e il curl L'output ci mostra i progressi.

Non possiamo mostrarti una foto del prossimo bit, perché è una sequenza di tasti. Iscrivi Ctrl + UN, rilascia quei tasti e poi premi d per staccare lo schermo.

La procedura di download è ancora in corso, ma la finestra che mostrava il download è stata rimossa. Tornerai alla finestra del terminale da cui hai lanciato il screen sessione. Un messaggio ti dice che a screen finestra etichettata 23167.pts-0.systempeaker si è staccato.

È necessario il numero dall'inizio del nome della finestra per riattaccarlo. Se dimentichi, puoi sempre usare il -ls (pronto) opzione, come mostrato di seguito, per ottenere un elenco delle finestre separate:

schermo -ls

Quando sei pronto, puoi usare il -r (riattacca) e il numero della sessione da ricollegare, Così:

schermo -r 23167

La finestra che è stata in esecuzione in background ora torna alla finestra del terminale come se non fosse mai andata via.

Una sessione dello schermo ricongiunto ripristinata nella finestra del terminale.

Se si tratta di una procedura che verrà eseguita fino alla sua conclusione, alla fine sarà completato. Se è una procedura continua, prima o poi vorrà finirlo. In entrambi i casi, quando la procedura è finita, puoi digitare exit per uscire dal screen. In alternativa, puoi premere Ctrl + A e poi K per uccidere forzatamente una finestra.

Digita il seguente comando:

Uscita

Tornerai alla finestra del terminale precedente, che mostrerà ancora il comando che hai usato per ricollegare la finestra. Perché chiudiamo la nostra unica finestra separata, abbiamo ricevuto un messaggio che screen Sta finendo.

IMPARENTATO: Come usare curl per scaricare file dalla riga di comando di Linux

Utilizzo di sessioni schermo con nome

Puoi usare il -S (nome della sessione) opzione per nominare il tuo screen sessione. Se usi un nome memorabile invece dell'identità numerica della sessione, è più comodo riconnettersi a una sessione. Scriviamo quanto segue per dare un nome alla nostra sessione “file grande”:

schermo -S bigfile

quando screen inizia la nostra sessione, vediamo una finestra vuota con un prompt dei comandi. Stiamo per scaricare un file di grandi dimensioni, quindi possiamo usare una procedura a lungo termine come esempio.

Scriviamo quanto segue:

arricciare http://ipv4.download.thinkbroadband.com/1GB.zip > bigfile.zip

Quando inizia il download, premiamo Ctrl + UN, e poi premi D per disconnettere la sessione. Scriviamo quanto segue per usare il -ls (pronto) opzione con screen per vedere i dettagli della nostra sessione separata:

schermo -ls

Dietro l'identificatore numerico (23266), vediamo il nome della nostra sessione (file grande). Scriviamo quanto segue, incluso il nome della sessione, per riattaccarlo:

screen -r bigfile

Ci riconnettiamo alla nostra finestra di download e vediamo che il download lungo è ancora in corso.

Quando il download è completo, abbiamo scritto exit per chiudere la finestra della sessione.

Utilizzo del display multi-finestra

Fino ad ora, abbiamo usato screen per inserire una singola procedura in background in una finestra separata. Nonostante questo, screen è in grado di fare molto di più. Prossimo, eseguiremo alcuni processi che ci consentiranno di monitorare alcuni aspetti del nostro computer.

Scriviamo quanto segue per avviare una sessione di schermo chiamata “tenere sotto controllo”:

schermo -S monitor

Al prompt dei comandi nella nostra nuova sessione della finestra, lanceremo dmesg e usa il -H (leggibile dagli umani) e -w (aspetta nuovi messaggi) opzioni. Questo sarà mostra i messaggi del buffer del kernel; i nuovi messaggi appariranno non appena si verificano.

Scriviamo quanto segue:

dmesg -H -w

Vengono visualizzati i messaggi esistenti. Non torniamo al prompt dei comandi perché dmseg è in attesa di nuovi messaggi e li visualizzerà non appena arrivano.

IMPARENTATO: Come usare il comando dmesg in Linux

Vogliamo eseguire un'altra applicazione, quindi abbiamo bisogno di uno nuovo screen finestra. Premiamo Ctrl + UN, e poi C per creare una nuova finestra. Utilizzeremo watch per corri ripetutamente vmstat, quindi riceviamo un aggiornamento frequente visualizza l'utilizzo della memoria virtuale sul nostro computer.

Al nuovo prompt dei comandi, scriviamo quanto segue:

guarda vmstat

il vmstat L'output appare e viene aggiornato ogni due secondi.

I nostri due processi sono ora in esecuzione. Per saltare tra i screen finestre, presidenza Ctrl + UN, e il numero della finestra. Il primo che creiamo è la finestra zero (0), la prossima è la finestra 1, e così via. Per saltare alla prima finestra (il dmesg uno), premiamo Ctrl + Per e 0.

Se premiamo Ctrl + Per e 1, ci riporta a vmstat finestra.

È piuttosto carino!! Possiamo premere Ctrl + UN, e successivamente D per disconnettersi da questa sessione; possiamo riunirci più tardi. Entrambe le sessioni continueranno a funzionare. Ancora, per passare da una finestra all'altra, premiamo Ctrl + A e il numero (0 oh 1) dalla finestra a cui vogliamo passare.

Andiamo al passaggio successivo e vediamo entrambe le schermate in una finestra. Quando lo faccio, ingrandirà la finestra del terminale a una dimensione che renda utile questo passaggio. I nostri esempi sono limitati alla dimensione dei nostri screenshot, così le nostre finestre sembreranno un po' strette.

Per fare questo, premiamo Ctrl + UN, e poi Shift + S (è richiesta una "S" maiuscola).

La finestra si divide in due “regioni”.

La regione superiore è ancora visibile vmstate la regione inferiore è vuota. Il cursore è evidenziato nello screenshot successivo. Per spostarlo nella regione inferiore, premiamo Ctrl + UN, e poi Tab.

Il cursore si sposta nella regione inferiore, che in realtà è solo uno spazio vuoto. Non è un guscio, quindi non possiamo scrivere nulla su di esso. Per ottenere uno schermo utile, premiamo Ctrl + UN, e poi premiamo “0” per mostrare il dmesg finestra in questa regione.

Questo ci dà entrambi gli output live in una finestra divisa. Se premiamo Ctrl + A e D per separare la finestra, e dopo lo rimettiamo insieme, perderemo la visualizzazione del pannello diviso. Nonostante questo, possiamo ripristinarlo con le seguenti scorciatoie da tastiera:

  • Ctrl + UN, S: Dividi la finestra orizzontalmente.
  • Ctrl + UN, tab: Sposta nella regione inferiore.
  • Ctrl + UN, 0: Finestra di visualizzazione zero nella regione inferiore.

Possiamo fare anche un passo in più. Ora divideremo verticalmente il pannello inferiore e aggiungeremo una terza procedura allo schermo. Con il cursore nella regione inferiore, premiamo Ctrl + A e C per creare una nuova finestra con una shell dentro. La regione inferiore mostra la nuova finestra e ci dà un prompt dei comandi.

Prossimo, eseguiamo il df comando a controlla l'utilizzo del file system:

df

Quando vediamo df di fretta, premiamo Ctrl + A e carattere pipa (|). Questo divide verticalmente la regione inferiore. Premiamo Ctrl + A e Tab per passare alla nuova regione. Prossimo, premiamo Ctrl + Per e 0 per mostrare il dmesg finestra.

Puoi anche spostarti da una regione all'altra e aggiungere più divisioni verticali o orizzontali. Ecco alcune scorciatoie più utili:

  • Ctrl + UN: Salta avanti e indietro tra la regione attuale e quella precedente.
  • Ctrl + UN, Q: Chiudi tutte le regioni tranne quella attuale.
  • Ctrl + UN, X: Chiudi la regione attuale.

Utilizzo dello schermo su SSH

Insieme a screen, può avviare una sessione della finestra, scollegalo per mantenerlo in esecuzione in background, disconnettersi o riconnettersi e riconnettersi alla sessione.

Facciamo un SSH connessione al nostro computer di uno diverso con lui ssh comando. Dobbiamo fornire il nome dell'account con cui ci collegheremo e l'indirizzo del computer remoto.

Per il nostro esempio, scriviamo quanto segue:

ssh [email protected]

Dopo l'autenticazione al computer remoto e l'accesso, scriviamo quanto segue per iniziare a screen sessione chiamata “ssh-geek”:

schermo -S ssh-geek

A scopo dimostrativo, eseguiremo top a screen finestra, ma puoi iniziare qualsiasi procedura lunga o infinita.

Scriviamo quanto segue:

superiore

Una volta top sta correndo nella finestra, premiamo Ctrl + UN, e poi D per separare la finestra.

Torniamo alla finestra del terminale remoto originale.

L'utente è tornato alla finestra del terminale originale

Se scriviamo exit, come mostrato di seguito, disconnetti la sessione SSH e torniamo al nostro computer locale:

Uscita

Scriviamo quanto segue per riconnetterci:

ssh [email protected]

Dopo essersi ricollegati e aver effettuato l'accesso, possiamo scrivere quanto segue per ricollegare il screen sessione:

screen -r ssh-geek

Ora siamo riconnessi alla nostra istanza ancora in esecuzione di top.

Questo è ottimo se vuoi iniziare una procedura su una macchina e poi riprendere da dove avevi interrotto su un'altra..

IMPARENTATO: Come creare e installare chiavi SSH da Linux Shell

Condividi una sessione schermo

Puoi anche usare a screen sessione per consentire a due persone di vedere e interagire con la stessa finestra. Supponiamo che qualcuno che esegue Fedora sul proprio computer voglia connettersi al nostro server Ubuntu.

io scriverei quanto segue:

ssh [email protected]

Dopo il collegamento, avviare una sessione di schermo chiamata “ssh-geek” usando l'opzione -S (nome della sessione). Utilizza anche il -d (decollare) e -m (creazione forzata) opzioni per creare un nuovo screen sessione già separata.

Scrivi quanto segue:

schermo -d -m -S ssh-geek

Scrivi quanto segue, usando il -x (modo multipantalla) per allegare la sessione:

screen -x ssh-geek

Su un computer Manjaro, qualcun altro si connette al computer Ubuntu con le stesse credenziali dell'account, come mostrato di seguito:

ssh [email protected]

Una volta connesso, Scrivi la screen comando e usa l'opzione -X (modo multipantalla) per partecipare alla stessa sessione della finestra, Così:

screen -X ssh-geek

Ora, tutto ciò che una persona scrive, l'altro vedrà. Come esempio, quando una persona impartisce il comando data, entrambi lo vedono come è scritto, così come la sua partenza.

Entrambe le persone ora condividono un screen sessione in esecuzione su un computer Ubuntu remoto.


Per un software che ha visto la luce per la prima volta in 1987, screen ha ancora un buon rendimento in termini di produttività. Conoscerlo sarà tempo ben speso!!

IMPARENTATO: 37 Comandi importanti di Linux che dovresti conoscere

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.