I created this account so I could see some people's friends-only posts, but I might as well post something of my own.
If you use console-mode unix programs and would like to
- leave stuff running when you log out of a machine and have it still be running when you log back in,
- or switch between multiple programs without using
fgor multiple terminal windows,
- or be able to see multiple programs at once without using multiple terminal windows,
- or copy and paste between programs without using the mouse,
then you will like GNU Screen.
At my old job I sat at a Windows 2000 machine but did most
of my work on a GNU/Linux machine (in a closet). Every day
I logged into my desktop machine, logged into the closet
machine via PuTTY,
screen -D -R, which brought up all of
the Linux stuff I had left running the day before. Here's a
cheat sheet I came up with to learn
GNU screen usage This is a summary of some common command-line options and keystrokes for use in the terminal multiplexer GNU screen. For more details, see screen's man page. All commands (except in copy/scrollback mode or command-line mode) start with the command character, which is assumed here to be the default Ctrl+A (notated here as "C-a"). Command-line options screen When called from inside a screen session (on the computer that that screen session is running on): Open up a new window with a command shell in it. When called from outside a screen session: Start a new screen session. screen -D -R Reattach a detached screen session. screen -t Fooing foo bar baz Create a new window, run the command "foo" with arguments "bar" and "baz" in it, and title it "Fooing". screen -e^Oo Start a new screen session with a command character of "C-o" (and a literal Ctrl+O sendable as "C-o" followed by "o"). This is useful when you have a screen session running on computer foo, inside which you are sshed into computer bar, and you want to start a screen session on computer bar with a different command character. Basic command-character commands C-a ? Help. C-a a Send the command character itself ("C-a") to the program running in the current window. C-a " Present a list of all windows for selection. Use the arrow or number keys (or vi- or Emacs-style cursor keys) to highlight a window and press <Enter> to switch to it. C-a 0 Switch to window number 0 (works with 0-9). C-a C-a Toggle to the window displayed previously. (If you're using another command character, substitute it for both these "C-a"s.) C-a A Change the current window's title. C-a c Create a new window with a shell and switch to that window. C-a <Esc> Enter copy/scrollback mode. (See "Copy/scrollback mode" section below.) C-a ] Send the contents of the paste buffer to the program running in the current window. (See "Copy/scrollback mode" section below.) C-a t Show time, date, hostname, and some other stuff. C-a @ Do nothing. (Useful when you hit "C-a" by mistake.) C-a : Enter command line mode. Examples: - "C-a :number 7" changes the window number of the current window to 7. - "C-a :escape ^Oo" sets the command character to Ctrl+O. - "C-a :hardstatus alwayslastline" makes status show up on the last line rather than the terminal title bar. See the man page for more details. C-a C-z Suspend screen. (You will be back at the shell you started screen from.) C-a d Detach screen. (Do this before you log out -- you will be back at the shell you started screen from.) Copy/scrollback mode h,j,k,l Move cursor left, down, up, right (as in vi). Regular arrow keys also work. C-b Page up (<PageUp> key also works). C-f Page down (<PageDown> key also works). <Space> Set mark. When the second mark is set, the text between the two marks will be put into screen's paste buffer and copy/scrollback mode will be exited. ^ Move to first nonwhitespace character on current line. $ Move to last nonwhitespace character on current line. 0 Move to leftmost column. c Set the left margin for block-mode copying. C Set the right margin for block-mode copying. x Exchange the first mark with the current cursor position. This is good for moving an already set mark. <Esc> Exit copy/scrollback mode. (Any key that doesn't have another meaning will do this.) Regions Regions allow looking at two or more screen windows at the same time. C-a S Split the current region into two new ones. (The blank window will be displayed in the new region until you use one of the window selection commands.) C-a <Tab> Switch focus to the next region. C-a Q Delete all regions but the current one. (This does not destroy any windows.)