Screen este o scula foarte utila atunci cand ai multe de facut si putine terminale la dispozitie. Practic screen este un multiplexor de terminal, cam cum e gnome terminal sau yakuake in varianta lor cu taburi, doar ca totul e facut direct in consola.
Pe langa multiplexarea mai sus amintita screen ofera si un feature foarte util. programul este imun la semnalele de tipul sighup. Mai pe romaneste screen ramane pornit pe masina chiar daca ai inchis conexiunea ssh/fizica cu terminalul in care lucra. Utilitatea chestiei asteia se dovedeste atunci cand ai de facut un task peste o legatura la internet foarte proasta. De regula procesele pornite din un shell au ca parinte respectivul shell. In clipa in care legatura peste ssh moare, moare si shellul si cu el procesele copil. Foarte urat. Porinite din screen procesele raman active chiar si dupa terminarea legaturii remote. Deja ne vin in minte utilizari foarte productive: client de torenti in screen, download masiv cu wget si prietenii, stat pe irc cu irssi (sau alt irc client in mod text) compilari fara sfarsit si multe altele.
Utilizarea lui screen necesita putina acomodare. Pornirea lui se face direct ruland screen.
Comenzile se activeaza folosind shortcuturi de tipul Ctrl+A urmate de o litera(case sensitive) /cifra/simbol. Ctrl+A este cunoscut ca escape sequence (cine a lucrat cu minicom stie).
Combinatia Ctrl+A urmata de ? afiseaza pe ecran toate comenzile suportate de screen.
Cateva combinatii utile:
Ctrl+A c –> creeaza un terminal nou
Ctrl+A “ –> afiseaza o lista cu toate terminalele
Ctrl+A <cifra> trece la terminalul cu id-ul respectiv
Ctrl+A d –> detasare de screen (practic un fel de exit)
Ctrl+A n –> next
Ctrl+A p –> previous
Ctrl+A ESC –> copy mode
Personal am renuntat la Ctrl+A pentru caracterul `. Avand in vedere ca folosesc rar caracterul (si doar cand e vorba de scripturi bash.
Reatasarea la screen se poate face ruland screen –r –d. Putem avea mai multe procese screen ce ruleaza si putem da ca parametru sesiunea la care vrem sa ne atasam.
Screen se poate customiza folosind fisierul .screenrc
Al meu arata asa:
escape ``
hardstatus alwayslastline "%{= KW}%-w%{= wk}%50>%n %t%{-}%+w%<"
hardstatus string '%{gk}[ %{G}%H %{g}][%= %{wk}%?%-Lw%?%{=b kR}(%{W}%n*%f %t%?(%u)%?%{=b kR})%{= kw}%?%+Lw%?%?%= %{g}][%{Y}%l%{g}]%{=b C}[ %m/%d %c ]%{W}'
startup_message off
vbell off
msgminwait 0
msgwait 10
Si rezultatul este asta
Se observa in partea de jos 5 terminale deschise, fiecare fiind denumit dupa procesul executat (ifstat, htop, links).
Bun articolul. Cosu, dacă vrei, te invit să scrii (un articol similar) pe încearcă.softwareliber.ro
merci de invitatie. cum procedez? exista undeva niste guidelines ?
Ai primit mail-ul meu? Dacă nu, răspunsul e simplu: ai tot ce trebuie pe http://incearca.softwareliber.ro . Te așteptăm!