Cum să utilizați comanda ecranului Linux
Publicat: 2022-01-29 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 alescreen
î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ă.
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
Fereastra care a funcționat în fundal este acum adusă înapoi în fereastra terminalului, ca și cum nu ar fi plecat niciodată.
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
Î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
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.
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
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
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ță.
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
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
Comenzi Linux | ||
Fișiere | tar · pv · cat · tac · chmod · grep · diff · sed · ar · om · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · tip · redenumire · zip · dezarhivare · montare · demontare · instalare · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm | |
Procese | alias · ecran · sus · frumos · renice · progres · strace · systemd · tmux · chsh · istoric · la · lot · gratuit · care · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · da · kill · sleep · sudo · su · time · groupadd · usermod · grupuri · lshw · shutdown · repornire · stop · poweroff · passwd · lscpu · crontab · data · bg · fg | |
Rețele | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
LEGATE: Cele mai bune laptopuri Linux pentru dezvoltatori și entuziaști