What is GNU Screen?
What is GNU Screen? Great!
Erm, a slightly more useful answer: it allows you to run multiple console applications, or commands, in one terminal. Kind of like a tabbed terminal emulator. In fact, that's exactly what it is (just not done with the regular GUI toolkits)
Why is it so great? Simple, you can run a program in a screen session (Run screen
and it runs your default shell, run screen myapp
and it runs myapp in the session), hit ctrl+a (the screen control sequence) and then press d (ctrl+a,d) to detach.
The program keeps running in the background, but, unlike doing mycmd &
, you can run screen -r
to reattach the session, and everything is as you left it. You can send input to the command, if it's a curses UI, everything still works just like if it were a "real" terminal.
It's very popular with console IRC clients - you can run (say) screen irssi
and reattach the session from anywhere you can SSH from.
A few useful commands:
A few other useful things I've stumbled across:
-U
flag when you launch screen so it supports Unicode (for example, screen -xU
)-x
flag allows you to reattach the same session multiple times. (-r
disconnects existing connections)[ hostname ][ 0-$ bash (1*$ irssi) ][16/09 9:32]
(Running on hostname, it has two windows. This is set by the hardstatus lines in my .screenrc (at the end of the answer)startup_message off
vbell off
hardstatus alwayslastline
hardstatus string '%{gk}[ %{G}%H %{g}][%= %{wk}%?%-Lw%?%{=b kR}(%{W}%n*%f %t%?(%u)%?%{=b kR})%{= kw}%?%+Lw%?%?%= %{g}]%{=y C}[%d/%m %c]%{W}'
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With