Mine fedeste Linux/BSD apps #1 -> screen

Jeg begynder nu en ny serie om min favorit-applikationer til Linux eller BSD, så fra tid til anden skal der være tid til teknik-nørderi i denne blog - og nu er det dag 1 :-)

Det første favorit-program jeg tager fat i er "screen", som er valgt fordi kun nogle kender dette fantastiske program - men det er et program som er rigtig godt at kende.

Hvis man skal køre et tekst-mode program, f.eks. en simulering i en batch-kø, et mailprogram såsom "pine", eller et IRC-program såsom "irssi", så er et klassisk problem at få fat i programmet udefra.
Det er velkendt af de fleste Linux/BSD-brugere at man kan arbejde på selve maskinen, eller logge ind over netværket med SSH og arbejde udefra. Screen giver brugeren mulighed for at indkapsle et vilkårligt tekst-baseret program, så man netop kan få fat i det igen.

På arbejdet kan man en gang for alle starte f.eks. pine op med

$ screen -S mail pine

Argumentet til -S er et logisk navn man giver den enkelte session. Efter dette angives selve programmet.

Hjemmefra logger man ind på maskinen via SSH og får tilgang igen til samme pine-session.
$ screen -r -d mail
Nu har man igen her fat i sessionen og indholdet er præcis som det ser ud der hvor det blev startet. Gider man ikke se på "pine"-screen sessionen mere kan man lukke vinduet enten med "ctrl-a ctrl-d" eller blot lukke terminal-vinduet - da screen-sessionen kører videre. Det er smart!!!

En enkelt bemærkning er at screen-sessioner er bundet til den enkelte maskine, dvs. i en server/workstation-farm skal man selv huske hvor man har startet screen-sessioner. Kan man ikke huske hvad de enkelte screen-sessioner hedder, så får man oversigten af disse med
$ screen -ls

Screen virker til tekst-programmer. Hvis det er hele den grafiske session man vil kunne koble sig på udefra så er der muligheder i VNC, FreeNX, Exceed OnDemand, Sun Secure Desktop og andre - men alle disse handler om hele den grafiske brugergrænseflade. Er der nogen mulighed for at få noget tilsvarende til screen bare foe en enkelt grafisk applikation, såsom evolution eller firefox?

/pto som er hammer ligeglad med at der teoretisk set kan være op til 235 softwarepatenter i screen :-)

Kommentarer (9)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
#2 Thomas Lønskov Luther

Ja, screen er ubetinget et rigtig fedt værktøj at kende og mestre, dog syntes jeg lige du glemte det absolut fedeste med screen (næst efter detach); nemlig generering af nye session inde i den pågældende screen...

Fx. i din mail screen, hvor du pludselig lige skal ud over lave noget shell arbejde. For dem der ikke kender det: ctrl-a , og vupti, ny session genereret. Skifte mellem sessions er så nemt: C-a n for næste screen osv...

Nå ja, eneste anke er at default-command er ctrl-a, det kan godt blive lidt trælst i længden, men .screenrc kan lige udvides med "escape ^t^t" og så er det ctrl-t der er kommando-vejen.

  • 0
  • 0
#4 Thomas Lønskov Luther

Doh... sådan går det når der bliver typet hurtigt ;-)

Ja man kan meget med screen, har selv sat den op med en 'tab-bar' så jeg kan se hvad der er af screens... brugte screen en hel del da jeg læste, dejligt at have sin IRC, emacs+gnus, shell og andre sjove ting direkte kørende når man loggede på :-)

  • 0
  • 0
#5 Ulrik Gammelby

Netop C-a er skyld i, jeg aldrig nogensinde er blevet vild med screen på trods af, fordelene er indlysende: Efter ca. 30 sekunder med stor-konflikt med bash, emacs og diverse readline applikationer ryster jeg som regel på hovedet og dropper det. Jeg kunne jo overveje at ændre dette default shortcut, som du nævner, og se om ikke det hjalp lidt...

  • 0
  • 0
#6 Anders Porsbo

Ingen tvivl om at screen er et rigtig anvendeligt program. Næsten for anvendeligt, start dagen med at attache kalender (wyrd), mail (mutt), irc (irssi).

Ja ok man kan godt lave splits, men der er stadig to problemer. 1) man kan ikke lave vertikale splits 2) naar man reattacher en screen med mange splits, er split layoutet væk.

Mit eget hack var at starte en screen med en screen i, som saa fik en masse splits, problemet er bare at man saa skal sende a for at sende ctrl+a til den inderste screen.

Alternativt har jeg brugt emacs til at lave et vertical split og 2 horizontale i hvert af de vertikale splits. I hvert split koerer saa en shell hvor jeg kan starte en editor (vim :).

Jeg hørte endda rygter om at den nyeste screen skulle have vertikalt split, og hentede og compilede den, men umidddelbart virkede det ikke (for ca 2 uger siden)

Glæder mig til at se hvilke andre applikationer du har oppe i ærmet Mr. Toft.

Forresten XMOVE er næsten en X-version af screen.

  • 0
  • 0
#7 Flemming Kjær Jensen

Jeg bruger i disse tid screen hovedsageligt når der skal kompileres kildekode i længere tid end ca. 10 minutter. Det er altid rart at kunne forbinde sig igen på den anden side af Atlanten uden at skulle genstarte batch jobs.

toor@gemstone% wc -c ~/.screenrc ~/.zshrc 4247 /Users/toor/.screenrc 5057 /Users/toor/.zshrc 9304 total

Z shell vil være min oplagte Unix applikation nummer et med screen som en klar nummer to.

  • 0
  • 0
#8 Søren Lund

Livet før screen er svært at forestille sig ;-)

Efter login på min server, så fyrer jeg en "screen -R" af, og så er jeg tilbage i den session jeg forlod (med ctrl-a d).

Desuden har jeg "koblet" mutt og emacs sammen, idet jeg bruger emacs til at skrive/svare på beskeder.

Vha. emacsclient kan jeg "fjernstarte" emacs fra mutt og med kommandoen

screen -r -X select 1

kan jeg få screen til at skifte over til emacs (kræver at emacs altid er nr. 1, men det er den jo).

I emacs er der tilsvarende defineret en server-done-hook, der stiller tilbage til mutt efter redigering.

  • 0
  • 0
Log ind eller Opret konto for at kommentere