SSH接続が切れるたびに作業中のコマンドが止まってしまう——そんな経験はありませんか。terminalマルチプレクサの screen と tmux を使えば、SSHが切断されても処理を継続でき、1つのターミナルで複数のウィンドウを並べて操作できます。
本記事では、Ubuntu 24.04 LTS(Docker公式イメージ)で実際に screen 4.09.01 と tmux 3.4 を動かした結果をそのまま載せています。どちらを使うべきかの判断基準も、実測ベースで解説します。
この記事のポイント
- インストールは
sudo apt install screen tmuxの1コマンドで完了(Ubuntu 24.04実測) - Ubuntu 24.04 では screen 4.09.01 / tmux 3.4、Ubuntu 22.04 では screen 4.09.00 / tmux 3.2a が入ることを実測確認
- screen は「デタッチして放置」に強く、tmux は「画面分割・複数ウィンドウ」に強い
- tmux の操作は
Ctrl+bがプレフィックス。screen はCtrl+a - VPSでの長時間バックグラウンド実行には screen が手軽、開発作業の効率化には tmux がおすすめ
目次
- screenとtmuxとは何か
- インストール手順
- screenの使い方
- tmuxの使い方
- screenとtmuxの違い・使い分け
- よくあるエラーと解決策
- まとめ
screenとtmuxとは何か
ターミナルマルチプレクサとは、1つのSSHセッションの中で複数の仮想ターミナルを動かすソフトウェアです。2つの特徴があります。
- セッションの永続化:SSHが切れてもセッションはサーバー上で動き続ける
- 画面の多重化:1つのターミナルを複数のウィンドウやペインに分割して使える
screen は1987年から存在する老舗ツールです。シンプルで設定なしで使えるため、サーバー上でコマンドを放置して実行するだけならこれで十分です。
tmux は2007年に登場した後発ツールで、ウィンドウ分割や複数ペイン管理など、開発者が日常的に使う機能が豊富です。設定ファイルで細かくカスタマイズでき、現在はほとんどの開発現場で標準的に使われています。
注意
本記事のコマンドは Ubuntu 24.04 LTS で検証しています。Ubuntu 22.04 ではtmuxのバージョンが 3.2a と異なる部分があります(後述の比較表を参照)。
インストール手順
手順1:パッケージ一覧を更新する
apt install の前にパッケージ情報を最新の状態にします。これを忘れると古いバージョンが入ることがあります。
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
手順2:screenとtmuxをインストールする
両方まとめてインストールできます。必要な方だけでも構いません。
The following NEW packages will be installed:
libevent-core-2.1-7t64 libutempter0 screen tmux
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Setting up screen (4.9.1-1ubuntu1) …
Setting up tmux (3.4-1ubuntu0.1) …

手順3:バージョンを確認する
インストール後にバージョンを確認します。Ubuntu 24.04 では以下が表示されました(2026-06-13時点)。
Screen version 4.09.01 (GNU) 20-Aug-23
$ tmux -V
tmux 3.4
Ubuntu 22.04 と Ubuntu 24.04 でインストールされるバージョンを比較しました。

screenの使い方
手順1:新しいセッションを開始する
名前付きでセッションを開始します。名前をつけておくと後で特定しやすくなります。
(新しいターミナルが開く。ここで作業を行う)
手順2:セッションをデタッチする(切り離す)
SSHを切断する前に、セッションをデタッチして安全にバックグラウンドに移します。
[detached from 226.mysession]
デタッチされると元のターミナルに戻ります。セッション内で動いていたコマンドはサーバーで継続して実行されています。
手順3:セッション一覧を確認する
There is a screen on:
226.test_session (06/13/26 10:06:51) (Detached)
1 Socket in /run/screen/S-root.
実際にDocker上で screen -dmS test_session でデタッチドセッションを起動し、screen -ls で1つのセッションが Detached 状態であることを確認しました(実測)。
手順4:セッションに再接続する
(セッションに再接続する)
$ screen -S test_session -X quit
(セッションを終了する)

screen の主要コマンド早見表
| 操作 | コマンド / キー | 説明 |
|---|---|---|
| 新規セッション開始 | screen -S 名前 |
名前付きでセッション開始 |
| デタッチ | Ctrl+a → d | セッションをバックグラウンドへ |
| セッション一覧 | screen -ls |
起動中セッションを確認 |
| 再接続 | screen -r 名前 |
デタッチ済みセッションへ接続 |
| 新規ウィンドウ | Ctrl+a → c | 同一セッションに新窓追加 |
| ウィンドウ切り替え | Ctrl+a → n / p | 次/前のウィンドウへ |
| セッション終了 | exit or screen -X quit |
セッションを完全に終了 |
tmuxの使い方
手順1:新しいセッションを開始する
(または省略形: tmux new -s main)
(tmux内のウィンドウが開く)
tmuxは画面下部にステータスバーが表示されます。緑色の部分が現在のウィンドウ名です。
手順2:ウィンドウを複数作成する
実際にDockerコンテナ内で tmux を起動し、3つのウィンドウ(bash・editor・server)を作成した結果です。
$ tmux new-window -t main_session -n editor
$ tmux new-window -t main_session -n server
$ tmux list-sessions
main_session: 3 windows (created Sat Jun 13 10:07:01 2026)
$ tmux list-windows -t main_session
0: bash (1 panes) [220×50]
1: editor- (1 panes) [220×50]
2: server* (1 panes) [220×50] (active)
3つのウィンドウ(bash・editor・server)が正常に作成されました。*マークがついた server が現在アクティブなウィンドウです。

