Cum să utilizați comanda ecranului Linux

Publicat: 2022-01-29
Un terminal Linux pe un laptop cu alte sesiuni de terminal suprapuse în spate.
fatmawati achmad zaenuri/Shutterstock

Cu comanda screen Linux, puteți împinge aplicațiile terminale care rulează în fundal și le puteți trage înainte când doriți să le vedeți. De asemenea, acceptă afișaje cu ecran divizat și funcționează prin conexiuni SSH, chiar și după ce vă deconectați și vă reconectați!

LEGATE: 10 comenzi de bază Linux pentru începători

Ce este comanda ecranului?

Comanda screen este un multiplexor de terminal și este complet plină de opțiuni. A spune că poate face multe este bunicul eufemării. Pagina de manual are peste 4.100 de linii.

Următoarele sunt cele mai frecvente cazuri în care ați folosi comanda screen și le vom acoperi în continuare în acest articol:

  • Operația standard este de a crea o nouă fereastră cu un shell în ea, de a rula o comandă și apoi de a împinge fereastra în fundal (numită „detașare”). Când doriți să vedeți cum merge procesul dvs., puteți trage din nou fereastra în prim-plan („reatașați”) și o puteți utiliza din nou. Acest lucru este excelent pentru procesele lungi pe care nu doriți să le terminați accidental prin închiderea ferestrei terminalului.
  • După ce rulați o sesiune de screen , puteți crea ferestre noi și puteți rula alte procese în ele. Puteți sări cu ușurință între ferestre pentru a le monitoriza progresul. De asemenea, puteți împărți fereastra terminalului în regiuni verticale sau orizontale și puteți afișa diferitele ferestre ale screen într-o singură fereastră.
  • Vă puteți conecta la o mașină de la distanță, puteți începe o sesiune de screen și puteți lansa un proces. Vă puteți deconecta de la gazda la distanță, vă puteți reconecta, iar procesul dvs. va fi în continuare rulat.
  • Puteți partaja o sesiune de screen între două conexiuni SSH diferite, astfel încât două persoane să poată vedea același lucru, în timp real.

Ecran de instalare

Pentru a instala screen pe ubuntu, utilizați această comandă:

 ecran de instalare sudo apt-get 

Pentru a instala screen pe Manjaro, utilizați următoarea comandă:

 sudo pacman -Ecran Sy 

Pe Fedora, tastați următoarele:

 ecran de instalare sudo dnf 

Noțiuni introductive cu ecranul

Pentru a porni screen , introduceți-l așa cum se arată mai jos și apăsați Enter:

 ecran 

Veți vedea o pagină cu informații despre licență. Puteți apăsa pe bara de spațiu pentru a citi a doua pagină sau pe Enter pentru a reveni la promptul de comandă.

Publicitate

Ai rămas la promptul de comandă și nu pare să se fi întâmplat nimic mare. Cu toate acestea, acum rulați un shell în interiorul unui emulator de terminal multiplexat. De ce este acesta un lucru bun? Ei bine, haideți să începem un proces care va dura mult timp. Vom descărca codul sursă pentru cel mai recent kernel Linux și îl vom redirecționa într-un fișier numit latest_kernel.zip .

Pentru a face acest lucru, introducem următoarele:

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

Descărcarea noastră începe, iar rezultatul curl ne arată progresul.

Nu vă putem arăta o imagine a următorului bit, deoarece este o secvență de apăsare a tastei. Tastați Ctrl+A, eliberați acele taste și apoi apăsați d pentru a detașa ecranul.

Procesul de descărcare încă rulează, dar fereastra care arată descărcarea este eliminată. Ați revenit la fereastra terminalului din care ați lansat sesiunea de screen . Un mesaj vă spune că o fereastră de screen etichetată 23167.pts-0.howtogeek a fost detașată.

Aveți nevoie de numărul de la începutul numelui ferestrei pentru a-l atașa din nou. Dacă o uitați, puteți utiliza întotdeauna opțiunea -ls (listă), așa cum se arată mai jos, pentru a obține o listă a ferestrelor detașate:

 ecran -ls 

Când sunteți gata, puteți utiliza opțiunea -r (reatașare) și numărul sesiunii pentru ao reatașa, astfel:

 ecran -r 23167 

Publicitate

Fereastra care a funcționat în fundal este acum adusă înapoi în fereastra terminalului, ca și cum nu ar fi plecat niciodată.

O sesiune de ecran reatașată a fost restaurată în fereastra terminalului.

Dacă este un proces care va ajunge până la încheiere, în cele din urmă se va finaliza. Dacă este un proces continuu, în cele din urmă veți dori să îl încheiați. Oricum, când procesul se termină, puteți tasta exit pentru a ieși din screen . Alternativ, puteți apăsa Ctrl+A și apoi K pentru a ucide forțat o fereastră.

Tastați următoarea comandă:

 Ieșire 

Ați revenit la fereastra anterioară a terminalului, care va afișa în continuare comanda pe care ați folosit-o pentru a atașa din nou fereastra. Deoarece am închis singura noastră fereastră detașată, primim un mesaj că screen se încheie.

