GNU Screen is a full-screen window manager that multiplexes a physical terminal between several processes, typically interactive shells. Its own manual describes it as a program with which a user can run “several separate ‘screens’ on a single physical character-based terminal,” each providing the functions of an independent terminal with its own scrollback and process. When Screen is started it creates a single window with a shell in it, and the user can then create new windows, switch between them, and arrange them, all over one underlying connection.
The feature that made Screen indispensable is detach and reattach. A Screen session can be detached from the controlling terminal: the programs inside keep running, but Screen disconnects from the terminal so the user can log out entirely. Later, from the same or a different terminal, the user reattaches and finds every window exactly as it was left. The manual documents this through the detach command and the reattach behavior of the screen command line, and it is the basis for running long jobs on a remote host, surviving a dropped network connection, or moving a working session between machines.
Each Screen window behaves as a full VT100-class terminal with extensions, so programs running inside see a normal terminal and emit ordinary escape sequences. Screen interprets those sequences itself and repaints whichever window is currently visible, keeping the others updated in the background. The manual details Screen’s terminal emulation, its handling of the TERM environment and termcap, and how it negotiates capabilities so that applications behave correctly regardless of the real outer terminal.
Control is exercised through a command character, by default Control-a, followed by a key that selects an action: create a window, move to the next or previous window, split the display into regions, detach, or open the command prompt. The manual organizes these as keybindings mapped to internal commands, all of which can be remapped and scripted through a configuration file, commonly named .screenrc, allowing users to customize the startup window layout and key map.
GNU Screen is part of the GNU Project and is distributed under the GNU General Public License. For more than a decade it was the standard tool for session persistence and terminal multiplexing on Unix-like systems, and although newer tools such as tmux later offered a different architecture and configuration model, Screen established the core ideas of detachable sessions and multiple windows inside one terminal that those successors built upon.