Hem > Guider, Linux > Guide: Arbeta effektivare med Screen

Guide: Arbeta effektivare med Screen

ScreenEtt av de verktyg som jag gillar mest när jag använder Linux och andra *nix-baserade system är den enkla men kraftfulla Terminalen, speciellt om man använder en SSH-uppkoppling för att kunna fjärrsyra sina maskiner. Även på en dålig uppkoppling man man utan större problem komma åt sina servrar för att göra allt från snabba fixar till att kolla hur serven arbetar och hur väl den fungerar. Dock en sak som jag har märkt om jag tappar uppkopplingen till maskinen är att mina ändringar som jag gör för tillfället sparas inte. Har ett dokument öppet som jag har glömt att spara så måste jag börja om från början. Dessutom försvinner historiken över de kommandon som man har gjort under den sessionen.

Tur är dock att det finns andra lösningar än att betala en dyr internetförbindelse där man garanteras 100% uptime (om det nu finns det för privatpersoner). Lösningen är Screen och idén är lika simpel som genial. Istället för att låta en session förlita sig på den arbetsdator, flyttar man den till serven istället. Förenklat kan man säga att Screen sedan simulerar sessioner på serven vilket gör att det inte längre spelar någon roll om man tappar uppkopplingen eller ej. Så länge som Screen är igång kan man alltid börja där man sist slutade. Screen är förstås gratis att använda och det medför andra fördelar. Eftersom att Screen flyttar sessionerna från arbetsdatorn till serven kan man nu börja jobba mer flexibelt. Påbörjar man arbetet på en dator kan man utan problem avsluta det en annan dator som har tillgång till Internet. Med tanke på våra IT-prylar blir smartare är det till och med möjligt att slutföra jobbet på sin mobiltelefon eller en annan smart enhet med Internet. Screen gör det även möjligt att arbeta med flera sessioner samtidigt. När du i ett fönster väntar på en uppdatering kan man i ett annat fönster arbeta med något annat pallalert. En annan tillämpning är att låta screen köra program utan demon i bakgrunden (exempel på tillämpning).

I denna guide går jag igenom grundläggande om Screen och hur det kan användas. Nu kommer jag att basera denna guide på Ubuntu, men exakt samma eller likande kan tillämpas på nästan vilket *nix-system som helst.

1. Installera Screen

Att installera Screen, liksom de flesta mjukvaror i Ubuntu, är mycket enkelt. Använd följande kommando:

sudo apt-get install screen

Motsvarande kommando finns i de vanligaste Linux-distributionerna.

Kontrollera om Screen fungerar med följande kommando (och läs gärna informationen som kommer upp):

screen -h

2. Skapa första Screen-sessionen

Vi börjar med att starta Screen med följande kommando:

screen

Det första du möter är licenstexten för mjukvaran. Läs igenom den (precis som all annan programlicenser ;) ) och tryck sedan Mellanslag för att komma vidare. Nu bör du mötas av ett tomt terminalfönster där den är redo att skriva första kommandot. I första anblick ser det ut som att vara det är exakt samma fönster som man hade tidigare. Trycker man dock pil nedåt på tangentbordet märker man att man är texten ”Wuff —- Wuff!!” syns längst ner i vänstra hörnet. Testa nu med att köra en eller ett par enklare kommandon som skriver ut något i fönstret. Ett par kommandon som man kan köra:

  • echo Hello World!
  • date
  • ls
  • uptime
  • top

Prova nu att gå ur Screen genom att först hålla inne Ctrl + A och sedan släppa upp tangenterna. Nu har vi satt Screen i ett kommando-läge vilket gör att vi nu kan göra saker som är relaterat till Screen. I detta fall vill vi avsluta vår session, vilket man gör genom att trycka på tangenten D (som står för Detach). Om du gjorde rätt ska du vara tillbaka där vi tidigare startade när vi körde kommandot Sscreen. Detta kan man kontrollera genom att trycka pil nedåt på tangentbordet (inget ”Wuff —- Wuff!!” bör dyka upp). Om du använder följande kommando:

ps -aux | grep screen

kan man nu se att Screen ligger som en bakgrundsprocess. Detta gör den för att man ska kunna återuppta arbetet samtidigt som man ges möjlighet att låta programmen köras även om man själv är inne i Screen.

3. Öppna tidigare Screen-session

För att komma åt vår tidigare session använder vi kommandot:

screen -r [id]

Id står för det identifikationsnummer som är på den Screen-session som vi skapade. För att komma åt den gör man det enklast genom att köra följande:

screen -ls

Nu bör du fått en lista något i stil med följande:

There are screens on:
 7451.pts-0.wallmander(2011-03-06 22.35.46)   (Detached)
1 Sockets in ...

Om man ser den markerade raden ovan så har vi en del intressant information om den. Dels ID-numret (7451), dels namnet (pts-0.wallmander), dels datum och tid när den senaste användes (2011-03-06 22.35.46) slutligen vilken status den är i just nu (Detached). För att öppna upp denna Screen-session igen (och ändra status från Detached till Attached) kör vi kommandot som jag föreslog ovan. I mitt fall hade jag ID-nummer 7451 och då bär kommandot se ut som följande:

screen -r 7451

När du tryckt på Enter bör du ha kommit tillbaka till den session som du lämnade den sist. Det resultat som du fick när du körde den eller de kommando som du valde i steg 2 finns fortfarande kvar. Om du ser på historiken på tidigare kommandon märker du att dessa finns också där.

När man känner att man har lekt klart med en Session och vill avsluta den skriver man helt enkelt följande kommando:

