So what is it?
I can tell you that Tmux stands for terminal multiplexer, but what does that actually mean? Well, when you login to your terminal, you're actually creating a "pseudo login". This typically equates with one window. If you want to open a new window or tab, you must create another pseudo login!
Well, Tmux does it differently.
When you open a terminal session, you can spawn one or more pseudo terminal sessions. That's right — it is a multiplexer (mux) for your terminal (T). In other words, it's Tmux.
That all sounds fun and all, but what's the point? What can I do that I couldn't do before? For starters, you can disconnect from these pseudo terminal sessions and return to them later. They just keep running — whether that be from the same terminal session or a different one — the sessions and the apps you're running inside will still be there.
It doesn't stop there. We get the following.
- Persistence (as seen above) — disconnect, reconnect — those apps will still be there. This is particularly great when dealing with a remote system.
- Session sharing! — Tmux makes a great tool for pair programming. No more leaning over someone's keyboard in person (yay for remote work anyway).
- Multiple windows and panes — when working on an app involving an API and frontend, being able to jump between windows and panes for each keeps things grouped where appropriate and split up to keep focus on what matters at the moment.