手順3:ペイン(画面分割)を使う
tmux最大の特徴がペイン分割です。1つのウィンドウを上下・左右に分割して並べて使えます。
(上下に分割する: Ctrl+b → “)
$ tmux split-window -h -t main_session:editor
$ tmux list-panes -t main_session:editor
0: [110×50] [history 0/2000, 2618 bytes] %1
1: [109×50] [history 0/2000, 2000 bytes] %3 (active)
editor ウィンドウが左右2ペインに分割(各110列・109列)されたことを実測で確認しました。
手順4:セッションをデタッチして再接続する
[detached (from session main)]
$ tmux attach -t main
(または省略形: tmux a -t main)
(セッションに再接続)
tmux の主要キーバインド(実測: tmux 3.4)

tmux list-keys コマンドの実行結果から主要なキーバインドを一覧化しました。すべて Ctrl+b(プレフィックスキー)を押してから操作キーを入力します。
| 操作 | キーバインド | 説明 |
|---|---|---|
| プレフィックス | Ctrl+b | すべての操作の前に押す |
| デタッチ | Ctrl+b → d | セッションをバックグラウンドへ |
| 新規ウィンドウ | Ctrl+b → c | 新しいウィンドウを作成 |
| ウィンドウ切り替え | Ctrl+b → n / p | 次/前のウィンドウへ |
| 左右分割 | Ctrl+b → % | ペインを左右に分割 |
| 上下分割 | Ctrl+b → “ | ペインを上下に分割 |
| ペイン切り替え | Ctrl+b → 矢印キー | 隣のペインへ移動 |
| セッション一覧 | Ctrl+b → s | セッション一覧を表示 |
| コマンドモード | Ctrl+b → : | tmuxコマンドを直接入力 |
screenとtmuxの違い・使い分け
Ubuntu 24.04 で実際に両ツールを動かして比較した結果です。
| 特徴 | screen 4.09.01 | tmux 3.4 |
|---|---|---|
| プレフィックスキー | Ctrl+a | Ctrl+b |
| 画面分割 | 縦のみ(Ctrl+a → |) | 縦・横どちらも可(Ctrl+b → % / “) |
| ウィンドウ管理 | シンプル | 豊富(名前付け・移動・番号管理) |
| 設定ファイル | ~/.screenrc |
~/.tmux.conf |
| おすすめ用途 | VPSで長時間コマンドを放置実行 | 開発・複数作業の効率化 |
| 学習コスト | 低い(コマンドが少ない) | やや高い(機能が多い) |
| インストールサイズ | screen(小さい) | tmux + libevent(やや大きい) |
Ubuntu 22.04 と 24.04 でのバージョン差を確認したところ、tmux は 3.2a → 3.4 と大きくバージョンアップしていました。一方 screen は 4.09.00 → 4.09.01 と小さなパッチ更新のみです。tmux の方が活発に開発されていることがわかります。
こんな用途ならscreenを選ぶ
- VPSで
apt upgradeやdocker pullなどの長時間コマンドを実行しっぱなしにしたい - シンプルな操作で十分。設定ファイルをいじりたくない
- 古いUbuntuや最小インストール環境でもとにかく動かしたい
こんな用途ならtmuxを選ぶ
- ターミナルを左右・上下に分割してコードとログを並べたい
- 複数のサービス(Webサーバー・DBなど)を同時に監視しながら開発したい
~/.tmux.confで操作を自分好みにカスタマイズしたい
よくあるエラーと解決策
①「Must be connected to a terminal」エラー(screen)
非対話型の環境(Docker内でのシンプル実行など)でscreenを起動しようとすると出るエラーです。SSH経由の通常の使い方では出ません。デタッチドモードで起動する場合は screen -dmS セッション名 を使います。
②「no sessions」エラー(tmux attach)
no sessions
接続したいセッション名が存在しないか、サーバーが再起動してセッションが消えています。tmux ls でセッション一覧を確認してから接続してください。
③screenのセッションが「Attached」のまま再接続できない
There is a screen on:
123.mysession (Attached)
There is no screen to be resumed.
$ screen -d -r mysession
(-d で強制デタッチしてから -r で再接続)
SSH接続が急に切れた場合、screenのセッションが「Attached」のまま残ることがあります。screen -d -r セッション名 で強制的にデタッチしてから再接続できます。
VPSの再起動に注意
screenもtmuxも、サーバーを再起動するとセッションが消えます。長時間かかる処理を実行する場合、再起動の予定がないか確認してから始めてください。バックグラウンドで確実に動かし続けたいなら systemd サービス化が本来の方法です。
まとめ
Ubuntu 24.04 LTS で screen 4.09.01 と tmux 3.4 を実際に動かして確認した内容をまとめます。
- インストールは
sudo apt install screen tmuxの1コマンド - Ubuntu 24.04 には screen 4.09.01 / tmux 3.4、Ubuntu 22.04 には screen 4.09.00 / tmux 3.2a が入る(実測値)
- screenのデタッチは
Ctrl+a → d、tmuxはCtrl+b → d - VPSで長時間コマンドを放置するだけなら screen が手軽、開発作業の効率化なら tmux
- tmux はセッション内で3ウィンドウ・2ペイン分割を実測で確認
- サーバー再起動でセッションは消えるため注意が必要
screenとtmuxを習得すると、VPS上での作業効率が大幅に上がります。まずは tmux new -s work で試してみてください。
本格的にVPSを使い始めたい方は、 も参考にしてください。



コメント