Note: This post is written with the help of ChatGPT (Dec 15 version).
What is Tmux
Tmux is a terminal multiplexer for Unix-like systems. Similar to Linux Screen, Tmux allows you to create, manage, and easily switch between multiple terminal sessions within one single terminal window or console. It also has features such as the ability to detach and reattach sessions, split terminal windows into panes, and more. It is useful for managing multiple terminal sessions and for running long-running commands in the background while you do other work in the same terminal window.
Tmux vs. Screen
One difference between the Tmux and Screen is that Tmux is more modern and has a more user-friendly interface, with support for mouse operations and better window and pane management. Screen, on the other hand, is an older tool that is more lightweight and simple, and does not have as many features as Tmux.
Another difference is that Tmux is more configurable and extensible, with support for custom scripts and plugins, while Screen is more bare-bones and does not have as much support for customization.
Ultimately, the choice between Tmux and Screen depends on your personal preferences and needs. Both are powerful tools that can be useful in different situations.
To learn more about the usage of Screen, please read another post in this blog: The Element of Linux Screen.
Tmux common usages
Install tmux on Mac
brew install tmux
Start a new session
tmux new: start a session, the session gets an automatically generated name.
tmux new -s <session name>: start a session with specified name.
List tmux sessions
Kill a tmux session
tmux kill-session: kill the last session.
tmux kill-session -t <session name>: kill the session with specified name.
Attach to session
tmux attach-session: attach to the last session.
tmux attach-session -t <session name>: kill the session with specified name.
tmux a: shortcut of tmux attach-session
Working with tmux windows
When you start a new Tmux session, by default, it creates a single window with a shell in it. You can create more windows and switch between them.
Ctrl+b c: Create a new window
Ctrl+b w: Show window list and choose from it
Ctrl+b n: Move to the next window
Ctrl+b p: Move to the previous window
Ctrl+b 0: Switch to window 0
Ctrl+b ,: Rename the current window
Ctrl+b &; Kill the current window