Zoeken op website

20 Voorbeelden van schermopdrachten om Linux-terminals te beheren


Kort: in deze handleiding bespreken we enkele nuttige voorbeelden van de schermopdracht. Aan het einde van deze handleiding kunnen gebruikers met meerdere shell-sessies werken met behulp van één enkel Linux-terminalvenster.

Als Linux-gebruikers moeten we vaak aan langlopende taken werken, zoals het downloaden of kopiëren van grote bestanden, het uitvoeren van tijdrovende databasequery's, enzovoort. Soms worden deze belangrijke taken abrupt beëindigd vanwege een sessietime-out.

Om dergelijke scenario's te beperken, kunnen we de opdracht screen gebruiken, een softwareprogramma op volledig scherm dat kan worden gebruikt om een fysieke console te multiplexen tussen verschillende processen (meestal interactieve shells). Het biedt een gebruiker de mogelijkheid om verschillende afzonderlijke terminalinstanties te openen in één terminalvensterbeheerder.

De toepassing screen is erg handig als u met meerdere programma's werkt vanaf een opdrachtregelinterface en voor het scheiden van programma's van de terminalshell. Hiermee kunt u ook uw sessies delen met andere gebruikers en terminalsessies loskoppelen/koppelen.

In deze handleiding bespreken we hoe u de screenopdracht op een Linux-systeem installeert, configureert en gebruikt. In deze handleiding zullen we het gebruik en de voordelen van de schermopdracht begrijpen aan de hand van praktische voorbeelden.

Dus laten we beginnen.

Installeer Screen Command onder Linux

Op mijn Ubuntu Server Edition is de opdracht screen standaard geïnstalleerd. Maar Linux Mint heeft standaard geen scherm geïnstalleerd, dus ik moet het eerst installeren met de opdracht apt-get voordat ik het kan gebruiken .

Volg de installatieprocedure van uw distributie om het scherm te installeren.

