In this post, we will write about tmux, which is a terminal multiplexer, a lot like GNU Screen but much more powerful. If you spend a lot of time in a CLI, then you’ll love tmux.
What is tmux?
According to the tmux authors:
tmux is a terminal multiplexer. What is a terminal multiplexer? It lets you switch easily between several programs in one terminal, detach them (they keep running in the background) and reattach them to a different terminal. And do a lot more.
Installation
Installation is pretty straightforward if you have Ubuntu or any other Debian-based distribution you can install tmux with:
sudo apt-get install tmux
on CentOS/Fedora:
yum install tmux
and on MacOS:
brew install tmux
After installation, to start tmux run tmux
in your terminal window.
Configuration & Prefix key
The global configuration file is located at /etc/tmux.conf
and the user specific configuration file is located at ~/.tmux.conf.
The default prefix is Ctrl-b
but if you want to change it to Ctrl-a
(GNU Screen’s default prefix), you need to add the following code to your ~/.tmux.conf file:
unbind C-b set -g prefix C-a bind C-a send-prefix
Session Management
tmux is developed on a client-server model which means that the session is stored on the server and persist beyond ssh logout.
The following command will create a new session called mysession:
tmux new-session -s mysession
To attach to a session run:
tmux attach -t mysession
To list all session run:
tmux ls
You can kill a session using the following command:
tmux kill-session -t mysession
Frequently used sessions commands
Ctrl-b d Detach from the current session Ctrl-b ( Go to previous session Ctrl-b ) Go to next session Ctrl-b L Go to previously used session Ctrl-b s Choose a session from the sessions list
Windows (tabs) Management
Each session can have multiple windows. By default all windows are numbered starting from zero.
Frequently used windows (tabs) commands
Ctrl-b 1 Switch to window 1 Ctrl-b c Create new window Ctrl-b w List all windows Ctrl-b n Go to next window Ctrl-b p Go to previous window Ctrl-b f Find window Ctrl-b , Name window Ctrl-b w Choose a window from the windows list Ctrl-b & Kill the current window
Panes Management
With tmux, you can split windows into multiple panes.
Frequently used panes commands
Ctrl-b " Split the pane vertically (top/bottom) Ctrl-b % Split the pane horizontally (left/right) Ctrl-b q Show pane numbers Ctrl-b x Kill the current pane Ctrl-b + Break pane into window Ctrl-b - Restore pane from window Ctrl-b left Go to the next pane on the left Ctrl-b right Go to the next pane on the right Ctrl-b up Go to the next pane on the top Ctrl-b down Go to the next pane on the bottom Ctrl-b o Cycle through all panes Ctrl-b ; Go to previously used pane