Sådan bruges Linux skærmkommando

Med Linux- screenkommandoen kan du skubbe kørende terminalapplikationer til baggrunden og trække dem fremad, når du vil se dem. Det understøtter også skærme med delt skærm og fungerer via SSH-forbindelser, selv efter at du afbryder og tilslutter igen!

Hvad er skærmkommandoen?

Den screenkommando er en terminal multiplexer, og det er absolut pakket med muligheder. At sige, at det kan gøre meget, er bedstefaderen til underdrivelse. Mandsiden løber til over 4.100 linjer.

Følgende er de mest almindelige tilfælde, hvor du vil bruge screenkommandoen, og vi vil dække disse yderligere i denne artikel:

  • Standardoperationen er at oprette et nyt vindue med en skal i, køre en kommando og derefter skubbe vinduet til baggrunden (kaldet "løsrivelse"). Når du vil se, hvordan din proces klarer sig, kan du trække vinduet til forgrunden igen ("sæt igen") og bruge det igen. Dette er fantastisk til lange processer, som du ikke ved et uheld vil afslutte ved at lukke terminalvinduet.
  • Når du har en screensession, der kører, kan du oprette nye vinduer og køre andre processer i dem. Du kan nemt hoppe mellem vinduer for at overvåge deres fremskridt. Du kan også opdele dit terminalvindue i lodrette eller vandrette områder og vise dine forskellige screenvinduer i et vindue.
  • Du kan oprette forbindelse til en ekstern maskine, starte en screensession og starte en proces. Du kan afbryde forbindelsen til den eksterne vært, oprette forbindelse igen, og din proces kører stadig.
  • Du kan dele en screensession mellem to forskellige SSH-forbindelser, så to personer kan se det samme i realtid.

Installerer skærm

For at installere screenpå ubuntu skal du bruge denne kommando:

sudo apt-get installationsskærm

For at installere  screenpå Manjaro skal du bruge følgende kommando:

sudo pacman -Sy skærm

På Fedora skriver du følgende:

sudo dnf installationsskærm

Kom godt i gang med skærmen

For at starte screenskal du blot skrive det som vist nedenfor og trykke på Enter:

skærm

Du får vist en side med licensoplysninger. Du kan trykke på mellemrumstasten for at læse den anden side eller Enter for at vende tilbage til kommandoprompten.

Du er tilbage ved kommandoprompten, og intet meget ser ud til at være sket. Men du kører nu en shell inde i en multiplex terminalemulator. Hvorfor er dette en god ting? Lad os starte en proces, der vil tage lang tid at gennemføre. Vi downloader kildekoden til den nyeste Linux-kerne og omdirigerer den til en fil, der hedder latest_kernel.zip.

For at gøre det skriver vi følgende:

krølle //cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz> latest_kernel.zip

Vores download begynder, og curloutput viser os fremskridtene.

Vi kan ikke vise dig et billede af den næste bit, fordi det er en tastetrykssekvens. Du skriver Ctrl + A, slipper disse taster og trykker derefter på d for at frigøre skærmen.

Downloadprocessen kører stadig, men det vindue, der viser download, fjernes. Du kommer tilbage til terminalvinduet, hvorfra du startede screen sessionen. En meddelelse fortæller dig, at et screenvindue, der er mærket, 23167.pts-0.howtogeeker blevet løsrevet.

Du har brug for nummeret fra starten af ​​vinduesnavnet for at vedhæfte det igen. Hvis du glemmer det, kan du altid bruge indstillingen -ls(liste), som vist nedenfor, for at få en liste over de løsrevne vinduer:

skærm-ls

Når du er klar, kan du bruge indstillingen -r(vedhæft) og nummeret på sessionen til at vedhæfte den igen som sådan:

skærm -r 23167

Vinduet, der har arbejdet væk i baggrunden, bringes nu tilbage til dit terminalvindue, som om det aldrig havde forladt.

Hvis det er en proces, der vil løbe igennem til dens konklusion, vil den til sidst blive afsluttet. Hvis det er en kontinuerlig proces, vil du til sidst gerne afslutte den. Uanset hvad, når processen slutter, kan du skrive for  exit at afslutte screen. Alternativt kan du trykke på Ctrl + A og derefter K for at dræbe et vindue med magt.

Skriv følgende kommando:

Afslut

Du kommer tilbage til dit forrige terminalvindue, som stadig viser den kommando, du brugte til at fastgøre vinduet igen. Fordi vi lukkede vores eneste løsrevne vindue, får vi en besked, screender afsluttes.

