Screen Command on Linux Explained

Het screen commando is een veelgebruikt commando dat onder Linux wordt gebruikt om meerdere terminal shells te starten en te rangschikken binnen een enkele shell.

Screen wordt meestal voor twee doeleinden gebruikt.

Het kan worden gebruikt om meerdere shells te organiseren en er gemakkelijk tussen te navigeren.

Het kan ook worden gebruikt om lang lopende commando’s op remote servers te hebben.

In feite wordt shells gelanceerd om ervoor te zorgen dat je geen werk op afstand verliest in geval van een plotselinge netwerkstoring.

In deze tutorial gaan we een compleet overzicht geven van wat het commando screen onder Linux is en hoe het effectief kan worden gebruikt.

Klaar?

Inhoudsopgave

Voorvereisten

Om nieuwe pakketten te kunnen installeren, moet u een sudo-gebruiker zijn.

Als u een gebruiker moet toevoegen aan sudoers op Debian, is daar een tutorial voor.

Er is er ook een voor Red Hat gebaseerde distributies.

Als u klaar bent, typt u dit commando om er zeker van te zijn dat u sudo rechten heeft.

$ sudo -lUser user may run the following commands on localhost: (ALL) ALL

Installeren van Screen op Linux

Om Screen te installeren, moet u een van de volgende commando’s uitvoeren.

Op Debian-gebaseerde distributies, kunt u

$ sudo apt-get install screen

Voor Red Hat-gebaseerde distributies, moet u

$ sudo yum install -y screen

Wanneer u klaar bent, kunt u dit commando uitvoeren om uw huidige screen versie te controleren.

$ screen -vScreen version 4.06.02 (GNU) 23-Oct-17

Interactie met Screen onder Linux

Zoals eerder beschreven, wordt screen gebruikt om een interactieve shell te starten waar u meerdere shells in kunt herschikken.

Om uw eerste screen te starten, typt u gewoon het volgende commando.

Zoals u kunt zien, zijn er geen verschillen met uw vorige shell, behalve dat de header schrijft

screen 0: :~

Van daaruit betekent het dat een bash interpreter wordt uitgevoerd binnen een andere bash interpreter via het screen utility.

Om een commando uit te voeren, typt u gewoon een commando zoals u dat normaal ook zou doen.

Hulp bij screen

Bij interactie met het screen commando zult u sneltoetsen op uw toetsenbord moeten gebruiken om acties binnen de screen sessie uit te voeren.

De standaard “Ctrl + A”-toetsaanslagen zijn bedoeld voor interactie met het scherm.

Typ bijvoorbeeld “Ctrl + A” en vervolgens “?” om de schermhelp te krijgen.

Zoals u ziet, hebt u veel verschillende mogelijkheden om met het scherm te communiceren.

De meest populaire zijn waarschijnlijk de volgende :

  • “Ctrl + A” dan “d” : ontkoppelmodus. U kunt deze optie gebruiken om te ontkoppelen (wat betekent dat u teruggaat naar uw oorspronkelijke shell) en het scherm op de achtergrond te laten draaien. Dit is vooral handig wanneer u lange taken uitvoert op uw host.
  • “Ctrl + A” dan “x” : lockscreen. Dit wordt gebruikt om je schermsessie te beschermen tegen gebruik door een andere gebruiker. Als gevolg hiervan wordt een wachtwoord ingesteld op uw sessie.
  • “Ctrl + A” dan “c” : scherm commando. Verreweg een van de meest gebruikte commando’s, deze bindingen worden gebruikt om een nieuw venster te maken binnen je scherm instantie.
  • “Ctrl + A” dan “|” : verticaal splitsen. Standaard zal dit commando je huidige venster splitsen in twee verschillende gebieden waarmee je kunt werken.
  • “Ctrl + A” dan “S” : horizontale split.
  • “Ctrl + A” dan “n” : gebruikt om te navigeren tussen uw verschillende venster sessies van degene met de laagste index tot degene met de grootste index.
  • “Ctrl + A” dan “Tab” : gebruikt om uw invoer cursor te verplaatsen naar een van uw verschillende gebieden binnen het scherm.

In de meeste gevallen zijn dit de commando’s die u met screen gaat gebruiken.

Splitsen van gebieden met het screen commando

Als voorbeeld gaan we de volgende layout maken met het screen commando op Linux.

Zoals u kunt zien, gaan we de terminal zowel verticaal als horizontaal splitsen.

Een venster wordt gebruikt om een commando uit te voeren (bijvoorbeeld een lang lopend commando).

