GNU Screen

Linux.fista
Versio hetkellä 16. marraskuuta 2008 kello 00.49 – tehnyt Pb (keskustelu | muokkaukset) (→‎Screenin käyttö: ruudun vieritys xtermissä)
Siirry navigaatioon Siirry hakuun

GNU Screen on apuohjelma, jolla luodaan virtuaalisia terminaaleja toisten ohjelmien käyttöön. Virtuaaliterminaalissa toimivat ohjelmat eivät tarvitse fyysistä terminaali-ikkunaa toimiakseen, vaan ne voivat olla myös taustalla piilossa. Ohjelma itse ei edes tiedä, onko sillä yhteys fyysiseen terminaaliin vai ei.

Screeniä voidaan käyttää monenlaiseen virtuaalisten, ei-fyysisten terminaalien käsittelyyn. Yhdestä fyysisestä terminaali-ikkunasta voidaan hallita useita virtuaalisia terminaaleja ja niissä toimivia ohjelmia. Toisaalta myös yksi virtuaalinen terminaali voidaan ottaa samalla kertaa näkyviin useisiin fyysisiin terminaaleihin, ja näin esimerkiksi useat henkilöt voivat omilta koneiltaan käyttää tai katsoa samaa ohjelmaa yhtä aikaa. Yleinen virtuaaliterminaalin käyttökohde on, että etäyhteyden takana toimiva ohjelma jätetään päälle, vaikka yhteys katkaistaan. Aiemmin jätetty virtuaaliterminaali voidaan myöhemmin ottaa näkyviin ja jatkaa ohjelman käyttämistä.

Irssin ja SSH:n kanssa Screen muodostaa toimivan ja hyväksi havaitun IRC-läsnäolojärjestelyn: voit jättää IRC-yhteytesi auki Irssiin ja irkkailla tarpeen mukaan SSH:n avulla mistä vain Internet- ja ssh-yhteyden ääreen pääset. Yhdistä tähän vielä bitlbee, niin saat myös pikaviestiprotokollat, kuten MSN:n mukaan.

Screenin käyttö

Screenin käyttö aloitetaan komennolla screen tai screen ohjelman_nimi. Ensimmäinen komento avaa virtuaalisen terminaalin ja käynnistää siihen käyttäjän oletuskomentotulkin; jälkimmäinen komento käynnistää terminaaliin ohjelman ohjelman_nimi. Mikäli haluat lopettaa Screenin, sulje vain Screenissä toimiva ohjelman ja Screenikin sulkeutuu samalla. Halutessasi voit jättää ohjelman taustalle käyntiin ja poistua itse tekemään jotain muuta. Se onnistuu painamalla Ctrl-a ja sen jälkeen d-kirjainta. Takaisin Screeniin ja sen ylläpitämiin virtuaalisiin terminaaleihin pääset komennolla screen -r tai screen -x.

Näppärä tapa screenin käyttöön on myös komento screen -DRR, joka sulkee ja kirjaa ulos muualla käynnissä olevat screen-sessiot ja liittää screenin käytössä olevaan päätteeseen. Jos screeniä ei ole, sellainen luodaan.

Screenissä voi luoda useita virtuaaliterminaaleja (ikkunoita). Näppäimillä Ctrl-a ja c avataan uusi terminaali ja käynnistetään käyttäjän oletuskomentotulkki. Terminaaleja voi avata useita, ja niiden välillä vaihdetaan painamalla Ctrl-a ja tämän jälkeen ikkunan numero, esimerkiksi Ctrl-a ja 2. Jokainen virtuaalinen terminaali toimii ihan normaalisti, vaikka se ei näkyisikään ruudulla. Apua Screenistä saat painamalla Ctrl-a ja sen jälkeen kysymysmerkkiä. Komento man screen kertoo lisää Screenin käytöstä ja komennoista.

Näppäinyhdistelmä Ctrl-a on käytössä useissa muissakin ohjelmissa. Esimerkiksi Emacs-tyylisessä komentorivimuokkauksessa se tarkoittaa ’siirrä kursori rivin alkuun’. Koska Ctrl-a on varattu Screenille, ei kyseinen näppäinyhdistelmä mene lainkaan Screenissä toimivalle ohjelmalle. Asia on korjattu siten, että Screeniin on varattu näppäinyhdistelmä Ctrl-a ja a, joka lähetetään ohjelmalle Ctrl-a:na. Screenin komentonäppäimen voi kuitenkin myös halutessaan vaihtaa joksikin muuksi lisäämällä ~/.screenrc-tiedostoon esimerkiksi rivin escape ^Zz.

Esimerkki ~/.screenrc-asetustiedostosta:

startup_message off
hardstatus alwayslastline "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
altscreen on
msgwait 2

Ruudun vieritys ei välttämättä toimi kunnolla käytettäessä Screeniä terminaaliemulaattoreiden (kuten Xterm) kanssa. Tämän voi korjata lisäämällä screenrc-tiedostoon rivin

termcapinfo xterm* ti@:te@

Aiheesta muualla