サーバーで長時間かかる処理を流している最中にSSHが切れて、作業がすべて消えてしまった——そんな経験はないでしょうか。あるいは、エディタとログ監視とコマンド実行のために、ターミナルのタブを何枚も行き来して消耗していないでしょうか。
tmux(ティーマックス)は、こうしたターミナル作業のストレスを根本から解消してくれるツールです。1つの画面を自由に分割し、SSHが切れても作業を保持し、いつでも同じ状態に戻れる——一度慣れると、tmuxなしの作業には戻れなくなるほど強力です。
この記事では、tmuxを初めて触る人でも全体像を理解できるように、基本的な概念から導入、日常的に使う操作、そして自分好みに育てる設定ファイルの書き方までを、初心者向けに丁寧に解説していきます。
[目次を開く]
tmuxとは何か
tmuxは「ターミナルマルチプレクサ(terminal multiplexer)」と呼ばれるツールです。マルチプレクサとは「多重化するもの」という意味で、その名のとおり1つのターミナル画面の中に複数の作業スペースを多重化して持てるのがtmuxの役割です。
ふだんターミナルを使っていると、「コマンドを打つ画面」と「ログを眺める画面」と「エディタの画面」を別々のタブやウィンドウで開き、行ったり来たりすることになります。tmuxを使うと、これらを1つの画面の中で分割表示したり、瞬時に切り替えたりできます。
さらに重要なのは、tmuxの作業状態(セッション)はターミナルを閉じても、SSH接続が切れてもサーバー側で生き続けるという点です。あとから同じ状態に「再接続」できるため、リモート作業の安心感が大きく変わります。
なぜtmuxを使うのか
tmuxを使う理由は、大きく3つに整理できます。
1. SSHが切れても作業が消えない
リモートサーバーで時間のかかるビルドやデータ処理を実行しているとき、ネットワークが不安定になってSSHが切断されると、通常はそのプロセスごと失われてしまいます。tmuxの中で実行していれば、接続が切れても処理はサーバー側で動き続け、再接続後に何事もなかったように作業を再開できます。
2. 1画面を自由に分割できる
エディタ・ログ・コマンド実行を縦横に分割して同時に表示できます。タブの切り替えで失われがちな「全体の見通し」を保ったまま作業できるのは、生産性に直結します。
3. 作業環境を再現・永続化できる
「このプロジェクトはエディタとサーバー起動とログの3分割」といったレイアウトを、いつでも同じ形で立ち上げられます。設定ファイルやプラグインを使えば、自分専用の作業環境を育てていけます。
似たツールにscreenがありますが、tmuxはより新しく、画面分割やカスタマイズ性に優れているため、これから学ぶなら基本的にtmuxを選んで問題ありません。
tmuxのインストール
tmuxは主要なOSのパッケージマネージャから簡単に導入できます。お使いの環境に合わせてインストールしてください。
macOSでのインストール
macOSではHomebrewを使うのが最も簡単です。
brew install tmux Linuxでのインストール
Debian / Ubuntu系ではaptを使います。
sudo apt update
sudo apt install tmux RHEL / CentOS / Fedora系ではdnf(古い環境ではyum)を使います。
sudo dnf install tmux WSL(Windows)でのインストール
Windowsでは、WSL(Windows Subsystem for Linux)上のLinuxディストリビューションにインストールするのが一般的です。Ubuntuであれば、Linuxと同じ手順で導入できます。
sudo apt update
sudo apt install tmux インストールの確認
インストールが終わったら、バージョンを確認しておきましょう。
tmux -V tmux 3.x のようにバージョンが表示されれば成功です。
tmuxの3つの基本概念:セッション・ウィンドウ・ペイン
tmuxを使いこなすうえで、最初に押さえておきたいのがセッション・ウィンドウ・ペインという3つの階層構造です。この関係さえ理解できれば、tmuxの操作は一気に分かりやすくなります。
graph TD
S[セッション<br/>作業全体のまとまり] --> W1[ウィンドウ1<br/>タブのようなもの]
S --> W2[ウィンドウ2]
W1 --> P1[ペイン<br/>分割された画面]
W1 --> P2[ペイン]
W1 --> P3[ペイン]
W2 --> P4[ペイン] セッション(Session)
作業全体のまとまりです。tmuxを起動するとまず1つのセッションが作られます。SSHが切れても生き続けるのはこのセッション単位で、プロジェクトごとにセッションを分けるのが基本的な使い方です。
ウィンドウ(Window)
セッションの中にある「タブ」のようなものです。1つのセッションの中に複数のウィンドウを持て、画面下部のステータスバーにタブのように並んで表示されます。
ペイン(Pane)
1つのウィンドウを縦や横に分割した、個々の小さな画面領域です。左にエディタ、右上にサーバー、右下にログ、といったレイアウトはこのペイン分割で実現します。
つまり、セッションの中にウィンドウがあり、ウィンドウの中にペインがあるという入れ子構造になっています。
すべての操作の起点「プレフィックスキー」
tmuxの操作で最も重要なのがプレフィックスキーという考え方です。tmuxへの命令は、ほとんどが「プレフィックスキーを押してから、続けて別のキーを押す」という2段階で行います。
デフォルトのプレフィックスキーは Ctrl + b です。本記事では、これを C-b と表記します。
たとえば「ウィンドウを新しく作る」操作は、次のように行います。
-
Ctrlを押しながらbを押す(指を離す) - 続けて
cを押す
この一連の操作を、本記事では C-b c と書きます。C-b を押した直後は「tmuxがコマンドを待っている状態」になり、そこで押したキーがtmuxへの命令として解釈される、とイメージすると分かりやすいでしょう。
なお、この Ctrl + b は少し押しにくいため、後述する設定ファイルで Ctrl + a などに変更する人が多いです。まずはデフォルトのまま操作に慣れていきましょう。
基本操作①:起動・デタッチ・アタッチ
まずはtmuxの「出入り」を覚えます。ここがtmux最大のメリットである「作業の永続化」の核心です。
tmuxを起動するには、ターミナルで次のコマンドを実行します。
tmux 画面下部に緑色のステータスバーが表示されれば、tmuxのセッションに入った状態です。
セッションから抜けても作業を残しておきたいときは、デタッチ(detach)を使います。C-b d を押すと、セッションを生かしたまま元のターミナルに戻ります。この間、セッション内のプロセスは動き続けています。
デタッチしたセッションに戻る(アタッチ/attach)には、次のコマンドを使います。
tmux attach 複数のセッションを使い分けたい場合は、名前を付けて起動すると管理が楽になります。
# 名前を付けて起動
tmux new -s work
# 名前を指定してアタッチ
tmux attach -t work 現在動いているセッションの一覧は、次のコマンドで確認できます。
tmux ls 起動・デタッチ・アタッチに関する代表的な操作をまとめます。
| 操作 | コマンド/キー |
|---|---|
| 起動 | tmux |
| 名前を付けて起動 | tmux new -s 名前 |
| デタッチ(抜ける) | C-b d |
| アタッチ(戻る) | tmux attach -t 名前 |
| セッション一覧 | tmux ls |
| セッション一覧から選んで切替 | C-b s |
基本操作②:ウィンドウの操作
ウィンドウは「タブ」のような存在です。役割ごとにウィンドウを分けると、画面がすっきり整理できます。ウィンドウ関連の操作は次のとおりです。
| 操作 | キー |
|---|---|
| 新しいウィンドウを作る | C-b c |
| 次のウィンドウへ移動 | C-b n |
| 前のウィンドウへ移動 | C-b p |
| 番号でウィンドウ移動 | C-b 0〜C-b 9 |
| ウィンドウ名を変更 | C-b , |
| ウィンドウを閉じる | C-b & |
作成したウィンドウは、画面下部のステータスバーに番号と名前で並びます。C-b , で分かりやすい名前(例: editor、server、logs)を付けておくと、どのウィンドウが何の作業か一目で分かるようになります。
基本操作③:ペイン分割の操作
tmuxの醍醐味である画面分割です。1つのウィンドウを縦・横に区切り、複数の画面を同時に表示します。
| 操作 | キー |
|---|---|
| 左右に分割(縦線で区切る) | C-b % |
| 上下に分割(横線で区切る) | C-b " |
| 隣のペインへ移動 | C-b 矢印キー |
| ペインのサイズ変更 | C-b を押しながら矢印キー |
| ペインを閉じる | C-b x |
| ペインを最大化/元に戻す | C-b z |
C-b % と C-b " の記号は少し覚えにくいですが、%(縦棒に見える)で左右分割、"(横向きに見える)で上下分割、と関連づけると覚えやすくなります。
C-b z のペイン最大化(ズーム)は特に便利です。分割した状態で一時的に1つのペインだけ大きく見たいとき、もう一度 C-b z を押せば元の分割レイアウトに戻れます。
コピーモードでスクロール&コピー
tmuxの画面内では、マウスのスクロールがそのままでは効かないことがあります。過去の出力を遡って見たり、テキストをコピーしたりするにはコピーモードを使います。
コピーモードに入るには C-b [ を押します。すると画面内をキーボードで自由に移動できるようになり、矢印キーや PageUp / PageDown で過去の出力をスクロールして確認できます。コピーモードを抜けるには q を押します。
| 操作 | キー |
|---|---|
| コピーモードに入る | C-b [ |
| スクロール | 矢印キー / PageUp / PageDown |
| コピーモードを抜ける | q |
テキストのコピー操作はキー設定(後述のvi風設定など)によって変わりますが、まずは「C-b [ で過去の出力を遡れる」ことを覚えておけば十分です。
設定ファイル .tmux.conf を書く
tmuxは設定ファイルでカスタマイズすることで、ぐっと使いやすくなります。設定はホームディレクトリの ~/.tmux.conf に記述します。
ここでは、初心者がまず変えておくと快適になる代表的な設定を紹介します。
プレフィックスキーを変更する
デフォルトの Ctrl + b は押しにくいため、Ctrl + a に変更する人が多くいます(screenというツールと同じ操作感になります)。
# デフォルトの C-b を解除し、C-a をプレフィックスにする
unbind C-b
set -g prefix C-a
bind C-a send-prefix マウス操作を有効にする
マウスでペインの選択・サイズ変更・スクロールができるようになります。初心者にはまず有効化をおすすめします。
set -g mouse on 設定の再読み込みを楽にする
設定ファイルを編集するたびにtmuxを再起動するのは面倒です。C-b r で設定を再読み込みできるようにしておくと便利です。
# プレフィックス + r で設定をリロード
bind r source-file ~/.tmux.conf \; display "Reloaded!" ウィンドウ番号を1から始める
デフォルトではウィンドウ番号が 0 から始まりますが、キーボードの数字並びに合わせて 1 から始めると押しやすくなります。
set -g base-index 1
set -g pane-base-index 1 そのまま使えるおすすめ初期設定
上記をまとめた、コピペで使える ~/.tmux.conf の例です。まずはこれを置いて、使いながら少しずつ自分好みに育てていくのがおすすめです。
# ---- 基本設定 ----
# プレフィックスを C-a に変更
unbind C-b
set -g prefix C-a
bind C-a send-prefix
# マウス操作を有効化
set -g mouse on
# ウィンドウ・ペイン番号を 1 から開始
set -g base-index 1
set -g pane-base-index 1
# 色を正しく表示する
set -g default-terminal "screen-256color"
# ---- キーバインド ----
# プレフィックス + r で設定をリロード
bind r source-file ~/.tmux.conf \; display "Reloaded!"
# | と - で直感的にペイン分割
bind | split-window -h
bind - split-window -v
# ---- コピーモード ----
# vi 風のキー操作にする
setw -g mode-keys vi 設定ファイルを保存したら、すでにtmuxを起動している場合は C-b : のあと source-file ~/.tmux.conf と入力するか、上記設定を入れた後であれば プレフィックス + r で反映できます。
よくあるつまずき(FAQ)
Q. プレフィックスキーを押しても反応しない
C-b は「Ctrlを押しながらb」です。Ctrlを離してから次のキーを押す点に注意してください。Ctrlを押しっぱなしのまま次のキーを押すと、別の操作になってしまうことがあります。
Q. マウスでスクロールできない
デフォルトではマウススクロールが効きません。set -g mouse on を設定ファイルに追加するか、C-b [ でコピーモードに入ってからスクロールしてください。
Q. 色がおかしい・エディタの表示が崩れる
set -g default-terminal "screen-256color" を設定ファイルに追加すると改善することが多いです。
Q. デタッチとセッション終了の違いは?
C-b d(デタッチ)はセッションを生かしたまま抜けるだけで、プロセスは動き続けます。一方、セッション内ですべてのシェルをexitで閉じるとセッション自体が終了し、作業状態は失われます。作業を残したいときは必ずデタッチを使いましょう。
まとめ
tmuxは、ターミナル作業を「多重化」することで、リモート作業の安心感と画面の見通しを劇的に向上させてくれるツールです。
最初に押さえるべきポイントは次の3つです。
- セッション・ウィンドウ・ペインの入れ子構造を理解する
- すべての操作はプレフィックスキー(
C-b)から始まる - デタッチ/アタッチでSSHが切れても作業を保持できる
まずはデフォルト設定のまま、起動・デタッチ・アタッチと画面分割に慣れることから始めてみてください。操作に手が馴染んできたら、~/.tmux.conf を少しずつ書き換えて、自分だけの快適な作業環境に育てていきましょう。一度tmuxの便利さを体験すると、もう手放せなくなるはずです。
