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 variescreen
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.
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 vmstat
e 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.
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