Difference between revisions of "Screen"
(→Usage) |
(→External links) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 87: | Line 87: | ||
C-a : (colon) Online configuration change. | C-a : (colon) Online configuration change. | ||
</pre> | </pre> | ||
+ | |||
+ | <pre> | ||
+ | Ctrl+a c Create a new window (with shell) | ||
+ | Ctrl+a " List all window | ||
+ | Ctrl+a 0 Switch to window 0 (by number ) | ||
+ | Ctrl+a A Rename the current window | ||
+ | Ctrl+a S Split current region horizontally into two regions | ||
+ | Ctrl+a | Split current region vertically into two regions | ||
+ | Ctrl+a tab Switch the input focus to the next region | ||
+ | Ctrl+a Ctrl+a Toggle between the current and previous region | ||
+ | Ctrl+a Q Close all regions but the current one | ||
+ | Ctrl+a X Close the current region | ||
+ | </pre> | ||
+ | |||
See the man page or TeXinfo manual for many more keybindings and commands. | See the man page or TeXinfo manual for many more keybindings and commands. | ||
+ | |||
+ | ==Customize Linux screen== | ||
+ | |||
+ | When screen is started, it reads its configuration parameters from <code>/etc/screenrc</code> and <code>~/.screenrc</code>, if the file(s) is/are present. We can modify the default Screen settings according to our preferences using the <code>.screenrc</code> file. | ||
+ | |||
+ | * Example <code>.screenrc</code>: | ||
+ | <pre> | ||
+ | ~/.screenrc | ||
+ | # Turn off the welcome message | ||
+ | startup_message off | ||
+ | |||
+ | # Disable visual bell | ||
+ | vbell off | ||
+ | |||
+ | # Set scrollback buffer to 10000 | ||
+ | defscrollback 10000 | ||
+ | |||
+ | # Customize the status line | ||
+ | hardstatus alwayslastline | ||
+ | hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]' | ||
+ | </pre> | ||
==External links== | ==External links== | ||
*[https://github.com/amade/screen/tree/devel Modified GNU screen source code] | *[https://github.com/amade/screen/tree/devel Modified GNU screen source code] | ||
+ | *[https://www.gnu.org/software/screen/manual/screen.html Screen User's Manual] | ||
*[https://github.com/christophchamp/dnaomics/blob/master/admin/dotfiles/screenrc Example .screenrc file] | *[https://github.com/christophchamp/dnaomics/blob/master/admin/dotfiles/screenrc Example .screenrc file] | ||
[[Category:Linux Command Line Tools]] | [[Category:Linux Command Line Tools]] |
Latest revision as of 21:27, 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.
Ctrl+a c Create a new window (with shell) Ctrl+a " List all window Ctrl+a 0 Switch to window 0 (by number ) Ctrl+a A Rename the current window Ctrl+a S Split current region horizontally into two regions Ctrl+a | Split current region vertically into two regions Ctrl+a tab Switch the input focus to the next region Ctrl+a Ctrl+a Toggle between the current and previous region Ctrl+a Q Close all regions but the current one Ctrl+a X Close the current region
See the man page or TeXinfo manual for many more keybindings and commands.
Customize Linux screen
When screen is started, it reads its configuration parameters from /etc/screenrc
and ~/.screenrc
, if the file(s) is/are present. We can modify the default Screen settings according to our preferences using the .screenrc
file.
- Example
.screenrc
:
~/.screenrc # Turn off the welcome message startup_message off # Disable visual bell vbell off # Set scrollback buffer to 10000 defscrollback 10000 # Customize the status line hardstatus alwayslastline hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]'