|
| 1 | +title: Terminal Multiplexers |
| 2 | +category: page |
| 3 | +slug: terminal-multiplexers |
| 4 | +sortorder: 0211 |
| 5 | +toc: False |
| 6 | +sidebartitle: Terminal Multiplexers |
| 7 | +meta: Terminal multiplexers can run several shells in a single terminal as well as attach, detach and move sessions from one computer to another. |
| 8 | + |
| 9 | + |
| 10 | +# Terminal Multiplexers |
| 11 | +A terminal multiplexer provides separation between where a [shell](/shells.html) |
| 12 | +is running and where the shell is accessed. Each shell can be running on a |
| 13 | +different computer, but to the developer it does not matter where each |
| 14 | +shell is being executed. |
| 15 | + |
| 16 | +For example, a developer could have many shells running within a |
| 17 | +terminal, like the following screenshot. |
| 18 | + |
| 19 | +<img src="/img/visuals/terminal-multiplexer-tmux.jpg" width="100%" alt="tmux terminal multiplexer with many panes." class="shot"></a> |
| 20 | + |
| 21 | +The above terminal window is using the tmux terminal multiplexer implementation |
| 22 | +with two windows and three panes. |
| 23 | + |
| 24 | + |
| 25 | +## Why are terminal multiplexers awesome? |
| 26 | +Developers gain greater control over the usage of their shells by working |
| 27 | +with a terminal multiplexer. |
| 28 | + |
| 29 | +Shells are typically executed locally on a computer but terminal multiplexers |
| 30 | +allow one or more virtual shells to be run within a single terminal. Shells |
| 31 | +can also be left running within the multiplexer and attached to again from a |
| 32 | +different machine. |
| 33 | + |
| 34 | +Terminal multiplexers are used by developers to run many virtual shells |
| 35 | +within a single terminal. These shells can be run via a mix of local, |
| 36 | +remote, containerized and virtualized resources. The shells can also |
| 37 | +be persisted and moved while running from one computer to another. |
| 38 | + |
| 39 | + |
| 40 | +### Terminal multiplexer implementations |
| 41 | +Many terminal multiplexer implementations exist, including: |
| 42 | + |
| 43 | +* tmux |
| 44 | +* screen |
| 45 | +* byobu |
| 46 | +* pymux |
| 47 | + |
| 48 | + |
| 49 | +### Terminal multiplexer resources |
| 50 | +* [Terminal multiplexers](http://linuxcommand.org/lc3_adv_termmux.php) |
| 51 | + provides a wonderful overview of the subject, including the history |
| 52 | + of various implementations and why you would want to use one for |
| 53 | + development. |
| 54 | + |
| 55 | +* [Terminal multiplexer commands](http://hyperpolyglot.org/multiplexers) |
| 56 | + is a comparison of equivalent key command in the two most popular |
| 57 | + implementations, tmux and screen. |
| 58 | + |
| 59 | +* [Byobu vs. GNU Screen vs. tmux — usefulness and transferability of skills](https://superuser.com/questions/423310/byobu-vs-gnu-screen-vs-tmux-usefulness-and-transferability-of-skills) |
| 60 | + gives solid answers on this (now closed) question of the usefulness of |
| 61 | + the major terminal multiplexer implementations. |
| 62 | + |
0 commit comments