Brian's Favorite Tools
2009.03.13: Entry the first - Screen
From the manpage:
Screen is a full-screen window manager that multiplexes a physical terminal between several processes (typically interactive shells). Each virtual terminal provides the functions of a DEC VT100 terminal and, in addition, several control functions from the ISO 6429 (ECMA 48, ANSI X3.64) and ISO 2022 standards (e.g. insert/delete line and support for multiple character sets). There is a scrollback history buffer for each virtual terminal and a copy-and-paste mechanism that allows moving text regions between windows.
Thus, in typical manpage tersitude, "You lost me at Screen is a full-screen window manager that multiplexes..." Yeah, but screen is so much more. Here's the bottom line. Install screen if it isn't installed. Type
screen at a command prompt. Read the blurb the first time (and put up with it in the future until you care enough to read the manpage and figure out how to make it go away with ~/.screenrc), then press [Enter]. There, you're back in your shell, right? Yeah, sorta. Close the terminal, lock (don't turn off) your computer, and walk away. Come back tomorrow, open a new terminal, type
screen -r, and your session is still right there. Okay, to "prove" that, you might want to start a compile running, or just leave top up, or something. When you get disconnected from your session (which happens when you're working with SSH, and usually at the end of a long process that needs finishing, only your session timed out and now you'll have to start over), you reconnect, then reconnect to the still running screen session, and you're still on. Yay.
There's a lot more to learn about screen: here's one good article on the topic over at Linux Journal. Get past the technical, start using screen, then wonder how you ever lived without it. Screen is one of my top tools.