Korišćenjem Linux komande „screen“, omogućeno vam je da trenutno aktivne terminalske aplikacije prebacite u pozadinu, a zatim ih vratite u prvi plan kada vam ponovo zatrebaju. Takođe, podržava korišćenje podeljenog ekrana i funkcioniše preko SSH konekcija, čak i ako se diskonektujete i ponovo povežete!
Šta je komanda „screen“?
Komanda „screen“ predstavlja terminalski multiplekser, sa zaista mnogo različitih opcija. Reći da je svestran, bilo bi veliko potcenjivanje. Uputstvo za „man“ stranicu broji preko 4100 redova.
U nastavku su navedeni najčešći scenariji upotrebe „screen“ komande, koje ćemo detaljnije objasniti u ovom članku:
Uobičajen rad je započeti sa kreiranjem novog prozora sa shell okruženjem, pokretanjem određene komande, a zatim taj prozor prebaciti u pozadinu (što se naziva „odvajanje“). Kada želite da proverite status procesa, prozor možete vratiti u prvi plan („ponovno spajanje“) i nastaviti sa radom. Ovo je idealno za dugotrajne procese koje ne želite slučajno da prekinete zatvaranjem terminala.
Kada pokrenete „screen“ sesiju, možete kreirati nove prozore i u njima pokretati različite procese. Možete lako prelaziti između prozora i pratiti napredak svakog od njih. Takođe, možete podeliti terminalni prozor na vertikalne ili horizontalne delove i u svakom prikazati drugi „screen“ prozor.
Možete se povezati na udaljeni server, pokrenuti „screen“ sesiju i pokrenuti neki proces. Ako se diskonektujete sa udaljenog servera i ponovo povežete, proces će nastaviti da radi.
Moguće je deliti „screen“ sesiju između dve različite SSH konekcije, tako da dve osobe mogu pratiti isti sadržaj u realnom vremenu.
Instalacija „screen“-a
Za instalaciju „screen“-a na Ubuntu, koristite ovu komandu:
sudo apt-get install screen
Za instalaciju „screen“-a na Manjaro, koristite sledeću komandu:
sudo pacman -Sy screen
Na Fedora sistemima, unesite:
sudo dnf install screen
Početak rada sa „screen“-om
Da biste pokrenuli „screen“, unesite sledeću komandu i pritisnite Enter:
screen
Prikazaće se stranica sa informacijama o licenci. Možete pritisnuti razmaknicu da pročitate sledeću stranicu, ili Enter da se vratite na komandnu liniju.
Nalazite se na komandnoj liniji i naizgled se ništa posebno nije dogodilo. Međutim, sada imate pokrenut shell unutar multipleksiranog terminalskog emulatora. Zašto je ovo dobra stvar? Pa, da pokrenemo proces koji će potrajati da se završi. Preuzećemo izvorni kod za najnoviju verziju Linux kernela i preusmeriti ga u datoteku nazvanu „latest_kernel.zip“.
Da bismo to uradili, unesite sledeće:
curl https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz > latest_kernel.zip
latest_kernel.zip“ u terminalu“ width=“646″ height=“77″/>
Preuzimanje počinje, a „curl“ ispisuje informacije o napretku.
latest_kernel.zip“ u terminalu“ width=“646″ height=“247″/>
Sledeći korak ne možemo da prikažemo na slici, pošto je reč o sekvenci pritiskanja tastera. Potrebno je da pritisnete Ctrl+A, pustite te tastere, a zatim pritisnete d da odvojite ekran.
Proces preuzimanja je i dalje u toku, ali prozor koji je prikazivao preuzimanje je zatvoren. Vratili ste se u terminal iz kojeg ste pokrenuli „screen“ sesiju. Prikazana poruka obaveštava vas da je „screen“ prozor označen kao „23167.pts-0.wzvzdz“ odvojen.
Broj sa početka imena prozora vam je potreban kako biste ga ponovo priključili. Ako ga zaboravite, uvek možete koristiti opciju „-ls“ (list), kao što je prikazano ispod, da dobijete spisak odvojenih prozora:
screen -ls
Kada budete spremni, možete da koristite opciju „-r“ (ponovno priključivanje) i broj sesije da biste je vratili u prvi plan, na sledeći način:
screen -r 23167
Prozor koji je radio u pozadini se vraća u terminal kao da nikada nije ni bio isključen.
Ako je reč o procesu koji se izvršava do kraja, on će se na kraju i završiti. Ako je to kontinuirani proces, na kraju ćete možda želeti da ga zaustavite. U svakom slučaju, kada se proces završi, možete uneti „exit“ da biste izašli sa „screen“-a. Alternativno, možete pritisnuti Ctrl+A, a zatim K da nasilno prekinete rad prozora.
Unesite sledeću komandu:
exit
Vratili ste se u prethodni terminal, koji će i dalje prikazivati komandu koju ste koristili za ponovno priključivanje prozora. Pošto smo zatvorili jedini odvojeni prozor, dobijamo poruku da se „screen“ sesija završava.
Korišćenje imenovanih „screen“ sesija
Možete koristiti opciju „-S“ (ime sesije) da biste imenovali „screen“ sesiju. Korišćenjem pamtljivog imena umesto numeričkog ID-a sesije, mnogo je praktičnije da se ponovo povežete na sesiju. Unesite sledeće da biste nazvali sesiju „veliki fajl“:
screen -S bigfile
Nakon što „screen“ pokrene sesiju, videćemo prazan prozor sa komandnom linijom. Preuzećemo veliku datoteku, kako bismo imali dugotrajan proces kao primer.
Unesite sledeće:
curl http://ipv4.download.thinkbroadband.com/1GB.zip > bigfile.zip
bigfile.zip“ u terminalu“ width=“646″ height=“77″/>
Kada preuzimanje počne, pritisnite Ctrl+A, a zatim pritisnite D da odvojite sesiju. Unesite sledeće da biste koristili opciju „-ls“ (list) sa „screen“-om, kako biste prikazali detalje odvojene sesije:
screen -ls
Pored numeričkog identifikatora (23266) vidi se i ime sesije (veliki fajl). Unesite sledeće, uključujući i ime sesije, kako biste se ponovo povezali:
screen -r bigfile
Ponovo smo povezani sa prozorom koji preuzima datoteku i vidimo da je proces u toku.
Nakon što se preuzimanje završi, unesite „exit“ da biste zatvorili prozor sesije.
Korišćenje „screen“-a sa više prozora
Do sada smo koristili „screen“ da bismo pokrenuli jedan proces u pozadini, u zasebnom prozoru. Međutim, „screen“ može da uradi mnogo više od toga. U nastavku ćemo pokrenuti nekoliko procesa koji nam omogućavaju da pratimo neke aspekte našeg računara.
Unesite sledeće da biste pokrenuli „screen“ sesiju pod imenom „monitor“:
screen -S monitor
Na komandnoj liniji u novoj „screen“ sesiji, pokrenućemo „dmesg“ i koristiti opcije „-H“ (čitljivo) i „-w“ (čekaj nove poruke). Ovo će prikazati poruke bafera kernela; nove poruke će se pojaviti čim budu generisane.
Unesite sledeće:
dmesg -H -w
Prikazuju se postojeće poruke. Nismo vraćeni na komandnu liniju, jer „dmesg“ čeka nove poruke i prikazuje ih čim stignu.
Želimo da pokrenemo drugu aplikaciju, tako da nam je potreban novi „screen“ prozor. Pritisnite Ctrl+A, a zatim C da kreirate novi prozor. Koristićemo „watch“ za ponovljeno pokretanje „vmstat“, tako da dobijemo često ažurirani prikaz upotrebe virtuelne memorije na računaru.
U novoj komandnoj liniji, unesite sledeće:
watch vmstat
„Vmstat“ izlaz se prikazuje i ažurira svake dve sekunde.
Naša dva procesa sada rade. Da biste prelazili između „screen“ prozora, pritisnite Ctrl+A i broj prozora. Prvi prozor koji smo kreirali je prozor nula (0), sledeći je prozor 1, i tako dalje. Da biste prešli na prvi prozor („dmesg“), pritisnite Ctrl+A i 0.
Ako pritisnete Ctrl+A i 1, vraćate se u prozor sa „vmstat“.
Ovo je vrlo korisno! Možemo pritisnuti Ctrl+A, a zatim D da se odvojimo od ove sesije; možemo se ponovo povezati kasnije. Obe sesije će nastaviti da rade. Još jednom, da biste prelazili između prozora, pritisnite Ctrl+A i broj (0 ili 1) prozora na koji želite da pređete.
Preći ćemo na sledeći korak i pogledati oba ekrana u jednom prozoru. Kada to uradite, proširite terminalni prozor na veličinu koja ovaj korak čini korisnim. Naši primeri su ograničeni veličinom ekrana, tako da će prozori izgledati malo skučeno.
Da biste to uradili, pritisnite Ctrl+A, a zatim Shift+S (potrebno je veliko „S“).
Prozor se deli na dve „regije“.
Gornja regija i dalje prikazuje „vmstat“, a donja regija je prazna. Kursor je označen na slici ispod. Da bismo ga prebacili u donju regiju, pritisnite Ctrl+A, a zatim Tab.
Kursor se pomera u donju regiju, koja je u stvari samo prazan prostor. To nije shell, tako da ne možemo ništa da unosimo. Da bismo dobili koristan prikaz, pritisnite Ctrl+A, a zatim „0“ da prikažemo „dmesg“ prozor u ovoj regiji.
Ovo nam daje oba izlaza u jednom podeljenom prozoru. Ako pritisnete Ctrl+A i D da odvojite prozor, a zatim ga ponovo spojite, izgubićemo prikaz podeljenog prozora. Međutim, možemo ga vratiti koristeći sledeće prečice na tastaturi:
Ctrl+A, S: Podeli prozor horizontalno.
Ctrl+A, Tab: Pređi u donju regiju.
Ctrl+A, 0: Prikaži prozor nula u donjoj regiji.
Možemo da odemo i korak dalje. Sada ćemo podeliti donji panel vertikalno i dodati treći proces na ekran. Sa kursorom u donjem delu, pritisnite Ctrl+A i C da kreirate novi prozor sa shell-om. Donja regija prikazuje novi prozor i daje nam komandnu liniju.
Zatim pokrećemo komandu „df“ za proveru upotrebe fajl sistema:
df
Kada se „df“ pokrene, pritisnite Ctrl+A i simbol vertikalne linije (|). Ovo deli donju regiju vertikalno. Pritisnite Ctrl+A i Tab da biste prešli u novu regiju. Zatim pritisnite Ctrl+A i 0 da biste prikazali „dmesg“ prozor.
<img loading=“lazy“ decoding=“async“ src=“https://techblog.co.rs/wp-content/uploads/2022/01/1641517801_6