Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'd like to have few virtual session in one putty window and change between them quickly. What's the best way to do that? screen? I know I can detach with ctrl+ad and then reattach to a different session, but it's seems like a lot of typing.

share|improve this question

Just to expand on what Ansgar said in case you aren't very familiar with gnu screen, Having multiple "windows" in a single screen session will likely accomplish what you need.

ctrl+a, c will create a new "window" in your active screen session. You can switch between multiple windows (as Ansgar indicated) with ctrl+a, n for the next window, and ctrl+a,p for the previous window.

ctrl+a," will give you a list of all your open windows.

Using these easy shortcuts will let you switch between different terminals very quickly and easily, accomplishing your goal without using multiple screen sessions.

If you add the following line to ~/.screenrc it will always display your open windows and which one is selected, so you don't need to keep track of which window you're on by remembering.

hardstatus alwayslastline '%{= kg}[ %{G}%H %{g}][%= %{= kB}%?%-Lw%?%{+b r}(%{G}%n*%f %t%?(%u)%?%{r})%{-b B}%?%+Lw%?%?%= %{g}%]'

This is the hardstatus line that I like to use, but it's completely customizable (see man page or search google for "gnu screen hardstatus").

There are a ton of other things you can do with it (naming the different open windows for example), so it's worth reading some tutorials.

Here are a couple I found with a quick search:

And of course the most useful of all:

# From your terminal:
$ man screen

Hope that helps.


share|improve this answer

Yes, screen is most likely the way to go. Ctrl+a,n will take you to the next window, Ctrl+a,p to the previous one. Ctrl+a,0..9 will allow you to switch to a particular screen.

share|improve this answer
You can set up much faster keybindings, like F11 for prev, F12 for next window. And change the screen escape character from ^a to something else, so it's not ridiculously annoying to use emacs-style line editting in bash, anything else. I use ^t. – Peter Cordes Feb 6 '15 at 13:24

What the others say is correct. I just want to mention tmux is an alternative to screen. They have very similar commands.

Both screen and tmux offer multiple windows for a running session, and this is probably what you want. tmux additionally offers jumping between multiple sessions (each having their own windows). You'd need that very rarely.

Here are some links to the documentation of screen and a crash course about tmux.

share|improve this answer

After so much time I made a Script to work around this completely missing feature. First of all it needs a fifo:

mkdir ~/.screen
mkfifo ~/.screen/pipe

This named pipe is useful for the communication between the detatched session and the "Main-without-screen" session.

File sc ( in $PATH ):


if [ ! -r $CONFIGFILE ] ; then
   echo "Configurazione per $1 Assente" >&2
   exit 1

exec 3<> ~/.screen/pipe

if [ "$STY" != "" ] ; then
   screen -d "$STY"
   echo "$1" >&3
   screen -r "$1" 2>/dev/null || screen -S "$1" -c $CONFIGFILE
   while true ; do
      read line <&3
      screen -r "$line" 2>/dev/null || screen -S "$line" -c ~/.screen/"$line""rc"

An Example of a "CONFIGFILE" is: ~/.screen/Monitorrc

layout new Monitor

screen -t "bash" bash --login
split -v
focus next
focus bottom
screen -t "cv" sh -c "watch /usr/bin/cv -w"
focus bottom
screen -t "sys.log" sh -c "tail -F /var/log/sys.log"
focus up
focus up
resize 25
screen -t "top" sh -c "top"
focus left

The result is: when you want to launch screen type:

sc Monitor

or another sessionrc you like to invent, I use the Session Work for various stuff

Ex: ~/.screen/Workrc

layout new Work  
screen -t "bash" bash --login  

Now we are in the Session Monitor, when we type:

sc Work

the session Monitor detaches itself and write "Work" to the namedpipe. Consequently the first sc script goes forward and attach the session "Work".
The sc invoked from the session Monitor close.

When we detach all Sessions we are in a infinite loop so we have to do Ctrl-c to exit.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .