Quick guide to GNU screen
Start a screen session
$screen
Detach from the screen session
Ctrl+a d
(Hit Ctrl+a quickly followed by hitting just d)
List current screen sessions
$ screen -ls
There is a screen on:
1119.pts-0.acer11 (Detached)
1 Socket in /run/screens/S-brm.
screen -list does the same thing.
Attach to this screen session
$screen - r
Attach to an already attached screen. That is , if the session is already attached by someone else or somewhere else. The other person will able to see what you type on the terminal, a nice way to share screen.
$screen -x
Terminate the screen session
(Ctrl+a k)
(Hit Ctrl+a quickly followed by hitting k)
Alternate ways to terminate screen session is Ctrl+d
or exit
as you would on a shell session. But only Ctrl+a k asks for confirmation like this:
kill this window [y/n]
After terminating a screen session, you should see something like this, you are taken back to the prompt where you started or attached the session.
[screen is terminating]
$
Now there are no screen session.
$ screen -ls
No Sockets found in /run/screens/S-brm.
Attach to a session when there are multiple sessions There are three sessions here:
$screen -ls
There are screens on:
1209.pts-0.acer11 (Detached)
1205.pts-0.acer11 (Detached)
1202.pts-0.acer11 (Detached)
3 Sockets in /run/screens/S-brm.
To attach to the middle one 1205.pts-0.acer11 (Detached):
$screen -r 1205.pts-0.acer11
or just
$screen -r 1205
If the session is already attached by someone else, somewhere
$screen -x 1205
To name a session while starting for easy reference
$screen -S SessionName
SessionName given will now appear in screen -ls output
To change the window title
$screen -t Newtitle
I find this useful to see where I am.
How I can tell I am in a screen session and which session?
$ echo $STY
1209.pts-0.acer11
Compare the output from screen -ls. If you are not attached to any screen session, you get a blank output.