I am fairly familiar with Linux, I’ve been using different distros for some years now and have done some config editing here and there. I am also a web developer and use the terminal quite a lot and so I always stumble on people’s recommendation to use tmux and how good it is, but I never really understood what it does and, in layman’s terms, how can it be useful and for what use cases.
Can you guys please enlight me a bit on this?
Thank you.
Edit: if my phrasing is a bit awkward or confusing I apologize since I am not an English native speaker. (Maybe that’s why I never fully grasped what tmux is from other explanations xD)
Edite: Ok, just to clarify, my original struggle was to understand what made tmux different from using some terminal app and just split the screen xD
I guess the best analogy is a “virtual desktop” but for the terminal.
It’s is a program which runs in a terminal and allows multiple other terminal programs to be run inside it.
Each program inside tmux gets its own “page” or “screen” and you can jump between them (next-screen, previous-screen etc).
So instead of having multiple terminal windows, you only have one and switch the screen/page inside it.
You can detech from the program and leave it running - so next time you log on to the server, you can re-attach to it and all your screens/sessions are still there.
Not super useful on your local machine - but when you have to connect to a remote server (or several) is really shines. Especially if you have to go through a jumphost. You can just connect to your jumphost, start tmux, then create a “screen” for each server you need to connect to - do your stuff and deattach. Next time, just re-attach and all your stuff is there.
Did that help?
Ok, now I guess I am seeing the value of it, specially with the “virtual desktop” analogy and the remote scenario, since I need to do some of it at work and having everything as I left it last time will be nice. Thank you!
plus, if you disconnect in the middle of a command execution it doesn’t get killed (very important for system updates for example)
I use the “being able to detach and re-attach” capability to run my Minecraft server on my in-home server box.