LEGATE: Cum să utilizați curl pentru a descărca fișiere de pe linia de comandă Linux

Utilizarea sesiunilor de ecran numite

Puteți utiliza opțiunea -S (numele sesiunii) pentru a denumi sesiunea dvs. de screen . Dacă folosiți un nume memorabil mai degrabă decât identitatea numerică a sesiunii, este mai convenabil să vă reconectați la o sesiune. Introducem următoarele pentru a numi sesiunea noastră „bigfile”:

 ecran -S bigfile 

Când screen lansează sesiunea noastră, vedem o fereastră goală cu un prompt de comandă. Vom descărca un fișier mare, astfel încât să putem folosi un proces de lungă durată ca exemplu.

Introducem următoarele:

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

Când începe descărcarea, apăsăm Ctrl+A, apoi apăsăm D pentru a detașa sesiunea. Introducem următoarele pentru a folosi opțiunea -ls (listă) cu screen pentru a vedea detaliile sesiunii noastre detașate:

 ecran -ls 

Publicitate

În spatele identificatorului numeric (23266), vedem numele sesiunii noastre (bigfile). Introducem următoarele, inclusiv numele sesiunii, pentru a o atașa din nou:

 screen -r bigfile 

Ne-am reconectat la fereastra noastră de descărcare și vedem că descărcarea lungă este încă în curs.

Când descărcarea este finalizată, tastăm exit pentru a închide fereastra sesiunii.

Utilizarea ecranului cu mai multe ferestre

Până acum, am folosit screen pentru a plasa un singur proces în fundal într-o fereastră detașată. Cu toate acestea, screen este capabil să facă mult mai mult decât atât. În continuare, vom rula câteva procese care ne permit să monitorizăm unele aspecte ale computerului nostru.

Introducem următoarele pentru a începe o sesiune de ecran numită „monitor”:

 ecran -S monitor 

Publicitate

La promptul de comandă din noua noastră sesiune de fereastră, vom lansa dmesg și vom folosi opțiunile -H (lizibil de om) și -w (așteptați mesaje noi). Aceasta va afișa mesajele buffer-ului kernelului; mesajele noi vor apărea pe măsură ce apar.

Introducem următoarele:

 dmesg -H -w 

Apar mesajele existente. Nu ne întoarcem la promptul de comandă deoarece dmseg așteaptă mesaje noi și le va afișa pe măsură ce sosesc.

LEGATE: Cum să utilizați comanda dmesg pe Linux

Dorim să rulăm o altă aplicație, așa că avem nevoie de o nouă fereastră de screen . Apăsăm Ctrl+A, apoi C pentru a crea o fereastră nouă. Vom folosi watch pentru a rula în mod repetat vmstat , astfel încât să obținem o afișare actualizată frecvent a utilizării memoriei virtuale pe computerul nostru.

La noul prompt de comandă, introducem următoarele:

 urmăriți vmstat 

Ieșirea vmstat apare și se actualizează la fiecare două secunde.

Cele două procese ale noastre rulează acum. Pentru a trece între ferestrele screen , apăsați Ctrl+A și numărul ferestrei. Prima pe care am creat-o este fereastra zero (0), următoarea este fereastra 1 și așa mai departe. Pentru a trece la prima fereastră (cea dmesg ), apăsăm Ctrl+A și 0.

Dacă apăsăm Ctrl+A și 1, ne duce înapoi la fereastra vmstat .

E destul de ingenios! Putem apăsa Ctrl+A, apoi D pentru a ne desprinde din această sesiune; putem reatasa mai tarziu. Ambele sesiuni vor continua. Din nou, pentru a comuta între ferestre, apăsăm Ctrl+A și numărul (0 sau 1) al ferestrei la care vrem să comutăm.

Să trecem la pasul următor și să vedem ambele ecrane într-o singură fereastră. Când faceți acest lucru, veți extinde fereastra terminalului la o dimensiune care face acest pas util. Exemplele noastre sunt limitate la dimensiunea capturilor de ecran, astfel încât ferestrele noastre vor părea puțin înghesuite.

Publicitate

Pentru a face acest lucru, apăsăm Ctrl+A, apoi Shift+S (este necesar un „S” majuscul).

Fereastra se împarte în două „regiuni”.

Regiunea de sus afișează în continuare vmstat , iar regiunea de jos este goală. Cursorul este evidențiat în captura de ecran de mai jos. Pentru a o muta în regiunea inferioară, apăsăm Ctrl+A, apoi Tab.

Cursorul se deplasează în regiunea inferioară, care de fapt este doar un spațiu gol. Nu este un shell, așa că nu putem introduce nimic în ea. Pentru a obține un afișaj util, apăsăm Ctrl+A, apoi apăsăm „0” pentru a afișa fereastra dmesg în această regiune.

Acest lucru ne oferă ambele ieșiri live într-o singură fereastră împărțită. Dacă apăsăm Ctrl+A și D pentru a detașa fereastra și apoi o reatașăm, vom pierde vizualizarea din panoul divizat. Cu toate acestea, îl putem restabili cu următoarele comenzi rapide de la tastatură:

  • Ctrl+A, S: Împărțiți fereastra pe orizontală.
  • Ctrl+A , Tab: Deplasați-vă în regiunea inferioară.
  • Ctrl+A, 0: Afișează fereastra zero în regiunea inferioară.

