GNU Screen
Encyclopedia
GNU Screen is a software application that can be used to multiplex
several virtual console
s, allowing a user to access multiple separate terminal sessions inside a single terminal window or remote terminal session. It is useful for dealing with multiple programs from a command line interface, and for separating programs from the Unix shell
that started the program.
Released under the terms of version 3 or later of the GNU General Public License
, GNU Screen is free software
.
of graphical window manager
s, or as a way of putting virtual terminals into any login session. It is a wrapper that allows multiple text programs to run at the same time, and provides features that allow the user to use the programs within a single interface productively.
Persistence: Similar to VNC
, GNU Screen allows the user to start applications from one computer, and then reconnect from a different computer and continue using the same application without having to restart it. This makes migration between locations like work and home simple. Screen provides terminal-agnostic functionality so that users can disconnect and reconnect using different terminal types, allowing applications to continue running without being aware of the change in terminals.
Multiple windows: Multiple terminal sessions can be created, each of which usually runs a single application. The windows are numbered, and the user can use the keyboard to switch between them. Some GUI
terminal emulators provide tabs or otherwise similar functionality to this. Each window has its own scroll-back buffer, so that output is captured even when the window isn't actively displayed, and that history can be saved even when migrating to another computer. Windows can be split-screened. While some text applications have this functionality built in, Screen allows any application to be split-screened alongside any number of other applications.
Session Sharing: Screen allows multiple computers to connect to the same session at once, allowing collaboration between multiple users. The same computer can also be used to make multiple simultaneous connections, providing alternative functionality to screen-splitting, particularly for computers with multiple monitors.
Design criteria included faithful VT100 emulation (including ANSI X3.64 (ISO 6429) and ISO 2022) and reasonable performance for heavy daily use when character-based terminals were still common. Later, the at-the-time novel feature of disconnection/reattachment was added.
Ca. 1990 Oliver Laumann handed over maintenance of the code to Jürgen Weigert and Michael Schroeder at the University of Erlangen-Nuremberg, who later moved the project to the GNU Project
and added features such as split-screen, cut-and-paste, and screen-sharing.
Multiplex
-Science and engineering:* Multiplexing, combining many signals into a single transmission circuit or channel* Multiplexer, an electronic device that accomplishes multiplexing* Multiplex , a laboratory procedure in molecular biology-Entertainment:...
several virtual console
Virtual console
A virtual console – also known as a virtual terminal – is a conceptual combination of the keyboard and display for a computer user interface. It is a feature of some operating systems such as UnixWare, Linux, and BSD, in which the system console of the computer can be used to switch between...
s, allowing a user to access multiple separate terminal sessions inside a single terminal window or remote terminal session. It is useful for dealing with multiple programs from a command line interface, and for separating programs from the Unix shell
Unix shell
A Unix shell is a command-line interpreter or shell that provides a traditional user interface for the Unix operating system and for Unix-like systems...
that started the program.
Released under the terms of version 3 or later of the GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....
, GNU Screen is free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
.
Features
GNU Screen can be thought of as a text versionText mode
Text mode is a kind of computer display mode in which the content of the screen is internally represented in terms of characters rather than individual pixels. Typically, the screen consists of a uniform rectangular grid of character cells, each of which contains one of the characters of a...
of graphical window manager
Window manager
A window manager is system software that controls the placement and appearance of windows within a windowing system in a graphical user interface. Most window managers are designed to help provide a desktop environment...
s, or as a way of putting virtual terminals into any login session. It is a wrapper that allows multiple text programs to run at the same time, and provides features that allow the user to use the programs within a single interface productively.
Persistence: Similar to VNC
Virtual Network Computing
In computing, Virtual Network Computing is a graphical desktop sharing system that uses the RFB protocol to remotely control another computer...
, GNU Screen allows the user to start applications from one computer, and then reconnect from a different computer and continue using the same application without having to restart it. This makes migration between locations like work and home simple. Screen provides terminal-agnostic functionality so that users can disconnect and reconnect using different terminal types, allowing applications to continue running without being aware of the change in terminals.
Multiple windows: Multiple terminal sessions can be created, each of which usually runs a single application. The windows are numbered, and the user can use the keyboard to switch between them. Some GUI
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...
terminal emulators provide tabs or otherwise similar functionality to this. Each window has its own scroll-back buffer, so that output is captured even when the window isn't actively displayed, and that history can be saved even when migrating to another computer. Windows can be split-screened. While some text applications have this functionality built in, Screen allows any application to be split-screened alongside any number of other applications.
Session Sharing: Screen allows multiple computers to connect to the same session at once, allowing collaboration between multiple users. The same computer can also be used to make multiple simultaneous connections, providing alternative functionality to screen-splitting, particularly for computers with multiple monitors.
History
Screen was originally designed by Oliver Laumann and Carsten Bormann and published in 1987.Design criteria included faithful VT100 emulation (including ANSI X3.64 (ISO 6429) and ISO 2022) and reasonable performance for heavy daily use when character-based terminals were still common. Later, the at-the-time novel feature of disconnection/reattachment was added.
Ca. 1990 Oliver Laumann handed over maintenance of the code to Jürgen Weigert and Michael Schroeder at the University of Erlangen-Nuremberg, who later moved the project to the GNU Project
GNU Project
The GNU Project is a free software, mass collaboration project, announced on September 27, 1983, by Richard Stallman at MIT. It initiated GNU operating system development in January, 1984...
and added features such as split-screen, cut-and-paste, and screen-sharing.
Other terminal multiplexers
Other text-mode multiplexers offer similar functionality. These include:- splitvt: Split terminal utility.
- TwinTwin (windowing system)Twin is a windowing environment with mouse support, window manager, terminal emulator and networked clients, all inside a text mode display.Twin supports a variety of displays:...
: Twin (standing for "Text mode WINdow environment") is a full-fledged window managerWindow managerA window manager is system software that controls the placement and appearance of windows within a windowing system in a graphical user interface. Most window managers are designed to help provide a desktop environment...
for text windows. Initially started as an MS-DOSMS-DOSMS-DOS is an operating system for x86-based personal computers. It was the most commonly used member of the DOS family of operating systems, and was the main operating system for IBM PC compatible personal computers during the 1980s to the mid 1990s, until it was gradually superseded by operating...
project, it was later ported to Linux. - dvtm: Tiling window management for the console.
- tmuxTmuxTmux is a software application that can be used to multiplex several virtual consoles, allowing a user to access multiple separate terminal sessions inside a single terminal window or remote terminal session...
: A modern GNU Screen workalike; it is BSD-licensed, allows multiple panes (with optional XtermXtermIn computing, xterm is the standard terminal emulator for the X Window System. A user can have many different invocations of xterm running at once on the same display, each of which provides independent input/output for the process running in it .xterm originated prior to the X Window System...
mouse support), and has a scriptable command interface. tmux aimed to allow the sharing of a single window between multiple terminals, while keeping the other windows in the same session entirely separate. tmux has been part of the OpenBSDOpenBSDOpenBSD is a Unix-like computer operating system descended from Berkeley Software Distribution , a Unix derivative developed at the University of California, Berkeley. It was forked from NetBSD by project leader Theo de Raadt in late 1995...
base system since 2009's version 4.6. - Byobu: Byobu is a profile and configuration utilities for GNU Screen. In May 2009 screen-profiles was renamed Byobu.
- neercs: neercs ("screen" spelled backwards) is a GNU screen workalike. It supports window thumbnailing and graphical animated screensavers. It also supports 3D console switching (switching between consoles mapped to the faces of a cube) via the libcaca ASCII artASCII artASCII art is a graphic design technique that uses computers for presentation and consists of pictures pieced together from the 95 printable characters defined by the ASCII Standard from 1963 and ASCII compliant character sets with proprietary extended characters...
library.
See also
- xpraXpraxpra or X Persistent Remote Applications is a tool which allows you to run X programs usually on a remote host and then direct their display to your local machine without losing any state. It differs from standard X forwarding in that it allows disconnection and reconnection without disrupting the...
: a tool that lets you run X Window SystemX Window SystemThe X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...
applications on one machine, disconnect them from that machine's display, then reconnect them to another machine's display. - RatpoisonRatpoisonRatpoison is a tiling window manager for the X Window System primarily developed by Shawn Betts. Its user interface and much of its functionality are inspired by the GNU Screen terminal multiplexer...
: a tiling window managerTiling window managerIn computing, a tiling window manager is a window manager with an organization of the screen into mutually non-overlapping frames, as opposed to the more popular approach of coordinate-based stacking of overlapping objects that tries to fully emulate the desktop metaphor.-Xerox PARC:Although the...
for the X Window SystemX Window SystemThe X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...
.
Further reading
- Jeff Covey (12 Oct 2002) The Antidesktop, FreshmeatFreshmeatFreecode, formerly Freshmeat, is a website owned by Geeknet that allows computer users to keep track of the latest software releases and updates as well as write/read reviews and articles, send or receive comments to or from the author, and many other features...