Showing posts with label gnu. Show all posts
Showing posts with label gnu. Show all posts
Tuesday, September 27, 2016
The power of GNU screen
The power of GNU screen
Ever feel like the whole world knows something really useful except you? I went to a tech conference the other day and someone mentioned the screen command. Wow...like where have you been all my life?!
In a nutshell: screen allows you to start a long-running process and then "detach" and shut down your computer while the command continues to run on the server. Very cool. Heres a quickstart guide:
perform initial configuration by opening ~/.screenrc and add the following:
# enable shell in screenin terminal, verify screen is installed:
shell -$SHELL
# turn off flash notification
vbell off
# clear terminal when exit editor or screen
altscreen on
# set title
termcapinfo xterm*|rxvt*|kterm*|Eterm* hs_ts=E]0;:fs=07:ds=E]0;07
hardstatus string "%h"
hardstatus off
# set footer
caption always "%{= kw} %=%-w%{= bk}%50>%n %t%{-}%+w%<"
screen -vin terminal, open a new session
screenin screen (has purple box in footer), create new session
Ctrl+a cin screen, switch to another session (where # refers to the session number 0, 1, 2, etc.)
Ctrl+a #in screen, switch to next running session (use p for previous)
Ctrl+a nin screen, list the running sessions
Ctrl+a "in screen, detach from the current session
Ctrl+a din terminal, list the running sessions
screen -lsin terminal, resume a running session
screen -r #####
P.S. You can change your hardstatus string value to a variety of things to display in your terminal title. However, adding the user name is tricky. If you use %h you get the default prompt, which likely contains some variation of user@domain, but if you want to create a custom title (say, server name ~ user name), then things get a bit harder. Most guides will tell you to include ${USER} in your string, which does in fact work...unless you sudo su to a different user account. Argh! - it still shows your original login username! To fix this, add the following to each accounts ~/.bashrc or ~/.bash_profile file (where the pink text is your custom title):
if [ "$TERM" = "screen" ] ; then PS1=$PS1"[e]0;${HOSTNAME%%.*} ~ ${USER}a]" ; fi
P.P.S. A popular alternative to screen is tmux
Go to link download
Subscribe to:
Posts (Atom)