Een tweede venster wordt gebruikt om de systeemprestaties te monitoren met behulp van het bovenste commando.

Ten slotte kan een ander venster worden gebruikt om een bestand te bewerken via de nano editor.

Scherm venster maken

Eerst maak je een scherm sessie aan door het volgende commando uit te voeren.

$ screen -S user-screen

De optie -S maakt een benoemde sessie aan voor je scherm omgeving.

Wanneer meerdere beheerders op hetzelfde systeem werken, kan het een goed idee zijn om sessies een naam te geven om je sessies van anderen te onderscheiden.

Volgende, aangezien je drie shell sessies gaat manipuleren, heb je twee extra schermen nodig.

Voer het “create” commando twee keer uit (“Ctrl + A” dan “c”). Je zou het volgende scherm moeten krijgen.

Merk op dat de header of je terminal shell “screen 2” weergeeft omdat er momenteel drie schermen actief zijn voor je sessie.

Schermvensters verticaal en horizontaal splitsen

De volgende stap is het maken van de verschillende regio’s op uw huidige venster.

Om dat te bereiken, splits je eerst je huidige regio verticaal door op “Ctrl +A” te drukken en vervolgens op “|”

Je zou moeten eindigen met de volgende uitvoer.

Daarna splitst u uw lay-out horizontaal door op “Ctrl +A” en vervolgens op “S” te drukken.

Dit is wat u zou moeten krijgen.

Navigeer naar uw tweede regio door op “Ctrl +A” te drukken en vervolgens op “Tab”. Standaard zou uw regio leeg moeten zijn, dus u kunt op “Ctrl +A” en vervolgens op “n” drukken om naar uw scherm 0-sessie te navigeren.

Van daaruit voert u de opdracht uit die u wilt uitvoeren.

Herhaal de vorige stappen om commando’s in de andere regio’s uit te voeren.

Houd er rekening mee dat u tussen uw schermvensters moet navigeren wanneer u voor het eerst een gesplitste regio binnengaat.

Geweldig! U hebt een complete schermsessie op maat gemaakt.

Ontkoppelen van uw schermsessie

Om uw schermsessie te ontkoppelen, hoeft u alleen maar op de volgende toetsaanslagen te drukken.

$ Ctrl + A then d

Uw schermsessie wordt nog steeds op de achtergrond uitgevoerd.

Dit is een van de belangrijkste aspecten van het schermcommando.

Het kan worden gebruikt om via SSH naar een host op afstand te gaan, enkele acties uit te voeren, en af te sluiten om er later op terug te komen.

Op deze manier hoeft u niet te manipuleren met achtergrond en voorgrond die u kunt verliezen door uw huidige terminal te sluiten.

Om te controleren of uw schermsessie nog loopt, voert u het volgende commando uit

$ pstree | grep -A 2 -E "screen-"

Het vastmaken aan uw schermsessie

Eerst, kunt u een lijst van uw schermvensters maken door het volgende commando uit te voeren.

$ screen -ls

Als u uw schermsessie een naam hebt gegeven, kunt u eenvoudigweg het volgende commando uitvoeren

$ screen -r <session_name>

In het bovenstaande voorbeeld zou ik dit commando moeten uitvoeren om terug te gaan naar mijn sessie.

$ screen -r user-screen

Merk op dat je ook terug kunt gaan naar je sessie door het screen ID helemaal links van het ls commando te gebruiken.

$ screen -r 3600

Ternauwernood verlies je al je visuele veranderingen en zul je je vensters weer moeten splitsen.

Maar met genoeg oefening leert u de sneltoetsen heel gemakkelijk kennen.

Vergrendelen van uw schermsessie

Soms wilt u misschien voorkomen dat andere gebruikers met uw schermsessie kunnen interageren.

Om uw scherm te vergrendelen, drukt u op “Ctrl + A” en vervolgens op “x”.

Om het scherm te ontgrendelen, moet u het wachtwoord invoeren van de gebruiker die eigenaar is van de schermsessie.

Conclusie

In de tutorial van vandaag hebt u geleerd hoe u onder Linux eenvoudig het screen command kunt manipuleren om binnen een gewone commandoregel aangepaste shell-omgevingen te maken.

U hebt geleerd dat het kan worden gebruikt op servers op afstand om ervoor te zorgen dat u de sessie kunt afsluiten en toch uw werk kunt opslaan (als u bijvoorbeeld langlopende commando’s op de voorgrond hebt).

Als u geïnteresseerd bent in Linux Systeembeheer, hebben we een complete sectie op de website gewijd aan dit onderwerp.

Geef een reactie

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