Putem duce lucrurile chiar și cu un pas mai departe. Acum vom împărți panoul inferior pe verticală și vom adăuga un al treilea proces pe afișaj. Cu cursorul în regiunea inferioară, apăsăm Ctrl+A și C pentru a crea o fereastră nouă cu un shell în ea. Regiunea inferioară afișează noua fereastră și ne oferă un prompt de comandă.

Apoi, rulăm comanda df pentru a verifica utilizarea sistemului de fișiere:

 df 

Publicitate

Când vedem df rulând, apăsăm Ctrl+A și caracterul pipe (|) . Aceasta împarte vertical regiunea inferioară. Apăsăm Ctrl+A și Tab pentru a trece la noua regiune. Apoi, apăsăm Ctrl+A și 0 pentru a afișa fereastra dmesg .

De asemenea, puteți să vă mutați de la o regiune la alta și să adăugați mai multe diviziuni verticale sau orizontale. Iată câteva combinații de taste mai utile:

  • Ctrl+A: săriți înainte și înapoi între regiunea actuală și cea anterioară.
  • Ctrl+A, Q: Închideți toate regiunile, cu excepția celei curente.
  • Ctrl+A, X: Închideți regiunea curentă.

Utilizarea ecranului peste SSH

Cu screen , puteți începe o sesiune fereastră, o puteți detașa astfel încât să ruleze în continuare în fundal, puteți să vă deconectați sau să vă reconectați și să reconectați sesiunea.

Să facem o conexiune SSH la computerul nostru de pe unul diferit cu comanda ssh . Trebuie să furnizăm numele contului cu care ne vom conecta și adresa computerului de la distanță.

Pentru exemplul nostru, introducem următoarele:

 ssh [email protected] 

După ce ne autentificăm pe computerul de la distanță și ne logăm, introducem următoarele pentru a începe o sesiune de screen numită „ssh-geek”:

 ecran -S ssh-geek 

În scopuri demonstrative, vom rula top în fereastra screen , dar puteți începe orice proces de lungă durată sau fără sfârșit.

Introducem următoarele:

 top 

Publicitate

Odată ce top rulează în fereastră, apăsăm Ctrl+A și apoi D pentru a detașa fereastra.

Am revenit la fereastra terminală originală, la distanță.

Utilizatorul a revenit la fereastra terminalului original

Dacă introducem exit , așa cum se arată mai jos, se deconectează sesiunea SSH și ne întoarcem pe computerul nostru local:

 Ieșire 

Introducem următoarele pentru a vă reconecta:

 ssh [email protected] 

După ce ne-am reconectat și ne-am conectat, putem tasta următoarele pentru a atașa din nou sesiunea de screen :

 ecran -r ssh-geek 

Ne-am reconectat acum la instanța noastră de top .

Acest lucru este grozav dacă doriți să începeți un proces pe o mașină și apoi să continuați de unde ați rămas pe alta.

LEGATE: Cum se creează și se instalează chei SSH din Shell Linux

Partajarea unei sesiuni de ecran

De asemenea, puteți utiliza o sesiune de screen pentru a permite două persoane să vadă și să interacționeze cu aceeași fereastră. Să presupunem că cineva care rulează Fedora pe computerul său dorește să se conecteze la serverul nostru Ubuntu.

El ar scrie următoarele:

 ssh [email protected] 

După ce se conectează, începe o sesiune de ecran numită „ssh-geek” folosind opțiunea -S (numele sesiunii). El folosește, de asemenea, opțiunile -d (detașare) și -m (creare forțată) pentru a crea o nouă sesiune de screen care este deja detașată.

El scrie următoarele:

 ecran -d -m -S ssh-geek 

Publicitate

El tastează următoarele, folosind opțiunea -x (mod multiecran) pentru a atașa sesiunea:

 ecran -x ssh-geek 

Pe un computer Manjaro, o altă persoană se conectează la computerul Ubuntu cu aceleași acreditări de cont, după cum se arată mai jos:

 ssh [email protected] 

Odată ce este conectată, ea tastează comanda screen și folosește opțiunea -X (mod multiecran) pentru a se alătura aceleiași sesiuni de fereastră, astfel:

 ecran -X ssh-geek 

Acum, orice tip de fiecare persoană, cealaltă va vedea. De exemplu, când o persoană lansează comanda data, amândoi o văd așa cum este introdusă, precum și rezultatul acesteia.

Ambele persoane partajează acum o sesiune de screen care rulează pe un computer Ubuntu la distanță.


Pentru o bucată de software care a văzut pentru prima dată lumina zilei în 1987, screen încă oferă o productivitate bună. Familiarizarea cu el va fi timp bine petrecut!

LEGATE: 37 de comenzi Linux importante pe care ar trebui să le cunoașteți

LEGATE: Cele mai bune laptopuri Linux pentru dezvoltatori și entuziaști