Skip to content
Skip to content
Menu
Info Cafe
Info Cafe

Hoe Linux’s screen Command te gebruiken

By admin on februari 23, 2021

  • Dave McKay

    @TheGurkha

  • March 27, 2020, 8:00am EDT
Een Linux-terminal op een laptop met daarachter andere terminalsessies gesuperponeerd.
fatmawati achmad zaenuri/

Met het Linux-commando screen kun je draaiende terminaltoepassingen naar de achtergrond duwen en ze naar voren halen als je ze wilt zien. Het ondersteunt ook split-screen schermen en werkt over SSH verbindingen, zelfs nadat je losgekoppeld en weer verbonden bent!

Wat is het screen commando?

Het screen commando is een terminal multiplexer, en het zit vol met opties. Om te zeggen dat het veel kan is de grootvader van understatements. De man page beslaat meer dan 4.100 regels.

De volgende zijn de meest voorkomende gevallen waarin je het screen commando zou gebruiken, en we zullen deze verder in dit artikel behandelen:

  • De standaard operatie is om een nieuw venster te maken met een shell erin, een commando uit te voeren, en dan het venster naar de achtergrond te duwen (dit heet “ontkoppelen”). Als je wilt zien hoe je proces het doet, kun je het venster weer naar de voorgrond halen (“reattach”) en het opnieuw gebruiken. Dit is geweldig voor lange processen die je niet per ongeluk wilt beëindigen door het terminal venster te sluiten.
  • Als je eenmaal een screen sessie hebt draaien, kun je nieuwe vensters maken en daar andere processen in draaien. Je kunt gemakkelijk van het ene venster naar het andere springen om de voortgang te bekijken. U kunt ook uw terminal venster splitsen in verticale of horizontale gebieden, en uw verschillende screen vensters in een venster weergeven.
  • U kunt verbinding maken met een machine op afstand, een screen sessie starten, en een proces starten. Je kunt de verbinding met de host op afstand verbreken, opnieuw verbinding maken, en je proces zal nog steeds draaien.
  • Je kunt een screen sessie delen tussen twee verschillende SSH verbindingen, zodat twee mensen hetzelfde kunnen zien, in real-time.

Scherm installeren

Om screen op ubuntu te installeren, gebruikt u dit commando:

sudo apt-get install screen

Het commando "sudo apt-get install screen" in een terminalvenster."sudo apt-get install screen" command in a terminal window.

Om screen op Manjaro te installeren, gebruikt u het volgende commando:

sudo pacman -Sy screen

Het commando "sudo pacman -Sy screen" in een terminalvenster."sudo pacman -Sy screen" command in a terminal window.

Op Fedora typt u het volgende:

sudo dnf install screen

De opdracht "sudo dnf install screen" in een terminalvenster."sudo dnf install screen" command in a terminal window.

Aan de slag met screen

Om te beginnen screen typt u het zoals hieronder afgebeeld en drukt u op Enter:

screen

De opdracht "screen" in een terminalvenster."screen" command in a terminal window.

Advertentie

U ziet een pagina met licentie-informatie. Je kunt op de spatiebalk drukken om de tweede pagina te lezen of op Enter om terug te keren naar de opdrachtprompt.

De opdracht "screen" licentie-informatie in een terminalvenster."screen" command license information in a terminal window.

Je blijft bij de opdrachtprompt en er lijkt niet veel te zijn gebeurd. U voert nu echter een commandoregel uit in een terminalemulator met multiplexing. Waarom is dit een goede zaak? Nou, laten we een proces starten dat lang gaat duren om te voltooien. We downloaden de broncode voor de nieuwste Linux kernel en zetten deze om in een bestand met de naam latest_kernel.zip.

Daartoe typen we het volgende:

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

Het commando "curl latest_kernel.zip" in een terminalvenster."curl https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz > latest_kernel.zip" command in a terminal window.

Onze download begint, en de curl uitvoer toont ons de voortgang.

De uitvoer van het "curl latest_kernel.zip"-commando in een terminalvenster."curl https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz > latest_kernel.zip" command in a terminal window.

Advertentie

We kunnen u geen afbeelding laten zien van het volgende stukje, omdat het een toetscombinatie is. Je typt Ctrl+A, laat die toetsen los en drukt vervolgens op d om het scherm los te maken.

