January 20, 2019

Ubuntu-ized GNU Screen is Faster and Friendlier

A Short Tutorial

  • June 1, 2009
  • By Charlie Schluting

GNU Screen is a terminal multiplexer program that Linux folk have used for ages. It allows you to turn one terminal into many, and run processes even after logging out. In this article we will give a brief overview of screen usage for the uninitiated, then talk about how Ubuntu's defaults and new screen-profiles package have taught us about new and wonderful features of screen.

A Short Tutorial

To run screen, simply execute the command screen

You will see a flash, then be at a blank terminal. While it may seem that nothing has happened, what you're looking at is actually a new terminal within screen. You can continue as normal, but sooner or later you will wish to run a new terminal. First, let's get familiar with screen.

Pressing the control and a keys simultaneously (which we'll denote with C-a from now on) signals screen to interpret the next command. So if you press C-a and let go, then press 'c' for "create," (C-a c) you will be in a new terminal window. You've created a new window within screen. You can view the list of windows with C-a w. If you exit your shell in the new window, screen will automatically destroy the window and you'll be back to the first. Create a few more and type some random commands in each (different ones in each). You can now press C-a then SPACE to move to the next window. If you press C-a a you will return to the previous window. Also, you can select windows directly by typing the number after C-a.

Lastly, you need to know how to detach and reattach to screen. Press C-a d and screen will exit. You are back at the single terminal you started with, without screen. You can see what screen sessions you have running in the background with 'screen -ls.' Now, to reattach to your screen session, run: screen -x

Useful Screen Commands and Keystrokes

  • screen -ls : List your running screen sessions
  • screen -x : reattach to your screen session
  • C-a c : Create a new screen window
  • C-a w : View a list of windows
  • C-a SPACE : Move to the next window
  • C-a d : Detach from your screen session

We use the -x command to reattach so that it can be done multiple times. From your laptop, home computer, and work computer, are the most common. For the rest of the basics, see the screen man page or C-a ?.

Things to Do With Screen

Screen is wonderful for work management. You can have a standard layout of screen windows, each one dedicated to a different server. You will instinctively press C-a 8, for example, when you think about the ssh session that generally lives in that window.

Most often, we will want to do something else while waiting for a long-running command to finish. Easy enough: Just create a new window and carry on. This is also very handy for "leaving." If you ssh to a server from your laptop and start a process or script that takes an extremely long time to complete, you may be stuck. Close your laptop and go home, and the process ends. Of course, you should have run it from your screen session that runs on a server.

Many people also use screen to stay attached to IRC while they are away, and read the chat history of what was missed. Simply run irssi or your favorite IRC client within a screen window, and you're all set.

Most Popular LinuxPlanet Stories