How to Use ‘Tmux Terminal’ to Access Multiple Terminals Inside a Single Console

[‘

n

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

Tmux Manage Multiple Linux Terminals Inside Single Console
Tmux Manage Multiple Linux Terminals Inside Single Console

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

Tmux Terminal Indicator
Tmux Terminal Indicator

n

Next, you can:

n

    n

      n

    1. divide the terminal into as many panes as you want with Ctrl+b+" to split horizontally and Ctrl+b+% to split vertically. Each pane will represent a separate console.
    2. n

    3. move from one to another with Ctrl+b+left, +up, +right, or +down keyboard arrow, to move in the same direction.
    4. n

    5. 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.
    6. n

    7. show the current time inside the active pane by pressing Ctrl+b+t.
    8. n

    9. 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.
    10. n

    11. detach from the current session (thus returning to the regular terminal) by pressing Ctrl+b+d.
    12. n

    13. create a new session named admin with
    14. n

    n

n

# tmux new -s adminrn

n

    n

      n

    1. detach from the session named admin
    2. n

    3. reattach to the session named dev with
    4. n

    n

n

# tmux attach -t devrn

n

    n

      n

    1. Switch to admin again with
    2. 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

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

‘]