Het downloadproces loopt nog steeds, maar het venster dat de download laat zien is verwijderd. U keert terug naar het terminal venster van waaruit u de screen sessie startte. Een bericht vertelt u dat een screen venster met de naam 23167.pts-0.howtogeek is losgemaakt.

U heeft het nummer vanaf het begin van de vensternaam nodig om het weer vast te maken. Als u het vergeet, kunt u altijd de -ls (lijst) optie gebruiken, zoals hieronder, om een lijst van de losgemaakte vensters te krijgen:

screen -ls

Het "screen -ls" commando in een terminal venster."screen -ls" command in a terminal window.

Wanneer u klaar bent, kunt u de optie -r (opnieuw vastmaken) en het nummer van de sessie gebruiken om deze opnieuw vast te maken, zoals dit:

screen -r 23167

Het commando "screen -3 23167" in een terminalvenster."screen -3 23167" command in a terminal window.

Advertentie

Het venster dat op de achtergrond aan het werk is geweest, wordt nu teruggebracht naar je terminalvenster alsof het nooit is weggeweest.

Een opnieuw vastgezette schermsessie wordt teruggebracht naar het terminalvenster.

Als het een proces is dat tot het einde doorloopt, zal het uiteindelijk worden voltooid. Als het een doorlopend proces is, zult u het uiteindelijk willen beëindigen. Hoe dan ook, wanneer het proces eindigt, kan je exit typen om het proces te verlaten screen. U kunt ook op Ctrl+A drukken, en dan op K om een venster geforceerd te doden.

Typ het volgende commando:

exit

Het "exit" commando in een terminal venster."exit" command in a terminal window.

U keert terug naar uw vorige terminal venster, dat nog steeds het commando toont dat u gebruikte om het venster weer vast te maken. Omdat we ons enige losgekoppelde venster hebben gesloten, krijgen we een bericht dat screen wordt beëindigd.

Het bericht "screen" commando beëindigen in een terminalvenster."screen" command terminating message in a terminal window.

GERELATEERD: Hoe gebruik je curl om bestanden te downloaden vanaf de Linux-opdrachtregel

Gebruik schermsessies met naam

Je kunt de -S (sessienaam) optie gebruiken om je screen sessie een naam te geven. Als je een memorabele naam gebruikt in plaats van de numerieke identiteit van de sessie, is het handiger om opnieuw verbinding te maken met een sessie. We typen het volgende om onze sessie “bigfile” te noemen:

screen -S bigfile

Het commando "screen -S bigfile" in een terminalvenster."screen -S bigfile" command in a terminal window.

Advertentie

Wanneer screen onze sessie opstart, zien we een leeg venster met een opdrachtprompt. We gaan een groot bestand downloaden, dus we kunnen een lang lopend proces als voorbeeld gebruiken.

We typen het volgende:

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

Het "curl bigfile.zip"-commando in een terminalvenster."curl http://ipv4.download.thinkbroadband.com/1GB.zip > bigfile.zip" command in a terminal window.

Wanneer het downloaden begint, drukken we op Ctrl+A, en vervolgens op D om de sessie te ontkoppelen. We typen het volgende om de -ls (lijst) optie met screen te gebruiken om de details van onze ontkoppelde sessie te zien:

screen -ls

De "screen -ls" opdracht in een terminal venster."screen -ls" command in a terminal window.

Achter de numerieke identificatiecode (23266) zien we de naam van onze sessie (bigfile). We typen het volgende, inclusief de naam van de sessie, om deze opnieuw te koppelen:

screen -r bigfile

De opdracht "screen -r bigfile" in een terminalvenster."screen -r bigfile" command in a terminal window.

We zijn opnieuw verbonden met ons downloadvenster en zien dat de lange download nog steeds bezig is.

Curl-downloaduitvoer in een opnieuw verbonden schermsessie in een terminalvenster.

Advertentie

Als de download is voltooid, typen we exit om het sessievenster te sluiten.

Scherm gebruiken met meerdere vensters

Tot nu toe hebben we screen gebruikt om een enkel proces op de achtergrond in een losgekoppeld venster te plaatsen. Echter, screen kan veel meer dan dat. Vervolgens zullen we een paar processen uitvoeren die ons in staat stellen om enkele aspecten van onze computer te monitoren.

We typen het volgende om een schermsessie met de naam “monitor” te starten:

screen -S monitor

Het commando "screen -S monitor" in een terminalvenster."screen -S monitor" command in a terminal window.