RELATERET: Sådan bruges curl til at downloade filer fra Linux-kommandolinjen

Brug af navngivne skærmsessioner

Du kan bruge indstillingen -S(sessionsnavn) til at navngive din screensession. Hvis du bruger et mindeværdigt navn i stedet for den numeriske identitet på sessionen, er det mere praktisk at oprette forbindelse til en session igen. Vi skriver følgende for at navngive vores session "bigfile":

skærm -S storfil

Når vi screenstarter vores session, ser vi et tomt vindue med en kommandoprompt. Vi downloader en stor fil, så vi kan bruge en langvarig proces som et eksempel.

Vi skriver følgende:

krølle //ipv4.download.thinkbroadband.com/1GB.zip> bigfile.zip

Når download starter, trykker vi på Ctrl + A og derefter på D for at løsne sessionen. Vi skriver følgende for at bruge indstillingen -ls(liste) med for screenat se detaljerne i vores løsrevne session:

skærm-ls

Bag den numeriske identifikator (23266) ser vi navnet på vores session (bigfile). Vi skriver følgende, inklusive sessionens navn, for at vedhæfte det igen:

skærm -r bigfile

Vi forbindes igen til vores downloadvindue og ser, at den lange download stadig er i gang.

Når download er afsluttet, skriver vi for exitat lukke sessionsvinduet.

Brug af skærm med flere Windows

Indtil videre har vi brugt screentil at placere en enkelt proces i baggrunden i et fritliggende vindue. Men  screener i stand til at gøre meget mere end det. Dernæst kører vi et par processer, der giver os mulighed for at overvåge nogle aspekter af vores computer.

Vi skriver følgende for at starte en skærmsession kaldet “monitor”:

skærm -S skærm

Ved kommandoprompten i vores nye vinduesession starter vi dmesg og bruger valgmulighederne -H(som kan læses af mennesker) og -w(vent på nye meddelelser). Dette viser kernebufferbeskederne; nye meddelelser vises, når de opstår.

Vi skriver følgende:

dmesg -H -w

De eksisterende meddelelser vises. Vi vender ikke tilbage til kommandoprompten, fordi vi dmsegventer på nye beskeder og viser dem, når de ankommer.

RELATERET: Sådan bruges dmesg-kommandoen på Linux

Vi ønsker at køre en anden applikation, så vi har brug for et nyt screen vindue. Vi trykker på Ctrl + A og derefter C for at oprette et nyt vindue. Vi skal bruge watchtil at gentagne gange køre vmstat, så vi får en ofte opdateret visning af den virtuelle hukommelsesforbrug på vores computer.

Ved den nye kommandoprompt skriver vi følgende:

se vmstat

Den vmstatoutput vises, og opdateringer hvert andet sekund.

Vores to processer kører nu. For at hoppe mellem  screenvinduerne skal du trykke på Ctrl + A og nummeret på vinduet. Den første, vi oprettede, er vindue nul (0), den næste er vindue 1 osv. For at hoppe til det første vindue (det dmesgene) trykker vi på Ctrl + A og 0.

Hvis vi trykker på Ctrl + A og 1, tager det os tilbage til vmstatvinduet.

Det er ret smukt! Vi kan trykke på Ctrl + A og derefter på D for at løsne os fra denne session; vi kan vedhæfte igen senere. Begge sessioner kører stadig. Igen, for at skifte mellem vinduerne skal vi trykke på Ctrl + A og nummeret (0 eller 1) for det vindue, vi vil skifte til.

Lad os gå til næste trin og se begge skærme i et vindue. Når du gør dette, strækker du dit terminalvindue til en størrelse, der gør dette trin nyttigt. Vores eksempler er begrænset til størrelsen på vores skærmbilleder, så vores vinduer ser lidt trange ud.

For at gøre dette skal vi trykke på Ctrl + A og derefter Shift + S (et stort "S" kræves).

Vinduet opdeles i to "regioner".

Den øverste region vises stadig vmstat, og den nederste region er tom. Markøren er fremhævet i nedenstående skærmbillede. For at flytte det til det nederste område skal vi trykke på Ctrl + A og derefter på Tab.

Markøren bevæger sig til det nederste område, som virkelig bare er et tomt rum. Det er ikke en skal, så vi kan ikke skrive noget i den. For at få et nyttigt display skal vi trykke på Ctrl + A og derefter trykke på "0" for at få vist dmesgvinduet i denne region.

Dette giver os begge live-output i et delt vindue. Hvis vi trykker på Ctrl + A og D for at løsne vinduet og derefter vedhæfte det igen, mister vi visningen i delt rude. Vi kan dog gendanne det med følgende tastaturgenveje:

  • Ctrl + A, S: Opdel vinduet vandret.
  • Ctrl + A , Tab: Flyt til det nederste område.
  • Ctrl + A, 0: Displayvindue nul i det nederste område.

Vi kan tage tingene endnu et skridt videre. Vi deler nu den nederste rude lodret og tilføjer en tredje proces til skærmen. Med markøren i det nedre område trykker vi på Ctrl + A og C for at oprette et nyt vindue med en skal i. Den nederste region viser det nye vindue og giver os en kommandoprompt.

Dernæst kører vi dfkommandoen for at kontrollere filsystembrug:

df

Når vi ser dfkøre, rammer vi Ctrl + A og rørkarakteren (|). Dette opdeler det nedre område lodret. Vi trykker på Ctrl + A og Tab for at flytte til den nye region. Dernæst trykker vi på Ctrl + A og 0 for at få vist dmesgvinduet.

Du kan også flytte fra region til region og tilføje flere lodrette eller vandrette opdelinger. Her er nogle mere nyttige tastekombinationer:

  • Ctrl + A: Hop frem og tilbage mellem de nuværende og tidligere regioner.
  • Ctrl + A, Q: Luk alle regioner undtagen den aktuelle.
  • Ctrl + A, X: Luk den aktuelle region.

Brug af skærm over SSH

Med screenkan du starte en vinduesession, fjerne den, så den stadig kører i baggrunden, logge ud eller igen, og tilslut sessionen igen.

Lad os oprette en SSH-forbindelse til vores computer fra en anden med  ssh kommandoen. Vi er nødt til at angive navnet på den konto, som vi skal oprette forbindelse til, og adressen på den eksterne computer.

For vores eksempel skriver vi følgende:

ssh [email protected]

Når vi har godkendt på fjerncomputeren og logget ind, skriver vi følgende for at starte en screensession kaldet “ssh-geek”:

skærm -S ssh-nørd

Til demonstrationsformål løber vi  top i screenvinduet, men du kan starte enhver langvarig eller endeløs proces.

Vi skriver følgende:

top

Når først  topkører i vinduet, rammer vi Ctrl + A og derefter D for at løsne vinduet.

Vi returneres til det originale, eksterne terminalvindue.

Hvis vi skriver exit, som vist nedenfor, afbryder den SSH-sessionen, og vi er tilbage på vores lokale computer:

Afslut

Vi skriver følgende for at oprette forbindelse igen:

ssh [email protected]

Når vi har oprettet forbindelse og er logget ind igen, kan vi skrive følgende for at genoprette screensessionen:

skærm -r ssh-nørd

Vi er nu forbundet igen med vores stadig kørende forekomst af top.

Dette er fantastisk, hvis du vil starte en proces på en maskine og derefter fortsætte, uanset hvor du slap på en anden.

RELATERET: Sådan oprettes og installeres SSH-nøgler fra Linux Shell

Deling af en skærmsession

Du kan også bruge en screensession til at lade to personer se og interagere med det samme vindue. Lad os sige, at nogen, der kører Fedora på sin computer, vil oprette forbindelse til vores Ubuntu-server.

Han ville skrive følgende:

ssh [email protected]

Når han har oprettet forbindelse, starter han en skærmsession kaldet “ssh-geek” ved hjælp af -S (sessionsnavn). Han bruger også valgmulighederne -d(løsne) og  -m(håndhævet oprettelse) til at oprette en ny screensession, der allerede er løsrevet.

Han skriver følgende:

skærm -d -m -S ssh-nørd

Han skriver følgende ved hjælp af muligheden -X(multiskærmtilstand) for at vedhæfte sessionen:

skærm -X ssh-nørd

På en Manjaro-computer opretter en anden person forbindelse til Ubuntu-computeren med de samme kontooplysninger som vist nedenfor:

ssh [email protected]

Når hun er tilsluttet, skriver hun  screenkommandoen og bruger indstillingen -X (multiskærmtilstand) til at deltage i samme vinduesession som sådan:

skærm -X ssh-nørd

Nu, alt hvad en person skriver, vil den anden se. For eksempel, når en person udsteder datokommandoen, ser de begge den, som den er skrevet, såvel som dens output.

Begge mennesker deler nu en screensession, der kører på en ekstern Ubuntu-computer.

For et stykke software, der først så dagens lys i 1987, indeholder det screen stadig en god produktivitetsmønstring. At blive fortrolig med det vil være tid brugt!

RELATERET: 37 vigtige Linux-kommandoer, du bør kende