GNU Screen tool allows us to multiplex several virtual terminals inside an only physical one.
Among other features it provides session persistence.
$ sudo aptitude install screen# Install Screen on Debian and Ubuntu.
$ screen# run screen application.
$ screen -ls# list all screen sessions.
$ screen -r# try to attach to a detached screen session.
$ screen -x# attach to an existing session even if it is not previously detached.
$ screen foo_command# run screen and execute "foo_command" in current window. If executed in an existing window, then it does not create a new screen session, but a new window in current session.
Commands inside screen
C-a c# create a new window.
C-a d# detach current session.
C-a n# move to next window.
C-a p# move to previous window.
C-a ?# show screen help.
C-a a# move back to latest used window.
C-a A# set window title.
C-a "# interactively select a window from a list.
C-a F# change window size to match current region.
C-a a# send "C-a" key combination to current window.
C-a C-x# lock screen tool.
C-a k# kill current window.
C-a w# list all windows.
C-a 'digit'# e.g: C-a 1 moves to window number "1". Same happens with 2 to 9 and zero too.
If flow control is enabled:
Command C-s (equals xoff) stops flow of bytes, and terminal pauses.
To enable flow of bytes again we need C-q command (equals xon).
C-a f# switch flow control state between these values: on / off / auto.
When flow control is enabled, to send C-s and C-q key combinations to current window:
C-a s# send "C-s" key combination to current window.
C-a q# send "C-q" key combination to current window.
Dealing with regions
C-a S# split current region horizontally.
C-a C-i# switch focus to next region.
C-a X# kill current region.
C-a Q# kill all regions but current one.
$ man screen