Screen Cheet Sheet: Difference between revisions
From Federal Burro of Information
Jump to navigationJump to search
No edit summary |
|||
Line 9: | Line 9: | ||
move control-a to control-w with an alias, in bash, like this: | move control-a to control-w with an alias, in bash, like this: | ||
== Alias == | |||
<pre> | <pre> | ||
Line 29: | Line 31: | ||
C-a : sessionname mysession | C-a : sessionname mysession | ||
== Screenrc == | |||
* cool hardstatus lines, in your .screenrc file: | * cool hardstatus lines, in your .screenrc file: | ||
Line 43: | Line 47: | ||
hardstatus alwayslastline | hardstatus alwayslastline | ||
hardstatus string "%{gk}[ %{G}%H %{g}][%= %{wk}%?%-Lw%?%{r}(%{W}%n*%f %t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m/%d %{W}%c %{g}]" | hardstatus string "%{gk}[ %{G}%H %{g}][%= %{wk}%?%-Lw%?%{r}(%{W}%n*%f %t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m/%d %{W}%c %{g}]" | ||
my current config: | |||
hardstatus on | |||
hardstatus alwayslastline | |||
hardstatus string "%{.bW}%-w%{.rW}%n %t%{-}%+w %=%{..G} %H %{..Y} %d/%m %C%a" | |||
defscrollback 10000 | |||
scrollback 10000 | |||
* scroll back, in your .screenrc file: | * scroll back, in your .screenrc file: | ||
Line 58: | Line 71: | ||
* meta-' - allows you to select a screen by number. | * meta-' - allows you to select a screen by number. | ||
=Screen and ssh-agent2= | |||
== Screen and ssh-agent2 == | |||
This process will only work with ssh-agent forwarding. | This process will only work with ssh-agent forwarding. |
Latest revision as of 15:40, 20 April 2018
first thing's first:
man screen
Do you have cool screen tricks?
move control-a to control-w with an alias, in bash, like this:
Alias
alias screen='screen -e ^Wa'
why would i want to do that? control-a means beginning of line by default. If you make screen's mate control-a you not longer have a "beginning of line" control sequence.
- good external page with some info here [1]
How to do other cool stuff?
- windows names and titles
screen -S "myscreename"
show up when you
screen -l
- change the session name:
C-a : sessionname mysession
Screenrc
- cool hardstatus lines, in your .screenrc file:
MC style:
hardstatus on hardstatus alwayslastline hardstatus string "%{.bW}%-w%{.rW}%n %t%{-}%+w %=%{..G} %H %{..Y} %d/%m %C%a"
Wide:
hardstatus on hardstatus alwayslastline hardstatus string "%{gk}[ %{G}%H %{g}][%= %{wk}%?%-Lw%?%{r}(%{W}%n*%f %t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m/%d %{W}%c %{g}]"
my current config:
hardstatus on hardstatus alwayslastline hardstatus string "%{.bW}%-w%{.rW}%n %t%{-}%+w %=%{..G} %H %{..Y} %d/%m %C%a" defscrollback 10000 scrollback 10000
- scroll back, in your .screenrc file:
termcapinfo xterm 'bc@:bs@'
useful key sequences
- meta-escape - pageup, pagedn to scroll back in the screen buffer ( you can use arrow keys and page up page down to scroll around)
- meta-space - next window
- meta-backspace - backwards through windows.
- meta-meta - previous window
- meta-A - allows you to rename a screen (if you can find a way to rename screens dynamically based on hostname, post it here for a chance to win a mars bar!)
- meta-" - allows you to select a screen by name.
- meta-' - allows you to select a screen by number.
Screen and ssh-agent2
This process will only work with ssh-agent forwarding.
Make sure you have a screenrc file in your home directory. If not copy the default.
cp /etc/screenrc ~/.screenrc
Now add the following line to ~/.screenrc and make sure ~/tmp exist.
setenv SSH2_AUTH_SOCK $HOME/tmp/socket
Next step is to add the following to .bashrc --> IM NOT SURE THIS WORKS
if [ -S $HOME/tmp/socket ]; then echo "ssh-agent2 socket already exist" else /bin/rm $HOME/tmp/socket ln -s $SSH2_AUTH_SOCK $HOME/tmp/socket fi
in bashrc: I KNOW THIS WORKS
if [[ $TERM != "screen" ]] ; then touch ~/.agent.tmp chmod 600 ~/.agent.tmp set | grep SSH > ~/.agent.tmp fi if [ -a ~/.agent.tmp ] ; then if [[ $TERM == "screen" ]] ; then . ~/.agent.tmp fi fi