The other week J.K. at SFVlug was asking if I could provide some notes on the GNU 'screen' program. Here, extracted from some earlier notes, and beefed up with a few references I use, without further commentary, are the basic commands, hotkeys, and other data I need for most of my 'screen' use.
some screen notes:
Note: keep in mind screen can be run inside of xterm and other environments
to kill a range of screens:
for i in {3..13} ; do screen -p $i -X kill ; done
screen -h / --help (of course)
there are or can be /etc/screenrc ~/.screenrc files
screen -ls list screen sessions
screen -r ####.tty##. attach to detached screen
screen -r -DD violently try to grab or start a screen session
if none available doing whatever it takes
ESC == ^A normally (I usually redefine to ^O)
Some people like ^@ (which results in ^ as ESC)
ESC-? help
ESC-d detach (throw into background) current screen session
ESC-c open another virtual console
ESC-k kill the current virtual console (or you can just exit it)
ESC-t show system info (including time/date by default)
ESC-: open screen command prompt at bottom of console
(can enter commands normally mapped to keys etc.)
~ ':' ex-mode in vi or lynx, or w3m
ESC-p/n previous / next virtual console, cycling through them
ESC-# (#==0-9) select console #
ESC-A give virtual console a name (or view the current console name)
ESC-' pull up prompt to give a virtual console # or name & then switch
ESC-" pull up virtual console selection menu
ESC-[ put in copy / scroll mode
in copy/scroll mode:
('.' for a register, is interpretted as the paste buffer )
(~vi cursor movement)
c / C set left / right margins
or set a mark (first or second)
W grab word under cursor
Y mark whole line
y mark from start of line
x eXchange current cursor position and mark
a kick into append (to buffer) (instead of overwrite buffer ) mode
A " *AND* set a mark
J cycle through join/join with spaces/join with commas/multiple lines
| move to absolute column
g go to top of scroll buffer
ESC-] dump paste buffer to stdout
shared sessions with screen:
http://www.lowlevelmanager.com/search/label/pair%20programming
(courtesey local Perl Mongers chief)
http://www.caikesouza.com/blog/category/linux/
(see article for permissions set up)
(for user foo:)
screen -S pairprog
^A :multiuser on
^A :acladd bar
To make other read-only:
^A :aclchg bar -w "#"
(user bar:)
Then to join:
screen -x foo/pairprog
http://www.lafn.org/~aw585/gh.html
- has some examples of setting up a text console 'desktop',
and stuffing commands on startup into a program on startup
with screen
http://isthereanotherquestion.blogspot.com/2008/06/full-screen-ahead.html
some packages/programs to interact with screen (I don't use any of these):
iselect
screenie
byobu
Some similar programs:
tmux (~a ground up rewrite)
dvtm (simpler, more tiling oriented)
splitvt (very simple lite horizontal split)
fbterm (requires frame buffer)
-- Dallas E. Legan 2015 March 04