screen - screen manager with terminal emulation
Screen is a full-screen window manager that multiplexes a physical terminal between several processes (typically interactive shells).
[CTRL a] [CTRL d] (detach) Detach screen from this terminal.
[CTRL a] D D (pow_detach) Detach and logout.
[CTRL a] [CTRL i] (info) Show info about this window.
[CTRL a] [CTRL k] (kill) Destroy current window.
[CTRL a] [CTRL l] (redisplay) Fully refresh current window.
[CTRL a] [CTRL m] (lastmsg) Repeat the last message displayed in the message line.
[CTRL a] [CTRL n] (next) Switch to the next window.
[CTRL a] N (number) Show the number (and title) of the current window.
[CTRL a] [CTRL p] (prev) Switch to the previous window (opposite of [CTRL a n).
[CTRL a] [CTRL w] (windows) Show a list of window.
[CTRL a] W (width) Toggle 80/132 columns.
[CTRL a] Z (reset) Reset the virtual terminal to its "power-on" values.
[CTRL a] (help) Show key bindings.
[CTRL a] [CTRL \] (quit) Kill all windows and terminate screen.
Enable mouse scrolling and scroll bar history scrolling
Add this to your config vim ~/.screenrc
termcapinfo xterm* ti@:te@
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
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