exit

Nu har du det mest grundläggande man behöver kunna om Screen, dock att enbart jobba mot ett fönster kan ibland vara ineffektivt tom man vill köra flera operationer samtidigt. Nedan tipsar jag om hur man kan jobba mer effektivt framför sin terminal samt att man framför allt upptäcker andra möjligheter som man har med Screen.

4. Arbeta mer effektivt med Screen-fönster

En funktion som Screen har är att man kan arbeta med flera fönster samtidigt. Man kan säga att det är tänkt att fungera lite som tabbar i en webbläsare. I en tabb kanske du sköter dina bankärenden medan i en annan har du uppe webbmailen för att läsa ett viktigt e-postmeddelande. Dessa tabbar kallar man fönster i Screen som tillhör en viss session. För att skapa ett fönster i en håller man inne Ctrl + A, släpp upp tangenterna för att sedan trycka på C (som står för Create). Nu har du skapat ett nytt fönster i den session som du arbetar i just nu. Skriv ett valfritt kommando i det nya fönstret.

Vill man sedan gå tillbaka till det tidigare fönstret använder man Ctrl + A, för att sedan trycka på P (Previous). Då kommer du till det fönster som man var på innan. För att gå tillbaka kan man efter Ctrl + A istället på trycka på N (Next). Tanken med previous och next är att man bläddrar mellan de fönster som man har i aktuell session i Screen. Om man exempelvis har fyra fönster och är på fönster nummer 2 och vill komma till nummer 4 kan man antingen köra next två gånger, eller previous två gånger. Det går runt som i en cirkel, vilket innebär att man kan om man vill enbart använda next eller previous men ändå (för eller senare) komma till det fönster som man vill komma åt.

Har man många fönster kan det vara jobbigt att bläddra mellan dessa, än mindre att hålla reda på. Då kan man lista upp dem och välja med piltangenterna det fönster man vill komma åt. Det man gör är att man går in i kommando-läge (Ctrl + A) för att sedan mata in ”. Då väljer man bara det fönster man vill få fram och trycker sedan på Enter. Nu är du inne i fönstret och kan nu arbeta på som vanligt.

När man känner sig klar med ett fönster och vill avsluta det skriver man följande kommando:

exit

5. Byt namn på fönster och få bättre ordning

Namnet som ett fönster får är som standard satt till ”bash”, vilket kanske inte så passande då alla fönster kommer att ha samma nämn när du listar upp dem med ”. Lyckligtvis kan man döpa om dessa fönster. Det gör är att man först väljer det fönster som ska döpas om med   next/previous eller ur listan med ”. Sedan går man in i kommando-läge och håller inne Shift+ A. Nu kan man se längst ned i vänstra hörnet texten ”Set window’s title to: bash”. Ta bort texten ”bash” genom att trycka Backspace och sedan döpa den till ett namn som passar. Tryck sedan Enter. Gå in i kommandoläge och ange ” för att visa listan. Nu ska fönstret fått sitt nya namn.

6.  Dela upp fönster i regioner och få bättre överskikt

Förr eller senare kommer man att stötta på problemet att man vill se två fönster på samma gång. Det kan vara att man vill se top för att hålla koll på hur resurserna används samtidigt som man testkör ett gäng scripts, eller att man har igång flera IRC-kanaler samtidigt för att chatta med fler personer på en och samma gång. Det är då regioner passar som handen i handsken.

Om man går in i kommandoläge (Ctrl + A) och trycker sedan på S eller | delas fönstret i två olika regioner. Skillnaden mellan S och | är vilken layout du vill ha på dina regioner. Med S delas fönstret upp i mitten horisontellt medan | gör det samma sak fast lodrätt. Vilket av dessa man väljer är tycke och smak vad för upplägg man vill ha på sin arbetsyta, annars spelar det absolut ingen roll vilket man väljer.

När man skapar två regioner brukar alltid det fönster som man sist var inne i låta uppta en region, medan den andra lämnas helt tom. För att sätta igång ett fönster i den tomma regionen börjar man först att markera den. Detta gör man genom att hålla inne Ctrl + A för att sedan trycka på Tabb. Nu ska den tomma regionen vara markerad och nu kan man efter att man ha gått in i kommandoläge välja att antingen öppna ett befintligt fönster med ” eller skapa ett nytt fönster genom att trycka på C. Efter man har gjort det är det bara att jobba på som vanligt. Prova att köra Top i ett av fönstren och för att gå tillbaka och använda det andra fönstret genom att gå i kommandoläge för att sedan trycka på Tabb.

Känner man att man inte är behov av regioner längre håller man först inne Ctrl + A och släpper upp, därefter håller man inne Shift + x. Observera att fönstret som var aktuell i regionen som stängdes ned kommer fortfarande att vara igång. Vill man stänga ett fönster måste man skriva följande kommando i fönstret:

exit

7. Mer om screen

Detta var en introduktion till Screen. Om man lära sig mer om Screen har jag samlat några tips på hur man hittar mer information om Screen:

  • Hjälpsidan – I Screen, håll inne Ctrl + A och ange sedan ?. Här finns det lista på de kommandon som man kan göra i Screen. Det enda man bör tänka på är att ^ betyder Ctrl
  • man screen – Detaljerad manual om Screen.
  • Pixelbeat - Webbversion av hjälpsidan med Ctrl istället för ^.
  • Aperiodic - Lite andra kommandon som ovanstånde källor inte behandlar.

fortfarande

Categories: Guider, Linux Taggar: , , , ,
  1. Inga kommentarer än.
  1. Inga trackbacks än.