I’ve spent the last couple days picking up new projects to look into (backups, cloning, network monitoring), which I plan to give some space on the blog as I work on.
For the moment, I spent some time today trying to compare the two most popular terminal multiplexers for *nix systems, screen
and tmux
.
The largest benefit of a terminal multiplexer to me is how it abstracts a terminal session and network connection. Both screen
and tmux
allow you to start a session, detach from that session (possibly accidentally), and then reattach at a later time right where you left off and with all your programs still running. This would have saved me hours upon hours of time in previous positions I’ve held. The Windows desktop would crash for whatever reason, or just be in serious need of a restart, and I’d loose a dozen SSH sessions to half a dozen machines, then I’d spend 20 minutes reconnecting and getting back into place, trying to figure out where I had left off. If I had known about (and had available) a terminal multiplexer, I could open one connection to each machine, start a screen
or tmux
session, spawn additional shells inside there, and if I lost my connection, reconnect and pick up EXACTLY where I left off.
I spent an hour or so today trying to compare screen
and tmux
, to decide which I would make my preferred terminal multiplexer.
For basic operations they’re virtually identical in operation. I would be happy (and able) to use either for the basics, and probably will. For that reason, I won’t say that my experience with one or the other affected my decision that I would try to stick with tmux
in the future.
There a few reasons I’ve decided to side with tmux
rather than screen
. The first to come to mind is the BSD licensing. tmux
is BSD, screen GPL, and I have better feelings about the BSD license. Second, various blogs and articles around the web over the past year have written about the stagnation of the screen
project. Slow or non-existent patches and updates, crufted code, and a complex configuration file. It seems to me that tmux
is the future, and even if it never replaces screen
, it has a strong presence and is here to stay, which is what will really matter.
Further Reading:
dayid’s screen and tmux cheat sheet
TMUX – The Terminal Multiplexer (Part 1)
Is tmux the GNU Screen killer?