GNU
Linux,  OS Tools

screen (Linux OS utility)

Open a new (named) screen:

screen -S session_name

Lists all existing screen sessions:

screen -ls

Reconnects to an existing (detached) screen session:

screen -r SCREEN_NAME_OR_NUMBER

Force/reconnect to an Attached screen session:

screen -rd SCREEN_NAME_OR_NUMBER

Most useful keyboard shortcuts to manage an open session:

    Ctrl+a d Detach from current screen (without destroying it)
    Ctrl+a c Create a new window (with shell)
    Ctrl+a " List all window
    Ctrl+a 0 Switch to window 0 (by number )
    Ctrl+a A Rename the current window
    Ctrl+a S Split current region horizontally into two regions
    Ctrl+a | Split current region vertically into two regions
    Ctrl+a tab Switch the input focus to the next region
    Ctrl+a Ctrl+a Toggle between the current and previous region
    Ctrl+a Q Close all regions but the current one
    Ctrl+a X Close the current region
    Ctrl+a ESC Enters in copy mode (you can scroll the buffer with up/down pageup/pagedown keys), press ESC to return to the shell
    Ctrl+a [ Enters in copy mode (you can scroll the buffer with up/down pageup/pagedown keys), press ESC to return to the shell
        Once into copy mode:
          Move cursor to the text you want to copy
          Press SPACE to start highlighting
          Move cursor to end of text you want to copy
          Press SPACE to copy to the clipboard and exit from copy mode
          Press Ctrl+a ] to paste the text

Resizing a screen Tab:

type Ctrl-a :resize +10 to increase size

How to unfreeze from accidental pressing of Ctrl-S:

type Ctrl+q

Sample ~/.screenrc

# Turn off the welcome message
startup_message off

# Disable visual bell
vbell off

# Set scrollback buffer to 10000
defscrollback 10000

# Customize the status line
hardstatus alwayslastline
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]'