====== screen Quick Reference ====== ===== Getting in ===== | start a new screen session with session name | ''screen -S ////'' | | list running sessions/screens | ''screen -ls'' | | attach to a running session | ''screen -r'' | | ... to session with name | ''screen -r ////'' | | the "ultimate attach" | ''screen -dRR'' (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.) | ===== 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''. ===== Getting out ===== | detach | ''[[commands:detach|C-a d]]'' | | detach and logout (quick exit) | ''[[commands:pow_detach|C-a D D]]'' | | exit screen | "C-a : quit" or exit all of the programs in screen. | | force-exit screen | ''[[commands:quit|C-a C-\]]'' (//not// recommended) | ===== Help ==== | See help | ''[[commands:help|C-a ?]]'' (lists keybindings) | The [[man:start|man page]] is the complete reference, but it's very long. ===== Window Management ===== | create new window | ''[[commands:screen|C-a c]]'' | | change to last-visited active window | ''[[commands:other|C-a C-a]]'' (commonly used to flip-flop between two windows) | | change to window by number | ''[[commands:select|C-a ]]'' (only for windows 0 to 9) | | change to window by number or name | ''[[commands:select|C-a ' ]]'' | | change to next window in list | ''[[commands:next|C-a n]]'' or ''[[commands:next|C-a ]]'' | | change to previous window in list | ''[[commands:prev|C-a p]]'' or ''[[commands:prev|C-a ]]'' | | see window list | ''[[commands:windowlist|C-a "]]'' (allows you to select a window to change to) | | show window bar | ''[[commands:windows|C-a w]]'' (if you don't have window bar) | | close current window | Close all applications in the current window (including shell) | | kill current window | ''[[commands:kill|C-a k]]'' (not recommended) | | kill all windows | ''[[commands:kill|C-a \]]'' (not recommended) | | rename current window | ''[[commands:title|C-a A]]'' | ===== Split screen ===== | split display horizontally | ''[[commands:split|C-a S]]'' | | split display vertically | ''[[commands:split|C-a | or C-a V (for the vanilla vertical screen patch)]]'' | | jump to next display region | ''[[commands:focus|C-a tab]]'' | | remove current region | ''[[commands:remove|C-a X]]'' | | remove all regions but the current one | ''[[commands:only|C-a Q]]'' | ===== Scripting ===== | send a command to a named session | ''screen -S //// -X ////'' | | create a new window and run //ping example.com// | ''screen -S //// -X screen //ping example.com//'' | | stuff characters into the input buffer\\ using bash to expand a newline character\\ ([[http://lists.gnu.org/archive/html/screen-users/2007-06/msg00012.html|from here]]) | screen -S [-p ] -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 ===== | redraw window | ''[[commands:redisplay|C-a C-l]]'' | | enter copy mode | ''[[commands:copy|C-a []]'' or ''[[commands:copy|C-a ]]'' (also used for viewing scrollback buffer) | | paste | ''[[commands:paste|C-a ] ]]'' | | monitor window for activity | ''[[commands:monitor|C-a M]]'' | | monitor window for silence | ''[[commands:silence|C-a _]]'' | | enter digraph (for producing non-ASCII characters) | ''[[commands:digraph|C-a C-v]]'' | | lock (password protect) display | ''[[commands:lockscreen|C-a x]]'' | | enter screen command | ''[[commands:colon|C-a :]]'' |