10 eksempler på skærmkommando til styring af Linux-terminaler


Screen er et softwareprogram på fuld skærm, der kan bruges til at multiplexere en fysisk konsol mellem flere processer (typisk interaktive skaller). Det giver en bruger at åbne flere separate terminalforekomster inde i en enkelt terminalvinduemanager.

Skærmapplikationen er meget nyttig, hvis du har at gøre med flere programmer fra en kommandolinjegrænseflade og til at adskille programmer fra terminalskallen. Det giver dig også mulighed for at dele dine sessioner med andre brugere og løsne/vedhæfte terminalsessioner.

På min Ubuntu 10.04 Server Edition er Skærm installeret som standard. Men i Linux Mint har ikke skærm installeret som standard, jeg skal installere den først ved hjælp af apt-get-kommandoen, før jeg bruger den. Følg din installationsprocedure for distribution for at installere skærmen.

# apt-get install screen (On Debian based Systems)
# yum install screen (On RedHat based Systems)

Faktisk er Screen en meget god kommando i Linux, som er skjult inde i hundredvis af Linux-kommandoer. Lad os begynde at se skærmens funktion.

Startskærm for første gang

Bare skriv skærm ved kommandoprompten. Derefter vises skærmen med interface nøjagtigt som kommandoprompten.

