Uses of GNU Screen
A relatively under-used and unknown tool, GNU Screen has been gathering more interest as of late. Screen is described as a “terminal multiplexer”, a somewhat complicated way of saying that it lets you run multiple Unix-based console applications within a single terminal. In practical use this is done with separate “windows”, which are different views within the same terminal. For example, you could have one window connected to your email client, one monitoring recent syslog events, and one executing a build. Actions like creating, deleting and switching between windows are done through simple key combinations.
In addition to this, you can also keep screen running even after you close your connection, and then restart the session again later. This is a feature that I’ve found to be incredible useful. It allows me to, for example, detach my screen session when I leave work, and then restart it at home continuing right where I left off, with each window intact. You could also use screen to keep multiple connections open to various machines, although there are potential security issues with this.
There are a number of other neat features of screen, some of which are described in this tutorial from Kuro5hin. Another more detailed tutorial can be found here. One feature I especially like is the ability to have split screens, so you could do something like viewing the output of a number of logfiles all at once.
A recent Linux.com article discusses using screen for remote interaction. Screen can allow multiple users to access the same session, at the same time. This provides a simple way of doing “distance education”, as well as remote demos and tutorials.
Although screen isn’t the most widely known GNU program, it’s one of those utilities that once you start using it, you can’t imagine life without it.
