 <p>When doing remote development, I use <a href="http://gnu.org/software/screen" rel="nofollow noreferrer"><code>screen</code></a> which provides multiple virtual remote terminals available at the press of a couple of keys. This is indispensable for me. Not only does it provide virtual terminals, but your session is preserved on the server if your connection drops for any reason.</p> <p>See the <a href="http://stackoverflow.com/questions/70614/gnu-screen-survival-guide">GNU Screen Survival Guide</a> question for more information about getting started with <code>screen</code>.</p> <p>I usually have one terminal open for source control operations, one for editing, one for compiling (I just have to switch to it and hit UpArrow+Enter), and one for debugging. Depending on the environment and application I'm working on, I may have more or fewer than this, but that's the general layout.</p>