Op de opdrachtprompt in onze nieuwe venstersessie starten we dmesg en gebruiken we de -H (menselijk leesbaar) en -w (wacht op nieuwe berichten) opties. Hiermee worden de kernelbufferberichten weergegeven; nieuwe berichten verschijnen wanneer ze zich voordoen.

We typen het volgende:

dmesg -H -w

De opdracht "dmesg -H -w" in een terminalvenster."dmesg -H -w" command in a terminal window.

Advertentie

De bestaande berichten verschijnen. We worden niet teruggestuurd naar de opdrachtprompt omdat dmseg wacht op nieuwe berichten, en deze zal weergeven zodra ze binnenkomen.

De uitvoer van "dmsesg" in een terminalvenster."dmsesg" output in a terminal window.

GERELATEERD: How to Use the dmesg Command on Linux

We willen een andere applicatie draaien, dus hebben we een nieuw screen venster nodig. We drukken op Ctrl+A, en dan C om een nieuw venster te maken. We gaan watch gebruiken om herhaaldelijk vmstat te draaien, zodat we een regelmatig bijgewerkte weergave krijgen van het virtuele geheugengebruik op onze computer.

Op de nieuwe opdrachtprompt typen we het volgende:

watch vmstat

Het commando "watch vmstat" in een terminalvenster."watch vmstat" command in a terminal window.

De vmstat-uitvoer verschijnt en wordt elke twee seconden bijgewerkt.

De "vmstat"-uitvoer in een terminalvenster."vmstat" output in a terminal window.

Onze twee processen draaien nu. Om tussen de screen vensters te springen, druk je op Ctrl+A, en het nummer van het venster. Het eerste dat we gemaakt hebben is window nul (0), het volgende is window 1, enzovoort. Om naar het eerste venster te gaan (het dmesg venster), drukken we op Ctrl+A en 0.

Terugkeren naar het "dmesg" scherm in een terminal venster."dmesg" screen in a terminal window.

Als we op Ctrl+A en 1 drukken, gaan we terug naar het vmstat-venster.

Terugkeren naar het "vmstat"-scherm in een terminalvenster."vmstat" screen in a terminal window.

Reclame

Dat is best handig! We kunnen op Ctrl+A drukken, en dan op D om ons los te maken van deze sessie; we kunnen ons later weer vastmaken. Beide sessies zullen nog steeds draaien. Nogmaals, om tussen de vensters te wisselen, drukken we op Ctrl+A en het nummer (0 of 1) van het venster waarnaar we willen overschakelen.

Laten we naar de volgende stap gaan en beide schermen in één venster bekijken. Als je dit doet, rek je je terminal venster uit tot een grootte die deze stap nuttig maakt. Onze voorbeelden zijn beperkt tot de grootte van onze screenshots, dus onze vensters zullen er een beetje krap uitzien.

Om dit te doen, drukken we op Ctrl+A, en vervolgens op Shift+S (een hoofdletter “S” is vereist).

Het venster splitst zich in twee “regio’s.”

Een "scherm"-venstersessie splitst zich in twee horizontale regio

In de bovenste regio staat nog steeds vmstat, en de onderste regio is leeg. De cursor is gemarkeerd in de schermafbeelding hieronder. Om hem naar de onderste regio te verplaatsen, drukken we op Ctrl+A, en vervolgens op Tab.

Een "scherm" venster sessie opgesplitst in twee horizontale regio

Advertentie

De cursor gaat naar de onderste regio, die eigenlijk gewoon een lege ruimte is. Het is geen commandoregel, dus we kunnen er niets in typen. Om een bruikbare weergave te krijgen, drukken we op Ctrl+A, en vervolgens op “0” om het dmesg venster in deze regio weer te geven.

Het "scherm" sessie met een horizontaal gesplitst deelvenster dat een ander proces in elke regio in een terminal venster toont."screen" session with a horizontal split pane showing a different process in each region in a terminal window.

Dit geeft ons beide live uitgangen in een gesplitst venster. Als we op Ctrl+A en D drukken om het venster los te maken, en het dan weer vastmaken, verliezen we de split-pane weergave. We kunnen het echter herstellen met de volgende sneltoetsen:

  • Ctrl+A, S: Split het venster horizontaal.
  • Ctrl+A, Tab: Verplaats naar de onderste regio.
  • Ctrl+A, 0: Venster nul weergeven in de onderste regio.

We kunnen nog een stap verder gaan. We splitsen nu het onderste deelvenster verticaal, en voegen een derde proces toe aan de weergave. Met de cursor in de onderste regio, drukken we op Ctrl+A en C om een nieuw venster te maken met een schil erin. De onderste regio geeft het nieuwe venster weer en geeft ons een opdrachtprompt.

Een "scherm"-sessie met een horizontaal gesplitst deelvenster waarin een nieuw venster in de onderste regio in een terminalvenster wordt weergegeven."screen" session with a horizontal split pane showing a new window in the lower region in a terminal window.

Daarna voeren we het df commando uit om het gebruik van het bestandssysteem te controleren:

df

Een "scherm"-sessie met een horizontaal gesplitst deelvenster, en "df" getypt in de onderste regio in een terminalvenster."screen" session with a horizontal split pane, and "df" typed in the lower region in a terminal window.

Advertentie

Wanneer we df zien lopen, drukken we op Ctrl+A en het pijpteken (|). Dit splitst de onderste regio verticaal. We drukken op Ctrl+A en Tab om naar de nieuwe regio te gaan. Vervolgens drukken we op Ctrl+A en 0 om het dmesg venster weer te geven.

Een "scherm"-sessie met drie vensters in een terminalvenster."screen" session showing three panes in a terminal window.

Je kunt ook van regio naar regio gaan, en meer verticale of horizontale splitsingen aanbrengen. Hier zijn nog enkele handige toetscombinaties:

  • Ctrl+A: springt heen en weer tussen de huidige en vorige regionen.
  • Ctrl+A, Q: sluit alle regionen behalve de huidige.
  • Ctrl+A, X: Sluit de huidige regio.

Scherm gebruiken over SSH

Met screen, kunt u een venstersessie starten, deze loskoppelen zodat hij nog steeds op de achtergrond draait, uit- of weer inloggen, en de sessie weer vastkoppelen.

Laten we een SSH verbinding maken met onze computer vanaf een andere computer met het ssh commando. We moeten de naam opgeven van de account waarmee we verbinding gaan maken en het adres van de computer op afstand.

Voor ons voorbeeld typen we het volgende:

ssh [email protected]

Het commando "ssh dave@192.168.4.30" in een terminalvenster."ssh dave@192.168.4.30" command in a terminal window.

Advertentie

Nadat we ons op de externe computer hebben geauthenticeerd en ons hebben aangemeld, typen we het volgende om een screen-sessie te starten met de naam “ssh-geek”:

screen -S ssh-geek

De opdracht "screen -S ssh-geek" in een terminalvenster."screen -S ssh-geek" command in a terminal window.

Voor demonstratiedoeleinden zullen we top uitvoeren in het screen venster, maar je zou elk langlopend of eindeloos proces kunnen starten.

We typen het volgende:

top

Het commando "top" in een terminalvenster."top" command in a terminal window.

Als top eenmaal in het venster draait, drukken we op Ctrl+A, en vervolgens op D om het venster te ontkoppelen.

Het "top"-proces dat in een "scherm"-venster in een terminalvenster draait."top" process running in a "screen" window in a terminal window.

We keren terug naar het oorspronkelijke, externe terminalvenster.

Gebruiker keert terug naar zijn oorspronkelijke terminalvenster

Als we exit typen, zoals hieronder te zien is, wordt de SSH-sessie verbroken en zijn we terug op onze lokale computer:

exit

Het commando "exit" in een terminalvenster."exit" command in a terminal window.

We typen het volgende om opnieuw verbinding te maken:

ssh [email protected]

De opdracht "ssh dave@192.168.4.30" in een terminalvenster."ssh dave@192.168.4.30" command in a terminal window.

Advertentie

Nadat we opnieuw zijn verbonden en ingelogd, kunnen we het volgende typen om de screen sessie opnieuw te koppelen:

screen -r ssh-geek

Het commando "screen -r ssh-geek" in een terminalvenster."screen -r ssh-geek" command in a terminal window.

We zijn nu opnieuw verbonden met onze nog steeds draaiende instantie van top.

Het "top"-proces dat in een terminalvenster draait."top" process running in a terminal window.

Dit is handig als u een proces op de ene machine wilt starten, en dan verder wilt gaan waar u op een andere machine was gebleven.

GERELATEERD: Hoe SSH Keys te maken en te installeren vanuit de Linux Shell

