Take a look a 'screen'. It has a huge manpage and a ton of options, but once you wade through them it's fairly simple to use.
You can start it with just 'screen'. Issue whatever command you want. Disconnect. Come back later, login, and reattach with either 'screen -r' or 'screen -d -r'. It gives you back your screen like you never left.
You might want to experiment with your $TERM environmental variable. I do an 'export TERM=xterm' before I enter 'screen'.
'screen' s handy too, if you have a flaky vpn connection between your ssh client and the system you are accessing.
And if you have something that is long running, I've found this to work better than 'nohup'ing (or 'disown'ing) a process.