Install and configure tmux

We’ll show you how to install and configure tmux. 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.

1. 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.

2. tmux installation

Installation is pretty straightforward if you have Ubuntu or any other Debian-based distribution you can install tmux with:

3. tmux 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

4. tmux 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

5. tmux Windows (tabs) Management

Each session can have multiple windows. By default all windows are numbered starting from zero.

6. tmux 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

If you use one of our VPS hosting services, do not hesitate to ask our expert Linux admins if you need help getting started with Tmux. They are available 24×7 and will take care Installation and configuration of tmux immediately.

PS. If you liked this post, on how to Install and configure tmux, please share it with your friends on the social networks using the buttons below or simply leave a comment in the comments section. Thanks.

Can someone explain how they use sessions and windows and panes?
It feels like one too many levels, why both sessions AND windows?
I’m willing to believe there is a use case, but for the life of me I can’t come up with one.

I use sessions for different projects, and windows and panes within a project. For example, I’ll have a session for my puppet code, and a session for a bash script I’m working on. Within the puppet session, if I’m going to work on a new module, I open a new window. If I’m writing code in vim, I usually split off a pane so I can test running it next to it. Having the error output next to the code makes debugging really fast.

In a lot of ways, it basically acts like a tiling window manager for the terminal. The advantage over a window manager is that the whole layout can be accessed remotely. So if I’m working on a project from work, I can quickly resume working on the project from my home computer after SSH’ing in and reattaching to the tmux session.