sudo apt-get install screen      [On Debian, Ubuntu and Mint]
sudo yum install screen          [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-apps/screen   [On Gentoo Linux]
sudo apk add screen              [On Alpine Linux]
sudo pacman -S screen            [On Arch Linux]
sudo zypper install screen       [On OpenSUSE]    

Laten we nu controleren of de opdracht met succes is geïnstalleerd:

screen --version

Screen version 4.8.00 (GNU) 05-Feb-20

Eigenlijk is het scherm een heel goed terminalmultiplexerprogramma in Linux dat verborgen is in honderden Linux-opdrachten.

Laten we het gebruik van de opdracht screen in Linux bekijken met de volgende voorbeelden.

Syntaxis van schermopdrachten

De syntaxis van de opdracht screen is als volgt

screen [OPTIONS] [ CMD [ ARGS ] ]

In de bovenstaande syntaxis kunnen we zien dat alle parameters opties zijn en dat ze worden weergegeven door de vierkante haken ([]).

1. Startscherm voor de eerste keer

Typ gewoon het scherm bij de opdrachtprompt. Vervolgens zal het scherm een interface weergeven die precies overeenkomt met de opdrachtprompt.

screen

2. Schermparameter weergeven

Wanneer u het scherm opent, kunt u al uw werk doen zoals u zich in de normale opdrachtregelomgeving bevindt. Maar aangezien het scherm een applicatie is, bevat het opdrachten of parameters.

Typ “Ctrl-A” en “?” zonder aanhalingstekens. Vervolgens ziet u alle opdrachten of parameters op het scherm.

Om het helpscherm te verlaten, kunt u op de knop “spatiebalk” of op “Enter“ drukken. (Houd er rekening mee dat alle sneltoetsen die “Ctrl-A” gebruiken, zonder aanhalingstekens worden uitgevoerd).

3. Hoe u alle geopende vensters kunt weergeven

In het vorige voorbeeld startten we een nieuwe shell-sessie met behulp van de schermopdracht. Laten we nu de toetsencombinatie ctrl-a + " gebruiken om alle geopende vensters van de huidige schermsessie weer te geven:

In de bovenstaande uitvoer kunnen we het nummer en de naam van het venster zien. De eerste kolom vertegenwoordigt het vensternummer en begint vanaf nul.

De volgende kolom vertegenwoordigt de naam van het venster en het standaardformaat is @:.

4. Hoe u een schermvenstersessie kunt beëindigen

We kunnen de actieve venstersessie beëindigen met behulp van de toetsencombinaties ctrl-a + k. Het is belangrijk op te merken dat deze actie de uitvoering van de opdracht vanuit het huidige virtuele venster onderbreekt.

In de bovenstaande uitvoer kunnen we zien dat de opdracht screen wacht op bevestiging van de gebruiker. Het toont het waarschuwingsbericht in de linkerbenedenhoek.

Net als andere Linux-opdrachten kunnen we 'y' gebruiken om door te gaan of 'n' om de bewerking af te breken.

5. Een schermsessie starten met naam

Met de opdracht screen kunnen we een sessie maken met een door de gebruiker gedefinieerde naam, wat handig is als er meerdere sessies beschikbaar zijn.

Laten we dus de -S optie van het commando gebruiken om een benoemde sessie te maken:

screen -S demo-screen

In het bovenstaande commando is het demoscherm de naam van de sessie.

6. Koppel de terminalsessie met scherm los

Een van de voordelen van een scherm is dat je het los kunt maken. Vervolgens kunt u het herstellen zonder dat u iets verliest wat u op het scherm hebt gedaan. Hier is het voorbeeldscenario:

Je bevindt je midden in SSH op je server. Stel dat u een patch van 400 MB voor uw systeem downloadt met de opdracht wget.

Het downloadproces duurt naar schatting 2 uur. Als u de SSH sessie verbreekt, of de verbinding plotseling per ongeluk wordt verbroken, stopt het downloadproces. Je moet opnieuw vanaf het begin beginnen. Om dat te voorkomen kunnen we een scherm gebruiken en deze losmaken.

Kijk eens naar deze opdracht. Eerst moet je het scherm betreden.

screen

Vervolgens kunt u het downloadproces uitvoeren. Op mijn Linux Mint upgrade ik bijvoorbeeld mijn dpkg-pakket met behulp van de opdracht apt.

sudo apt install dpkg
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following packages will be upgraded:
  dpkg
1 upgraded, 0 newly installed, 0 to remove and 1146 not upgraded.
Need to get 2,583 kB of archives.
After this operation, 127 kB of additional disk space will be used.
Get:1 http://debian.linuxmint.com/latest/ 
testing/main dpkg i386 1.16.10 [2,583 kB]
47% [1 dpkg 1,625 kB/2,583 kB 47%]     14,7 kB/s

Terwijl het downloaden bezig is, kunt u op “Ctrl-A” en “d“ drukken. Je ziet niets als je op die knoppen drukt. De uitvoer zal als volgt zijn:

[detached from 5561.pts-0.mint]
pungki@mint ~ $

7. Bevestig de terminalsessie met scherm opnieuw

Stel dat u, nadat u het scherm heeft losgemaakt, uw SSH-sessie verbreekt en naar huis gaat. Bij u thuis begint u opnieuw met SSH naar uw server en wilt u de voortgang van uw downloadproces zien. Om dat te doen, moet u het scherm herstellen. U kunt deze opdracht uitvoeren:

pungki@mint ~ $ screen -r

En je zult zien dat het proces dat je verliet nog steeds loopt.

Als u meer dan 1 scherm sessie heeft, moet u de ID van de schermsessie typen. Gebruik scherm -ls om te zien hoeveel schermen beschikbaar zijn.

pungki@mint ~ $ screen -ls
pungki@mint ~ $ screen -ls
There are screens on:
        7849.pts-0.mint (10/06/2021 01:50:45 PM)        (Detached)
        5561.pts-0.mint (10/06/2021 11:12:05 AM)        (Detached)
2 Sockets in /var/run/screen/S-pungki

Als u scherm 7849.pts-0.mint wilt herstellen, typt u deze opdracht.

pungki@mint ~ $ screen -r 7849

8. Terminalvensters met meerdere schermen gebruiken

Is het mogelijk dat u meer dan 1 scherm nodig heeft om uw werk te doen? Ja dat is zo. U kunt meerdere schermvensters tegelijkertijd uitvoeren. Er zijn 2 (twee) manieren om dit te doen.

Ten eerste kunt u het eerste scherm loskoppelen en een ander scherm op de echte terminal weergeven. Ten tweede maak je een genest scherm zoals weergegeven.

Om nieuwe vensters te maken, gebruikt u tweemaal de toetsencombinatie ctrl-a + c om twee nieuwe vensters te maken. Laten we vervolgens de toetsencombinatie ctrl-a + " gebruiken om alle actieve vensters weer te geven:

In de bovenstaande uitvoer kunnen we zien dat er nu drie vensters zijn.

9. Hoe u een schermvenster kunt hernoemen

In het vorige voorbeeld hebben we twee nieuwe vensters gemaakt. Hun standaardnamen geven echter geen details over hen. In dergelijke gevallen kunnen we er een aantal betekenisvolle namen aan toekennen.

We kunnen de toetsencombinatie ctrl-a + A gebruiken om de huidige venstersessie te hernoemen. Deze toetsencombinatie vraagt een gebruiker om een venstertitel in te stellen:

10. Schakelen tussen schermterminalvensters

In het vorige voorbeeld hebben we meerdere vensters gemaakt. Laten we nu eens kijken hoe we tussen deze kunnen schakelen.

Laten we eerst alle actieve vensters weergeven met de toetsencombinatie ctrl-a + ". Gebruik vervolgens de pijl-omhoog of pijl-omlaag om het juiste venster te selecteren. Druk ten slotte op de enter-toets om naar het geselecteerde venster te gaan. raam.

In dit voorbeeld hebben we het venster met de titel – db-query geselecteerd.

11. Naar het volgende scherm gaan

We kunnen de toetsencombinatie ctrl-a + n gebruiken om naar het volgende venster te gaan. Laten we dit begrijpen met een voorbeeld.

Ga eerst naar het eerste venster en verifieer het met de toetsencombinatie ctrl-a + ":

Laten we nu twee keer op de toetscombinatie ctrl-a + n drukken om naar het derde venster te gaan en de toetsencombinatie ctrl-a + " gebruiken om hetzelfde te verifiëren.

In de bovenstaande uitvoer kunnen we zien dat we nu in het derde venster zijn.

12. Hoe u naar het vorige schermvenster kunt gaan

Op een vergelijkbare manier kunnen we de combinatie ctrl-a + p gebruiken om naar het vorige venster te schakelen.

Momenteel bevinden we ons op het derde venster. Laten we dus de toetscombinatie ctrl-a + p twee keer gebruiken en verifiëren dat we ons weer in het eerste venster bevinden:

In de bovenstaande uitvoer kunnen we zien dat we nu terug zijn bij het eerste venster.

13. Hoe u kunt schakelen tussen het huidige en het vorige venster

Soms willen we gewoon tussen twee vensters schakelen. In dergelijke gevallen kunnen we de toetsencombinatie ctrl-a + ctrl-a gebruiken.

Om dit te begrijpen, gaat u eerst naar het eerste venster:

Ga vervolgens naar het laatste venster:

Gebruik ten slotte de toetscombinatie ctrl-a + ctrl-a om weer naar het eerste venster te gaan.

14. Hoe u naar een bepaald schermvenster kunt springen

In de voorgaande voorbeelden zagen we verschillende manieren om tussen vensters te schakelen. Soms willen we echter naar een bepaald venster springen. In dergelijke scenario's kunnen we de vensternummers gebruiken.

Laten we eerst de toetsencombinatie ctrl-a + " gebruiken om het vensternummer te vinden:

In de bovenstaande uitvoer vertegenwoordigt de eerste kolom het vensternummer. Het is belangrijk op te merken dat de schermopdracht begint met nummeren vanaf nul.

Laten we nu de toetsencombinatie ctrl-a + 2 gebruiken om naar het derde venster te gaan en te verifiëren dat we ons in het juiste venster bevinden:

15. Een schermvenster horizontaal splitsen

Net als bij normale terminals kunnen we ook het schermvenster splitsen. We kunnen de toetsencombinatie ctrl-a + S gebruiken om het venster horizontaal te splitsen.

Nu kunnen we de toetsencombinatie ctrl-a + tab gebruiken om tussen de regio's te springen.

Ten slotte kunnen we de toetsencombinatie ctrl-a + X gebruiken om de huidige regio te verwijderen. Het is belangrijk op te merken dat we hier een hoofdletter X moeten gebruiken.

16. Een schermvenster verticaal splitsen

Op dezelfde manier kunnen we de toetsencombinatie ctrl-a + | gebruiken om het huidige venster verticaal te splitsen:

Daarnaast kunnen we ook de toetscombinatie ctrl-a + tab gebruiken tussen de regio's en de toetsencombinatie ctrl-a + X om de huidige regio te sluiten.

17. Schakel schermregistratie in Linux in

Soms is het belangrijk om op te nemen wat je hebt gedaan terwijl je in de console zit. Stel dat u een Linux-beheerder bent die veel Linux-servers beheert.

Met deze scherm-registratie hoeft u niet elke afzonderlijke opdracht die u hebt uitgevoerd op te schrijven. Om de schermregistratiefunctie te activeren, drukt u gewoon op “Ctrl-A” en “H“. (Wees voorzichtig, we gebruiken een hoofdletter 'H'. Als u een niet-hoofdletter 'h' gebruikt, wordt er alleen een screenshot van het scherm gemaakt in een ander bestand met de naam hardcopy) .

Links onderaan het scherm zal er een melding zijn die u vertelt wat u leuk vindt: Logbestand aanmaken “screenlog.0“. U vindt een screenlog.0-bestand in uw thuismap.

Deze functie voegt alles toe wat u doet terwijl u zich in het schermvenster bevindt. Om het scherm voor het loggen van hardloopactiviteiten te sluiten, drukt u nogmaals op “Ctrl-A” en “H”.

Een andere manier om de logfunctie te activeren, is door de parameter “-L” toe te voegen wanneer u het scherm voor de eerste keer gebruikt. Het commando zal als volgt zijn.

pungki@mint ~ $ screen -L

18. Vergrendel het Linux-terminalscherm

Het scherm bevat ook een snelkoppeling om het scherm te vergrendelen. U kunt op de sneltoetsen “Ctrl-A” en “x” drukken om het scherm te vergrendelen. Dit is handig als je je scherm snel wilt vergrendelen. Hier is een voorbeelduitvoer van het vergrendelscherm nadat u op de snelkoppeling hebt gedrukt.

Screen used by Pungki Arianto  on mint.
Password:

U kunt uw Linux-wachtwoord gebruiken om het te ontgrendelen.

19. Voeg wachtwoord toe aan schermsessie

Om veiligheidsredenen wilt u wellicht het wachtwoord aan uw schermsessie toevoegen. Er wordt om een wachtwoord gevraagd wanneer u het scherm opnieuw wilt bevestigen. Dit wachtwoord wijkt af van het bovenstaande Vergrendelscherm-mechanisme.

Om uw scherm met een wachtwoord te beveiligen, kunt u het bestand “$HOME/.screenrc” bewerken. Als het bestand niet bestaat, kunt u het handmatig maken. De syntaxis zal er als volgt uitzien.

password crypt_password

Om het bovenstaande “crypt_password” aan te maken, kun je de opdracht “mkpasswd” gebruiken op Linux. Hier is het commando met het wachtwoord “pungki123“.

pungki@mint ~ $ mkpasswd pungki123
l2BIBzvIeQNOs

mkpasswd genereert een hash-wachtwoord zoals hierboven weergegeven. Zodra u het hash-wachtwoord heeft ontvangen, kunt u het naar uw “.screenrc”-bestand kopiëren en opslaan. Het bestand “.screenrc” zal er dus zo uitzien.

password l2BIBzvIeQNOs

De volgende keer dat u het scherm activeert en loskoppelt, wordt er om een wachtwoord gevraagd wanneer u het probeert opnieuw te koppelen, zoals hieronder weergegeven:

pungki@mint ~ $ screen -r 5741
Screen password:

Typ uw wachtwoord, dat is “pungki123”, en het scherm wordt opnieuw gekoppeld.

Nadat u dit schermwachtwoord heeft geïmplementeerd en op “Ctrl-A” en “x“ heeft gedrukt, zal de uitvoer er als volgt uitzien.

Screen used by Pungki Arianto on mint.
Password:
Screen password:

Er wordt tweemaal om een wachtwoord gevraagd. Het eerste wachtwoord is uw Linux-wachtwoord en het tweede wachtwoord is het wachtwoord dat u in uw .screenrc-bestand hebt ingevoerd.

20. Schermterminalsessie verlaten

Er zijn 2 (twee) manieren om het scherm te verlaten. Eerst gebruiken we “Ctrl-A” en “d” om het scherm los te koppelen. Ten tweede kunnen we de opdracht exit gebruiken om het scherm te beëindigen. Je kunt ook “Ctrl-A” en “K” gebruiken om het scherm te beëindigen.

Cheatsheet voor schermopdrachten

screen -S <session_name>

Start een nieuwe sessie met de sessienaam.

screen -ls

Lijst met lopende sessies/schermen.

screen -x

Sluit aan bij een hardloopsessie.

screen -r <session_name>

Voeg een naam toe aan een hardloopsessie.

screen -d <session_name>

Koppel een hardloopsessie los.

Ctrl-a c

Nieuw venster maken.

Ctrl-a Ctrl-a

Ga naar het laatst bezochte actieve venster.

Ctrl-a <number>

Ga naar venster op nummer.

Ctrl-a ' <number or title>

Ga naar venster op nummer of naam.

Ctrl-a n or Ctrl-a <space>

Ga naar het volgende venster in de lijst.

Ctrl-a p or Ctrl-a <backspace>

Naar het vorige venster in de lijst gaan.

Ctrl-a "

Zie vensterlijst.

Ctrl-a w

Vensterbalk weergeven.

Ctrl-a k

Dood het huidige venster.

Ctrl-a \

Dood alle ramen.

Ctrl-a A

Hernoem het huidige venster.

Ctrl-a S

Weergave horizontaal splitsen.

Ctrl-a | or Ctrl-a V

Verticaal gesplitste weergave.

Ctrl-a tab

Ga naar het volgende weergavegebied.

Ctrl-a X

Verwijder de huidige regio.

Ctrl-a Q

Verwijder alle regio's behalve de huidige.

Ctrl-a H

Schakel inloggen in de schermsessie in.

Ctrl-a x

Scherm vergrendelen (met wachtwoord beveiligen).

Dat is een deel van het dagelijks gebruik van scherm opdrachten. Er zitten nog steeds veel functies in de schermopdracht. Mogelijk ziet u de schermmanpagina voor meer details.

Kent u een ander beste voorbeeld van de schermopdracht in Linux? Laat ons uw mening weten in de reacties hieronder.