01. Introduction to tmux & Installation

Why tmux?

Let's face it - you're a busy person. When you surf the net, you have at least five tabs open. In one tab, you have Debussy's Clair de lune playing as background music, while in another, you have 10 messages from Facebook friends who want to catch up with you. And then you're on Reddit, get up-to-date with the latest tech news and cat memes. And finally, here, you're studying to be a pro-Linux users so you can swoon the ladies. Modern day browsers allow you to multi-task and organize your workspace within the same windows - how convenient!

Multiple tabs open in Google Chrome browser.
Multiple tabs open in Google Chrome browser.

But does the terminal offer similar features? With tmux (short for terminal multiplexer), Yes! As defined on its official website, tmux enables a number of terminals, each running a separate program to be created, accessed and controlled from a single screen.

Advantages of Using tmux

"But wait!" I hear you say, "I already have iTerm installed on my Mac OS X, which allows me to create new tabs and split window panes. Do I still need to learn tmux?" iTerm is great in that it gives you a slew of features for customizing and making the most out of the terminal. However, once you leave your precious Mac OS X (such as SSHing into a Linux machine), you've lost all your iTerm features.

Tmux, on the other hand, is completely portable, and its features are available from within any UNIX-like command line! Furthermore, there are other advantages of tmux that trumps the use of a natively installed terminals.

  • Multi-tasking: You can use one pane to display all current processes (using something like top), while other windows can be used to administer actual commands.
  • Availability: tmux is a shell program, meaning it can be installed and run directly within the command line. This allows you to run tmux on remote servers.
  • Multiple interfaces: There's no need to open up multiple terminal interfaces and SSH into a host server from each one to have multiple command lines.
  • Persistence: All tmux sessions can be saved in-state as sessions. So if you're at an airport working on important files on a remote server and your flight is about to take off, you can save exactly where you were and come back to it once you've landed.
  • Shareable: You may share sessions, meaning if someone else is logged in with you, you can see what the other is typing. This can be useful for paired programming, which is a technique where one programmer suggests to the other what to do, while the other programmer runs the commands.
  • The WOW factor: You'll look like a pro Linux user to any onlookers.

Installation

Before getting to the actual commands, let's install tmux from either a remote server or your local computer.

If you're running Mac OS X, grab the Homebrew Package Mananger, and run a simple brew install command.

$ brew install tmux

On Ubuntu, use apt-get, and for CentOS, use yum. For arch, use pacman

# Debian based (Ubuntu)
$ sudo apt-get install tmux
# CentOS or Fedora
$ sudo yum install tmux
# Arch
$ sudo pacman -S tmux

Getting Started with tmux

Now if you type tmux on the command line, you should have a tmux session running, as indicated by a green status bar at the bottom of the window. Before we move on, print out any tmux cheatsheet and tape it to your wall next to the monitor.

New tmux session with a green status bar at the bottom
New tmux session with a green status bar at the bottom

Sessions, Windows and Panes

tmux separates each terminal interface into three categories: sessions, windows and panes. Panes are parts of a window, while windows make up a session. By separating multiple interfaces in three different layers, we're able to better organize our workspace.

Tmux organizes its terminals into sessions, windows and panes.
Tmux organizes its terminals into sessions, windows and panes.

Keystrokes and Prefix Key

tmux comes with subcommands that are bound to certain keys. Below is the help page, where you can see the list of special keys.

A complete listing of all available keystrokes by typing in the question mark.
A complete listing of all available keystrokes by typing in the question mark. To access this page, run tmux and type <Ctrl-b> ?.

Before typing in any special key, you must input the prefix. By default, tmux's prefix is Ctrl-b. So for example, if we want to split a window horizontally, we type <Ctrl-b>, then %. There is a way in which we may change the prefix, which we'll discuss later in our configurations lesson. But for now, let's move onto how we can manage panes!

Take your Linux skills to the next level!

System Admin Handbook

Take your Linux skills to the next level! Try Linux & UNIX

This book approaches system administration in a practical way and is an invaluable reference for both new administrators and experienced professionals. It details best practices for every facet of system administration, including storage management, network design and administration, email, web hosting, scripting, and much more.

$ Check price
74.9974.99Amazon 4.5 logo(142+ reviews)

More Linux & UNIX resources

Aching back from coding all day?

Foam Seat Cushion

Aching back from coding all day? Try Back Problems

This foam seat cushion relieves lowerback pain, numbness and pressure sores by promoting healthy weight distribution, posture and spine alignment. Furthermore, it reduces pressure on the tailbone and hip bones while sitting. Perfect for sitting on the computer desk for long periods of time.

$ Check price
99.9599.95Amazon 4.5 logo(9,445+ reviews)

More Back Problems resources

Ad