Screen terminal multiplexer

is a terminal multiplexer. It's a good tool for e.g. remote support. It can also be used to start a command you want to keep running after you close your console session (you can later on attach to your running session). When you enter a session you will not notice too much.<BR>
To know if you are inside a session, use the notes in 'get help' section mentioned below.
= Install =
In order to use you will have to install it:
= Usage =
== Start a new session ==
To enter a session you just enter:
== List existing sessions ==
When you have started some session(s) you can list them:
You might get a list that looks like this:
There are screens on:
 11151.pts-1.mhlab01 (Attached)
 11131.pts-3.mhlab01 (Attached)
2 Sockets in /var/run/screen/S-root.
== Attach to a existing session ==
Lets say you want to attach to a existing session (e.g. the above 11131.pts-3.mhlab01 session).
or
== Controlling a screen session ==
While inside a session, you can control it using keyboard shortcuts. We will only describe some of those alternatives.
=== Get help ===
One of the most useful commands is the one that gives you 'help'.
While in your session, click:
(Do not press/hold when clicking )
=== Detach from a session ===
Sometimes it's useful to just detach from a session without killing it.
=== Close or kill a session ===
To 'kill' a session:
Confirm by clicking when prompted.
You can also 'kill' your session by entering:
= Extra =
== Connect to serial console ==
 is a good tool when you need to connect to a serial console (e.g. if you want to configure a switch using it's serial port). Connecting to a serial console could look like this:
== Force console users into a screen session ==
In some cases you might want to force only console users into a screen session.<BR>
Note that the this configuration will not force SSH-users into a screen.<BR>
Edit and add the following code to it:
if [ -n "$PS1" ] && [ -z "$STARTED_SCREEN" ] && [ -z "$SSH_TTY" ]; then
 STARTED_SCREEN=1 ; export STARTED_SCREEN
 screen -RR && exit 0
 echo "Screen failed! continuing with normal startup"
fi
== Force console and SSH users into a screen session ==
The above example holds the if-statement:
 && [ -z "$SSH_TTY" ]
Remove this part from above configuration to force SSH sessions into a screen session.<BR>
= Other terminal multiplexers =
A similar tool is which is documented here.
= Configuring .screenrc (example) =
#hardstatus off
hardstatus alwayslastline '%{= kG}[ %{y}%H%? %1`%?%{g} ][%= %{= kw}%-w%{+b yk} %n*%t%?(%u)%? %{-}%+w %=%{g}][ %{y}%l %{g}][%{W}%c:%s %{g}]'
msgwait 1
vbell off
# Huge scrollback buffer
defscrollback 5000
# No welcome message
startup_message off
# Clear the screen after closing some programs
altscreen on
# Get rid of the vertical bars
rendition so =00
caption string "%{03} "
# 256 colors
term screen-256color
terminfo rxvt-unicode 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
termcapinfo xterm* ti@:te@
attrcolor b ".I" 
# UTF-8
#defutf8 on
#utf8 on
# Default Windows
# Switch windows with F3 (prev) and F4 (next)
bindkey "^[OR" prev
bindkey "^[OS" next
# Get rid of silly xoff stuff
bind s split
bind c screen 1
bind ^c screen 1
bind 0 select 10 
screen 1
# remove some stupid / dangerous key bindings
bind k
bind ^k
bind .
bind ^\
bind \\
bind ^h
bind h hardcopy
bind 'K' kill
bind '}' history
bind L screen -t dmesg 10 watch "dmesg | tail -n $((LINES-42))"
bind T screen -t htop 11 htop
bind A screen -t atop 12 atop
bind N screen -t nethogs 15 nethogs
bind V screen -t vnstat 16 vnstat
bind S screen -t ss 17 ss -s
== Where to find more examples ==
* Archlinux forums (https://bbs.archlinux.org/viewtopic.php?id=55618)
* GithubGist (https://gist.github.com/search?utf8=%E2%9C%93&q=screenrc)
* Github (https://github.com/search?utf8=%E2%9C%93&q=screenrc)
Category:Shell