Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
quick_reference [2017-03-29 20:12]
12.199.98.28
quick_reference [2021-02-19 19:39] (current)
Line 1: Line 1:
 +====== SCREEN Quick Reference ======
  
 +===== Getting in =====
  
 +| start a new screen session with session name | ''screen -S //<name>//'' |
 +| list running sessions/screens | ''screen -ls'' |
 +| attach to a running session | ''screen -x'' |
 +| attach to session //name// | ''screen -r //<name>//'' |
 +| 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''. This is useful 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 out =====
 +
 +| detach | ''[[commands:detach|C-a d]]'' |
 +| detach and logout (quick exit) | ''[[commands:pow_detach|C-a D D]]'' |
 +| exit screen | ''[[commands:quit|C-a \]]'' Exit all of the programs in screen. (//not// recommended) | 
 +| force-exit screen | ''[[commands:quit|C-a C-\]]'' (//not// recommended) |
 +| getting out of the screen session | exit |
 +
 +===== 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 <number>]]'' (only for windows 0 to 9) |
 +| change to window by number or name | ''[[commands:select|C-a ' <number or title>]]'' |
 +| change to next window in list | ''[[commands:next|C-a n]]'' or ''[[commands:next|C-a <space>]]'' |
 +| change to previous window in list | ''[[commands:prev|C-a p]]'' or ''[[commands:prev|C-a <backspace>]]'' |
 +| 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 ''[[commands:split|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]]'' |
 +
 +===== Clipboard and Navigation =====
 +
 +| freely navigate buffer | ''[[commands:copy|C-a [ ]]'' or ''[[commands:copy|C-a <esc>]]'' |
 +| toggle selection to copy | ''[[commands:copy|space]]'' |
 +| paste                       | ''[[commands:copy|C-a ] ]]''  |
 +
 +===== Help =====
 +
 +| See help | ''[[commands:help|C-a ?]]'' (lists keybindings) |
 +
 +The [[man:start|man page]] is the complete reference.
 +
 +===== Scripting =====
 +
 +To any session //name//,
 +| 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\\ ([[http://lists.gnu.org/archive/html/screen-users/2007-06/msg00012.html|from here]]) | <code bash>screen -S <name> [-p <page>] -X stuff $'quit\r'</code> |
 +
 +
 +A full example:
 +
 +<code bash>
 +# 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'
 +</code>
 +
 +===== Misc =====
 +
 +| redraw window               | ''[[commands:redisplay|C-a C-l]]'' |
 +| 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) session | ''[[commands:lockscreen|C-a x]]'' |
 +| enter screen command        | ''[[commands:colon|C-a :]]'' |
 +| enable logging in the screen session | ''[[commands:logging|C-a H]]'' |
 +
 +===== Scrollback-buffer =====
 +
 +In copy mode, one can navigate the scrollback buffer in various ways:
 +
 +| half page up | C-u |           | half page down | C-d |
 +| back | C-b |                   | forward | C-f |
 +| cursor left/down/up/right | h/j/k/l |

User Tools