Een schermsessie delen

U kunt ook een screen sessie gebruiken om twee mensen hetzelfde venster te laten zien en ermee te laten werken. Stel dat iemand die Fedora op zijn computer draait, verbinding wil maken met onze Ubuntu server.

Hij zou het volgende typen:

ssh [email protected]

Het commando "ssh dave@192.168.4.30" in een terminal venster."ssh dave@192.168.4.30" command in a terminal window.

Nadat hij verbinding heeft gemaakt, start hij een schermsessie met de naam “ssh-geek” met de optie -S (sessienaam). Hij gebruikt ook de -d (ontkoppelen) en -m (afgedwongen creatie) opties om een nieuwe screen sessie te maken die al is ontkoppeld.

Hij typt het volgende:

screen -d -m -S ssh-geek

Het commando "screen -d -m -S ssh-geek" in een terminalvenster."screen -d -m -S ssh-geek" command in a terminal window.

Advertentie

Hij typt het volgende, waarbij hij de -X (multiscreen mode) optie gebruikt om de sessie te koppelen:

screen -X ssh-geek

De opdracht "screen -X ssh-geek" in een terminalvenster."screen -X ssh-geek" command in a terminal window.

Op een Manjaro-computer maakt iemand anders verbinding met de Ubuntu-computer met dezelfde accountgegevens, zoals hieronder te zien is:

ssh [email protected]

Het "ssh dave@192.168.4.1"-commando in een terminalvenster."ssh dave@192.168.4.1" command in a terminal window.

Als ze eenmaal verbinding heeft, typt ze het commando screen en gebruikt ze de optie -X (multiscreen mode) om deel te nemen aan dezelfde venstersessie, op de volgende manier:

screen -X ssh-geek

Het commando "screen -X ssh-geek" in een terminalvenster."screen -X ssh-geek" command in a terminal window.

Nu ziet de ander alles wat de een typt. Als de ene persoon bijvoorbeeld het commando “date” geeft, zien ze allebei het getypte commando en de uitvoer ervan.

Het commando "date" in een terminalvenster."date" command in a terminal window.

Uitvoer van het commando "date" in een terminalvenster."date" command in a terminal window.

Advertentie

Beiden delen nu een screen-sessie die wordt uitgevoerd op een Ubuntu-computer op afstand.

Voor een stuk software dat voor het eerst het daglicht zag in 1987, is screen nog steeds een goede productiviteitsversterker. Jezelf ermee vertrouwd maken zal een goed bestede tijd zijn!

GeRELATEERD: 37 Belangrijke Linux commando’s die je moet kennen

Dave McKay
Dave McKay gebruikte voor het eerst computers toen ponsband in de mode was, en hij programmeert sindsdien. Na meer dan 30 jaar in de IT industrie, is hij nu een full-time technologie journalist. Tijdens zijn loopbaan heeft hij gewerkt als freelance programmeur, manager van een internationaal software ontwikkelingsteam, een IT services project manager, en, meest recent, als een Data Protection Officer. Dave is een Linux evangelist en voorstander van open source.Read Full Bio ”

Berichtnavigatie

Waarom word ik misselijk van mijn supplementen?
Wat is hoogteziekte?

Geef een reactie Antwoord annuleren

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Meest recente berichten

  • 9 Beste Vitaminen en Supplementen voor honden voor een betere gezondheid
  • CD-rentevoorspelling voor 2021: Tarieven blijven waarschijnlijk laag, maar kunnen later in het jaar stijgen
  • Hoe de documentatie van het kwaliteitsmanagementsysteem te structureren
  • Chronische bekkenpijn en prostatitis: symptomen, diagnose en behandeling
  • Mixed Berry Crisp
  • Koolhydraatarm chocoladepuddingrecept
  • Gezonde spelletjes en activiteiten voor kinderen | UIC Online Informatics
  • De voordelen van borstvoeding na één jaar
  • Is het veilig om koffiedik door de gootsteen te spoelen | Atomic Plumbing
  • Onze werkzaamheden

Meta

  • Inloggen
  • Berichten feed
  • Reacties feed
  • WordPress.org

Archief

  • maart 2021
  • februari 2021
  • januari 2021
  • december 2020
  • DeutschDeutsch
  • NederlandsNederlands
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • PolskiPolski
  • 日本語日本語
©2021 Info Cafe | WordPress Theme by SuperbThemes.com