サーバーにSSHで接続して作業していると「接続が切れて作業内容が消えた」という経験をしたことはないでしょうか。 tmux(ターミナルマルチプレクサ)を使えば、接続が切れてもバックグラウンドでセッションを維持でき、再接続後に作業を再開できます。 また、1つのターミナル画面を複数のペインに分割して同時に複数の作業を行うことも可能です。
tmuxの主な概念
tmuxは3つの階層で構成されています。
| 用語 | 説明 |
|---|---|
| セッション (Session) | tmuxの最上位の単位。接続が切れても存在し続ける |
| ウィンドウ (Window) | セッション内のタブのようなもの。複数持てる |
| ペイン (Pane) | ウィンドウを分割した区画。1ウィンドウに複数配置できる |
インストール確認
多くのLinuxディストリビューションにはtmuxが含まれています。
tmux -V
インストールされていない場合:
# Debian/Ubuntu
sudo apt install tmux
# RHEL/CentOS/Fedora
sudo dnf install tmux
セッションの基本操作
新しいセッションを開始する
# 無名セッションを開始
tmux
# セッションに名前を付けて開始(推奨)
tmux new-session -s mywork
# または短縮形
tmux new -s mywork
セッションから抜ける(デタッチ)
tmuxを終了せずにバックグラウンドに回すにはデタッチします。
プレフィックスキー: Ctrl + b
デタッチ: Ctrl + b → d
ターミナルが元の状態に戻りますが、セッションはバックグラウンドで動き続けています。
セッションの一覧を確認する
tmux list-sessions
# または
tmux ls
出力例:
mywork: 1 windows (created Fri Sep 4 10:00:00 2026)
セッションに再接続する(アタッチ)
# セッション名を指定してアタッチ
tmux attach-session -t mywork
# または短縮形
tmux attach -t mywork
# 最後のセッションにアタッチ
tmux attach
セッションを終了する
# セッション内から終了
exit
# 外部からセッションを終了
tmux kill-session -t mywork
ウィンドウの操作
セッション内でタブのように複数のウィンドウを管理できます。
すべての操作は Ctrl + b を押してから次のキーを入力します。
| キー操作 | 動作 |
|---|---|
Ctrl+b → c | 新しいウィンドウを作成 |
Ctrl+b → n | 次のウィンドウへ移動 |
Ctrl+b → p | 前のウィンドウへ移動 |
Ctrl+b → 0〜9 | 番号でウィンドウへ移動 |
Ctrl+b → , | ウィンドウ名を変更 |
Ctrl+b → w | ウィンドウ一覧を表示 |
Ctrl+b → & | 現在のウィンドウを閉じる |
ペインの操作(画面分割)
1つのウィンドウを複数のペインに分割して、複数のコマンドを同時に表示できます。
ペインを作成する
垂直分割(左右): Ctrl + b → %
水平分割(上下): Ctrl + b → "
ペイン間を移動する
Ctrl + b → 矢印キー(←↑↓→)
ペインのサイズを変更する
Ctrl + b → Alt + 矢印キー(少しずつ変更)
ペインを閉じる
exit
または
Ctrl + b → x (確認メッセージが出る)
よく使うキーバインド一覧
| キー操作 | 動作 |
|---|---|
Ctrl+b → d | セッションをデタッチ |
Ctrl+b → s | セッション一覧 |
Ctrl+b → ? | キーバインドのヘルプを表示 |
Ctrl+b → [ | スクロールモード(qで終了) |
Ctrl+b → t | 時計を表示 |
スクロールモード
tmux内でターミナルのスクロールをするには特別な操作が必要です。
1. Ctrl + b → [ でスクロールモードに入る
2. 矢印キー / PgUp / PgDn でスクロール
3. q でスクロールモードを終了
実践例:SSH接続でも作業を継続する
# 1. サーバーにSSH接続
ssh user@remote-server
# 2. tmuxセッションを開始
tmux new -s deploy
# 3. 長時間かかる処理を実行
./deploy.sh
# 4. Ctrl+b → d でデタッチ(処理はバックグラウンドで継続)
# 5. いったん切断してもOK
# 6. 再接続後にアタッチして状態を確認
tmux attach -t deploy
練習問題
問題1
work という名前のtmuxセッションを作成し、デタッチしてください。その後、セッションの一覧を表示してから再アタッチしてください。
問題2
tmuxセッション内で画面を上下に分割し、上のペインで top コマンドを実行、下のペインで別の作業ができる状態にしてください。
問題3
セッション内に新しいウィンドウを2つ追加し、それぞれ logs と editor という名前を付けてください。
練習問題の答え
問題1の答え
# セッション作成
tmux new -s work
# デタッチ(tmux内で)
# Ctrl + b → d
# セッション一覧確認(tmux外で)
tmux ls
# 再アタッチ
tmux attach -t work
問題2の答え
# tmux内で上下に分割
# Ctrl + b → "
# 上のペインで top を実行
top
# 下のペインへ移動
# Ctrl + b → ↓
# 下のペインで別の作業
ls -la
問題3の答え
# 新しいウィンドウ作成
# Ctrl + b → c
# ウィンドウ名を logs に変更
# Ctrl + b → ,
# "logs" と入力してEnter
# さらに新しいウィンドウ作成
# Ctrl + b → c
# ウィンドウ名を editor に変更
# Ctrl + b → ,
# "editor" と入力してEnter
# ウィンドウ一覧で確認
# Ctrl + b → w