[email  ~ $ screen

Vis skærmparameter

Når du kommer ind på skærmen, kan du udføre alt dit arbejde, som du er i det normale CLI-miljø. Men da skærmen er en applikation, har den kommando eller parametre.

Skriv "Ctrl-A" og "?" uden tilbud. Derefter vil du se alle kommandoer eller parametre på skærmen.

                                                             Screen key bindings, page 1 of 1.

                                                             Command key:  ^A   Literal ^A:  a

  break       ^B b         flow        ^F f         lockscreen  ^X x         pow_break   B            screen      ^C c         width       W
  clear       C            focus       ^I           log         H            pow_detach  D            select      '            windows     ^W w
  colon       :            hardcopy    h            login       L            prev        ^H ^P p ^?   silence     _            wrap        ^R r
  copy        ^[ [         help        ?            meta        a            quit        \            split       S            writebuf    >
  detach      ^D d         history     { }          monitor     M            readbuf     <            suspend     ^Z z         xoff        ^S s
  digraph     ^V           info        i            next        ^@ ^N sp n   redisplay   ^L l         time        ^T t         xon         ^Q q
  displays    *            kill        K k          number      N            remove      X            title       A
  dumptermcap .            lastmsg     ^M m         only        Q            removebuf   =            vbell       ^G
  fit         F            license     ,            other       ^A           reset       Z            version     v

^]  paste .
"   windowlist -b
-   select -
0   select 0
1   select 1
2   select 2
3   select 3
4   select 4
5   select 5
6   select 6
7   select 7
8   select 8
9   select 9
I   login on
O   login off
]   paste .

For at komme ud af hjælpeskærmen kan du trykke på "mellemrumstast" -knappen eller "Enter". (Bemærk, at alle genveje, der bruger "Ctrl-A", udføres uden anførselstegn).

Tag skærmen af

En af fordelene ved skærm, det er, kan du fjerne det. Derefter kan du gendanne det uden at miste noget, du har gjort på skærmen. Her er eksempelscenariet:

Du er midt i SSH-på din server. Lad os sige, at du downloader 400 MB patch til dit system ved hjælp af wget-kommandoen.

Downloadprocessen anslås at tage 2 timer. Hvis du afbryder SSH-sessionen eller pludselig mistede forbindelsen ved et uheld, stopper downloadprocessen. Du skal starte fra starten igen. For at undgå det kan vi bruge skærmen og fjerne den.

Se på denne kommando. Først skal du åbne skærmen.

[email  ~ $ screen

Derefter kan du udføre downloadprocessen. For eksempler på min Linux Mint opgraderer jeg min dpkg-pakke ved hjælp af apt-get-kommandoen.

[email  ~ $ sudo apt-get 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

Under download kan du trykke på "Ctrl-A" og "d". Du kan ikke se noget, når du trykker på disse knapper. Outputtet vil være sådan:

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

Sæt skærmen på igen

Når du har taget skærmen af, skal du sige, at du afbryder din SSH-session og går hjem. I dit hjem begynder du at SSH igen til din server, og du vil se fremskridtene i din downloadproces. For at gøre det skal du gendanne skærmen. Du kan køre denne kommando:

[email  ~ $ screen -r

Og du vil se, at den proces, du forlod, stadig kører.

Når du har mere end 1 skærm session, skal du indtaste skærm session ID. Brug skærm-l til at se, hvor mange skærmbilleder der er tilgængelige.

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

Hvis du vil gendanne skærmbillede 7849.pts-0.mint, skal du skrive denne kommando.

[email  ~ $ screen -r 7849

Brug af flere skærme

Er det muligt, når du har brug for mere end 1 skærm for at udføre dit job? Ja det er. Du kan køre flere skærmvinduer på samme tid. Der er 2 (to) måder at gøre det på.

Først kan du fjerne den første skærm og køre en anden skærm på den virkelige terminal. For det andet gør du indlejret skærm.

Skift mellem skærme

Når du har indlejret skærm, kan du skifte mellem skærm ved hjælp af kommandoen "Ctrl-A" og "n". Det flyttes til næste skærmbillede. Når du har brug for at gå til den forrige skærm, skal du bare trykke på "Ctrl-A" og "p".

For at oprette et nyt skærmvindue skal du bare trykke på "Ctrl-A" og "c".

Logning hvad du gør

Nogle gange er det vigtigt at registrere, hvad du har gjort, mens du er i konsollen. Lad os sige, at du er en Linux-administrator, der administrerer mange Linux-servere.

Med denne skærmlogning behøver du ikke nedskrive hver eneste kommando, du har udført. For at aktivere skærmlogfunktion skal du blot trykke på “Ctrl-A” og “H”. (Vær forsigtig, vi bruger store bogstaver 'H'. Brug ikke store bogstaver 'h' opretter kun et skærmbillede af skærmen i en anden fil ved navn hardcopy).

Nederst til venstre på skærmen vil der være en meddelelse, der fortæller dig, at du vil: Oprette logfil "screenlog.0". Du finder screenlog.0-filen i dit hjemmekatalog.

Denne funktion tilføjer alt, hvad du laver, mens du er i skærmvinduet. For at lukke skærmen for at logge kørende aktivitet skal du trykke på “Ctrl-A” og “H” igen.

En anden måde at aktivere logfunktion på, kan du tilføje parameteren “-L”, når skærmbilledet kører første gang. Kommandoen vil være sådan.

[email  ~ $ screen -L

Låse skærm

Skærm har også genvej til at låse skærmen. Du kan trykke på “Ctrl-A” og “x” genveje for at låse skærmen. Dette er praktisk, hvis du hurtigt vil låse din skærm. Her er et eksempel på en låseskærm, når du har trykket på genvejen.

Screen used by Pungki Arianto  on mint.
Password:

Du kan bruge din Linux-adgangskode til at låse den op.

Tilføj adgangskode til låseskærmen

Af sikkerhedsmæssige årsager kan det være en god idé at placere adgangskoden til din skærmsession. En adgangskode bliver bedt om, når du vil vedhæfte skærmen igen. Denne adgangskode er forskellig fra låseskærmmekanismen ovenfor.

For at beskytte din skærmadgangskode, kan du redigere “$ HOME/.screenrc” -filen. Hvis filen ikke findes, kan du oprette den manuelt. Syntaksen vil være sådan.

password crypt_password

For at oprette “crypt_password” ovenfor kan du bruge kommandoen “mkpasswd” på Linux. Her er kommandoen med adgangskoden "pungki123".

[email  ~ $ mkpasswd pungki123
l2BIBzvIeQNOs

mkpasswd genererer en hash-adgangskode som vist ovenfor. Når du har fået hash-adgangskoden, kan du kopiere den til din ".screenrc" -fil og gemme den. Så ".screenrc" -filen vil være sådan.

password l2BIBzvIeQNOs

Næste gang du kører skærmen og afmonterer den, bliver adgangskoden spurgt, når du prøver at vedhæfte den igen, som vist nedenfor:

[email  ~ $ screen -r 5741
Screen password:

Indtast din adgangskode, som er "pungki123", og skærmen vedhæftes igen.

Når du har implementeret denne skærmadgangskode, og du har trykket på "Ctrl-A" og "x", vil output være sådan.

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

En adgangskode bliver bedt om dig to gange. Første adgangskode er din Linux-adgangskode, og den anden adgangskode er den adgangskode, du har lagt i din .screenrc-fil.

Forlad skærm

Der er 2 (to) måder at forlade skærmen på. For det første bruger vi “Ctrl-A” og “d” til at løsne skærmen. For det andet kan vi bruge kommandoen exit til at afslutte skærmen. Du kan også bruge “Ctrl-A” og “K” til at dræbe skærmen.

Det er noget af skærmbrugen på daglig basis. Der er stadig mange funktioner inde i skærmkommandoen. Du kan muligvis se skærmbilledet for flere detaljer.