Poznámky ke GNU Screen
GNU Screen pro mě byl ze začátku něco jako je vim pro většinu lidí (vim je takový ten divný textový editor, se kterým si nikdo neví rady… až na mě!). O co vlastně ve screenu jde? Máte jeden fyzický, on je to ale vlastně virtuální… Jednoduše řečeno, máte otevřeno jedno okýnko s terminálem, spustíte v něm screen a zobrazí se vám uvítací obrazovka hlásající: „Jo, tak tohle je Screen.“
Vytváření nových terminálů
Nyní se dají dělat všelijaké blbosti, ale nejdůležitější je, že se v tom jednom okýnku dá pomocí ^a c (^a znamená stisk klávesy Ctrl společně s A, poté následuje C) otevřít více terminálů, resp. spustit více shellů, vedle sebe a jednoduše mezi nimi přepínat. (Shell se pak dá ukončit klasicky pomocí exit anebo ^d.)
Přepínání
Jak se přepíná? První možností je použít ^a ", což zobrazí hezký interaktivní seznam se všemi otevřenými shelly. Další, pro rychlé přepínání, je ^a ^a, což pendluje mezi předchozím otevřeným a současným shellem. Pak je tu taky přepínání pomocí čísel – tj. ^a 0-9 –, při kterém se může hodit neinteraktivní seznam shellů vyvolaný pomocí ^a w. (Osobně jsem poslední variantu s čísly zatím moc nevyužil.)
Pojmenování terminálu
screen mi vyřešil problém, kdy jsem měl při vývoji otevřen prohlížeč, IDE a kupu okýnek se shelly, v každém terminálu něco jiného a nedalo se v tom vyznat. Ve screenu se dají jednotlivé shelly pojmenovat pomocí ^a A (druhé A musí být velké, takže něco jako kombinace kláves Ctrl+A Shift+A). A tedy místo toho, abych měl šestkrát pod sebou bash, vidím krásně, co je adresář s NetBeansím projektem, co public_html, kde mám MySQL shell apod. A když chci něco jednorázově udělat (bůhvíkde), prostě si otevřu nový shell (^a c), přejdu do adresáře, co potřebuji, udělám tu neplechu, pak ^d a jsem zpátky, kde jsem byl před tím, než jsem si „odskočil“.
Detach
Ve screenu se všechno točí kolem attachování a detachování. Attach je připojení si sezenáí screenu k momentálnímu terminálu, detach naopak odpojení. Jednoduše jde detach udělat prostým zavřením okna (sezení screenu běží i nadále), jinak je na to kombinace ^a DD.
Pojmenování sezení
screen -ls dokáže vypsat zrovna běžící sezení screenu. Normálně je sezení pojmenované po TTY a hostu, na kterém bylo otevřeno. Nic moc užitečného. Lepší je si sezení pojmenvat podle sebe – to se dělá pomocí spuštění screenu s parametrem -S:
$ screen -S nazev_sezení
Když se screen spustí bez názvu sezení, i tak jde název zadat: ^a :sessionname nazev_sezení.
Připojení se k existujícímu pojmenovanému sezení (a pokud neexistuje vytvoření nového):
$ screen -dR nazev_sezení
vydáno 9. 7. 2009, 23:12:00