Difference between revisions of "Screen"
From Christoph's Personal Wiki
(New page: '''screen''' provides you with an ANSI/vt100 terminal emulator, which can multiplex up to 10 pseudo-terminals. On startup, it executes $SHELL in window 0. Then it reads $HOME/.screenrc to ...) |
(→Usage) |
||
Line 3: | Line 3: | ||
==Usage== | ==Usage== | ||
− | *Reattach to a specific detached session. The terminal emulator reconfigures according to your $TERMCAP or $TERM settings. When you have multiple screens detached, you must supply the session name: | + | * Start a named session: |
+ | $ screen -S session_name | ||
+ | |||
+ | * Detach from Linux screen session: | ||
+ | Ctrl+a d | ||
+ | The program running in the screen session will continue to run after you detach from the session. | ||
+ | |||
+ | * Reattach to a specific detached session. The terminal emulator reconfigures according to your $TERMCAP or $TERM settings. When you have multiple screens detached, you must supply the session name: | ||
$ screen -r [pid.tty.host|tty.host] | $ screen -r [pid.tty.host|tty.host] | ||
− | *Reattach to a detached session or (if none) create a new session: | + | * Reattach to a detached session or (if none) create a new session: |
$ screen -R | $ screen -R | ||
− | *Detach a screen session remotely. Has the same effect as typing "<code>C-a d</code>" on the controlling terminal. <code>`screen -D`</code> will power-detach: | + | * Detach a screen session remotely. Has the same effect as typing "<code>C-a d</code>" on the controlling terminal. <code>`screen -D`</code> will power-detach: |
$ screen -d [pid.tty.host|tty.host] | $ screen -d [pid.tty.host|tty.host] | ||
Line 19: | Line 26: | ||
If sockets are missing, you may send a SIGCHLD to its "SCREEN" process and the process will re-establish the socket (think of someone cleaning <code>/tmp</code> thoroughly). | If sockets are missing, you may send a SIGCHLD to its "SCREEN" process and the process will re-establish the socket (think of someone cleaning <code>/tmp</code> thoroughly). | ||
− | *Start a new screen session and set the number of lines in the scrollback buffer to 200 (the default is 100 lines): | + | * Start a new screen session and set the number of lines in the scrollback buffer to 200 (the default is 100 lines): |
$ screen -h 200 | $ screen -h 200 | ||
Revision as of 21:10, 3 August 2020
screen provides you with an ANSI/vt100 terminal emulator, which can multiplex up to 10 pseudo-terminals. On startup, it executes $SHELL in window 0. Then it reads $HOME/.screenrc to learn configuration, keybindings, and possibly open more windows.
Usage
- Start a named session:
$ screen -S session_name
- Detach from Linux screen session:
Ctrl+a d
The program running in the screen session will continue to run after you detach from the session.
- Reattach to a specific detached session. The terminal emulator reconfigures according to your $TERMCAP or $TERM settings. When you have multiple screens detached, you must supply the session name:
$ screen -r [pid.tty.host|tty.host]
- Reattach to a detached session or (if none) create a new session:
$ screen -R
- Detach a screen session remotely. Has the same effect as typing "
C-a d
" on the controlling terminal.`screen -D`
will power-detach:
$ screen -d [pid.tty.host|tty.host]
- Show all available sessions and their status. Use
-wipe
to remove DEAD sessions:
$ screen -list $ screen -ls $ screen -wipe
If sockets are missing, you may send a SIGCHLD to its "SCREEN" process and the process will re-establish the socket (think of someone cleaning /tmp
thoroughly).
- Start a new screen session and set the number of lines in the scrollback buffer to 200 (the default is 100 lines):
$ screen -h 200
Keyboard shortcuts
C-a ? (help) Show all keybindings. C-a c (screen) Create new windows. C-a SPACE (next) Advance to next window (with wraparound). C-a C-a (other) Toggle between the current and previously displayed windows. C-a 0 (select n) Switch to window n=0 ... 9. ... C-a 9 C-a w (windows) Show a list of window names in the status line. C-a a (meta) Send a literal C-a/C-s/C-q to the C-a s (xoff) process in the window. C-a q (xon) For instance, emacs uses C-a and C-s. C-a l (redisplay) Redraw this window. C-a W (width) Toggle between 80 & 132 columns mode. C-a L (login) Try to toggle the window's utmp-slot. C-a z (suspend) Suspend the whole screen session. C-a x (lockscreen) Execute /usr/bin/lock, $LOCKCMD or a built-in terminal lock. C-a H (log) Log stdout of window n to screenlog.n. C-a C-[ (copy) Start copy mode. Move cursor with h,j,k,l. Set 2 marks with SPACE or y. Abort with ESC. (C-[ is ESC.) Preceeding second mark with an a appends the text to the copy buffer. C-a C-] (paste) Output copy buffer to current window's stdin. C-a < (readbuf) Read the copy buffer from /tmp/screen-exchange. C-a > (writebuf) Write the copy buffer to /tmp/screen-exchange. C-a d (detach) Detach screen. All processes continue and may spool output to their pty's, but screen disconnects from your terminal. C-a D D (pow_detach) Power detach. Disconnect like C-a d but also kill the parent shell. C-a K (kill) Kill a window and send SIGHUP to its process group. Per default this would be C-a C-k, but it is redefined in the demo .screenrc (think of killing a whole line in emacs). C-a : (colon) Online configuration change.
See the man page or TeXinfo manual for many more keybindings and commands.