[‘
System administrators often need to work on multiple consoles and thus they appreciate the ability to switch from one to another in a snap with a quick keyboard shortcut or mouse click.
n

n
To do this, in GNOME-based desktop Linux distributions you can install a tool called Terminator, which provides an efficient way of splitting a single window into multiple terminals for different tasks.
n
Terminator – Manager Multiple Terminal Windows for Multiple Linux Tasks
n
However, there are other options that you will need to consider, specially if you’re in front of a CLI-only server or if the X Windows System has crashed in your desktop distribution. Additionally, certification programs such as the Linux Foundation Certified System administrator, the Linux Foundation Certified Engineer only provide a command line interface for their respective exams.
n
In this article we will introduce you to tmux (short for Terminal MUltipleXer), a simple and modern alternative to the well-known GNU screen utility, and will enable you to access and control a number of terminals (or windows) from a single terminal. This tool will work both in a CLI-only environment and within a terminal emulator in a desktop distribution.
n
In addition, being able to create multiple tmux sessions can help you organize your work into different areas to increase your productivity.
n
Update: Here is another article about wemux, that improves tmux to make multi-user terminal easier and more powerful. It enables users to start a new wemux server and have other users join in either, read more about it:
n
Setup Wemux with Tmux/Terminator to Allow Remote Viewing of Your Linux Terminal
n
Installing tmux Terminal Multiplexer in Linux
n
To install tmux, you can use your standard package management system.
n
For CentOS/RHEL/Fedora (included in the base repository):
n
# yum update && yum install tmuxrn
n
Debian (from the admin packages section of the stable version) and derivatives:
n
# aptitude update && aptitude install tmuxrn
n
Once you have installed tmux, let’s take a look at what it has to offer.
n
Getting Started with tmux Terminal Multiplexer
n
To start a new tmux session (a container for individual consoles being managed by tmux) named dev, type:
n
# tmux new -s devrn
n
At the bottom of the screen you will see an indicator of the session you’re currently in:
n

n
Next, you can:
n
- n
- divide the terminal into as many panes as you want with
Ctrl+b+"
to split horizontally andCtrl+b+%
to split vertically. Each pane will represent a separate console. - move from one to another with
Ctrl+b+left
,+up
,+right
, or+down
keyboard arrow, to move in the same direction. - resize a pane, by holding
Ctrl+b
while you press one of the keyboard arrows in the direction where you want to move the boundaries of the active pane. - show the current time inside the active pane by pressing
Ctrl+b+t
. - close a pane, by placing the cursor inside the pane that you want to remove and pressing
Ctrl+b+x
. You will be prompted to confirm this operation. - detach from the current session (thus returning to the regular terminal) by pressing
Ctrl+b+d
. - create a new session named admin with
- n
n
n
n
n
n
n
n
n
n
# tmux new -s adminrn
n
- n
- detach from the session named admin
- reattach to the session named dev with
- n
n
n
n
n
# tmux attach -t devrn
n
- n
- Switch to admin again with
- n
n
n
n
# tmux switch -t adminrn
n
All the examples above are illustrated in the following screencast. Please take a minute to watch it and practice before proceeding:
n
n
n
Note that when there are no more panes left in a tmux session, such session is terminated.
n
Changing tmux Terminal Key Bindings
n
In tmux, the combination of keys used to perform a certain action is called key bindings. By default, key bindings consists of a combination of the Ctrl key
and other(s) key(s), as we explained in the previous section.
n
If you find the default key bindings used in the preceding examples inconvenient, you can change it and customize it on either 1) a per-user basis (by creating a file named .tmux.conf
inside each user’s home directory – do not omit the leading dot in the filename) or 2) system-wide (through /etc/tmux.conf
, not present by default).
n
If both methods are used, the system-wide configuration is overridden by each user’s preferences.
n
For example, let’s say you want to use Alt+a
instead of Ctrl+b
, insert the following contents in one of the files mentioned earlier as needed:
n
unbind C-brnset -g prefix M-arn
n
After saving changes and restarting tmux, you will be able to use Alt+a+"
and Alt+a+t
to split the window horizontally and to show the current time inside the active pane, respectively.
n
The man page of tmux provides additional details and further suggestions for convenient key bindings that I’m sure you’ll find interesting to try.
n
Summary
n
In this article we have explained how to use tmux to divide your terminal or console window into multiple panes that you can use for different purposes.
n
I hope you have found this tool useful (actually, I’d love to hear that!), feel free to drop us a line using the form below. Do the same if you have any comments, questions or suggestions about this article.
n
Reference: https://tmux.github.io/
n
‘]