screen
From Peyton Hall Documentation
GNU screen is a "terminal multiplexer", a program that allows you to have more than one shell in a single terminal window. It is very flexible and highly configurable, and arguably its best feature is the ability to detach a session and leave all the child programs and shells running, reattaching it at a later time (for example, after logging in from another location).