screen

Dash App Icon
Dash for macOS
Instant access to all the cheat sheets, API docs and snippets you need!

Escape key

All screen commands are prefixed by an escape key, by default C-a (that's Control-a, sometimes written ^a). To send a literal C-a to the programs in screen, use C-a a. This is useful when when working with screen within screen. For example C-a a n will move screen to a new window on the screen within screen.

Getting in

screen -S <name>

Start a new screen session with session name

screen -ls

List running sessions/screens

screen -x

Attach to a running session

screen -r <name>

Attach to a running session with name

screen -dRR

The "ultimate attach"

Attaches to a screen session. If the session is attached elsewhere, detaches that other display. If no session exists, creates one. If multiple sessions exist, uses the first one.

Getting out

screen -d <name>

Detach a running session

C-a d

Detach

C-a D D

Detach and logout (quick exit)

“C-a : quit”

Exit screen

or exit all of the programs in screen

C-a C-\

Force-exit screen

(not recommended)

Help

C-a ?

See help

Lists keybindings. The man page is the complete reference, but it's very long.

Window Management

C-a c

Create new window

C-a C-a

Change to last-visited active window

(commonly used to flip-flop between two windows)

C-a <number>

Change to window by number

(only for windows 0 to 9)

C-a ' <number or title>

Change to window by number or name

C-a n or C-a <space>

Change to next window in list

C-a p or C-a <backspace>

Change to previous window in list

C-a "

See window list

(allows you to select a window to change to)

C-a w

Show window bar

(if you don't have window bar)

C-a k

Kill current window

(not recommended)

C-a \

Kill all windows

(not recommended)

C-a A

Rename current window

Split screen

C-a S

Split display horizontally

C-a |

Split display vertically

or C-a V (for the vanilla vertical screen patch)

C-a tab

Jump to next display region

C-a X

Remove current region

C-a Q

Remove all regions but the current one

Scripting

Send a command to a named session

screen -S <name> -X <command>

Create a new window and run ping example.com

screen -S <name> -X screen ping example.com

Stuff characters into the input buffer using bash to expand a newline character (from here)

screen -S <name> [-p <page>] -X stuff $'quit\r'

A full example

# run bash within screen

screen -AmdS bash_shell bash

# run top within that bash session

screen -S bash_shell -p 0 -X stuff $'top\r'

# ... some time later

# stuff 'q' to tell top to quit

screen -S bash_shell -X stuff 'q'

# stuff 'exit\n' to exit bash session

screen -S bash_shell -X stuff $'exit\r'

Misc

C-a C-l

Redraw window

C-a [

Enter copy mode

or C-a <esc> (also used for viewing scrollback buffer)

C-a ]

Paste

C-a M

Monitor window for activity

C-a _

Monitor window for silence

C-a C-v

Enter digraph (for producing non-ascii characters)

C-a x

Lock (password protect) display

C-a :

Enter screen command

C-a H

Enable logging in the screen session

Notes