Screen

From Bitpost wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Keyboard-driven copy-paste

You can do keyboard-driven copy-paste from terminal buffer using screen!

I'm still perfecting it - PLEASE KEEP GOING!

  • Ctrl-A-esc to get into buffer navigation mode
  • space to mark the start of the copy buffer (non-column)
  • space to mark the end of the copy buffer
  • then you can use Ctrl-A-] to paste - wait, wut? useless... what about X buffer?
    • add this to "your screen .rc file" to send buffer to X clipboard too! See this SO.
bindkey -m ' ' eval 'stuff \040' 'writebuf' 'exec sh -c "/usr/bin/pbcopy < /tmp/screen-exchange"'


Always use screen when ssh'ing

Best to accomplish this with a script. This will also allow us to provide host-specific background graphics and profile colors, sweeeeet!

   mah-haus-provided ssh commands!
       mh bitpost {screenname}
           save term background/profile
           change term background/profile - with host pic in upper right!!
           use this script to ssh bitpost:
               https://stackoverflow.com/a/1075956/717274
               also:
                   On my Ubuntu system (10.4) I had to modify the regular expression to account for the date/time info it prints next to each session.
                   if(/^\s*(\d+)\.(\S+)\s+(([^)]*))\s+(([^)‌​]*))/) { ($num, $tag, $status) = ($1, $2, $4); –
               or:
                   ssh -t user@some.domain.com /usr/bin/screen -xRR
                   -t is needed to force terminal creation (even tho sending a command)
                   -x
                   -R restore existing or create if none
                   # see MY screen settings with at to see what i really want

               better to let screen do the ssh?
                  screen -S 1-9 -p 0 -X screen -t Remote ssh 19

           reset term background/profile

Screen Session

I always use screen session names, and show them if set in PS1 (see .bashrc_ui).

Then using this will create the session if needed or connect if exists. Perfect.

#!/bin/bash
# -R will simply reattach if found, otherwise run as if a new request.
screen -d -R -S #sessionname# #optionalcommand#