Ubuntuのscreenとtmuxでターミナルを多重化する方法

コマンド

SSH接続が切れるたびに作業中のコマンドが止まってしまう——そんな経験はありませんか。terminalマルチプレクサscreentmux を使えば、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 がおすすめ

目次

  1. screenとtmuxとは何か
  2. インストール手順
  3. screenの使い方
  4. tmuxの使い方
  5. screenとtmuxの違い・使い分け
  6. よくあるエラーと解決策
  7. まとめ

screenとtmuxとは何か

ターミナルマルチプレクサとは、1つのSSHセッションの中で複数の仮想ターミナルを動かすソフトウェアです。2つの特徴があります。

  • セッションの永続化:SSHが切れてもセッションはサーバー上で動き続ける
  • 画面の多重化:1つのターミナルを複数のウィンドウやペインに分割して使える

screen は1987年から存在する老舗ツールです。シンプルで設定なしで使えるため、サーバー上でコマンドを放置して実行するだけならこれで十分です。

tmux は2007年に登場した後発ツールで、ウィンドウ分割や複数ペイン管理など、開発者が日常的に使う機能が豊富です。設定ファイルで細かくカスタマイズでき、現在はほとんどの開発現場で標準的に使われています。

注意

本記事のコマンドは Ubuntu 24.04 LTS で検証しています。Ubuntu 22.04 ではtmuxのバージョンが 3.2a と異なる部分があります(後述の比較表を参照)。

インストール手順

手順1:パッケージ一覧を更新する

apt install の前にパッケージ情報を最新の状態にします。これを忘れると古いバージョンが入ることがあります。




ubuntu@linuxlab: ~
$ sudo apt update
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done

手順2:screenとtmuxをインストールする

両方まとめてインストールできます。必要な方だけでも構いません。




ubuntu@linuxlab: ~
$ sudo apt install -y 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) …
screen/tmux インストールログ(Ubuntu 24.04 実測)
screen/tmux インストールログ(Ubuntu 24.04 実測)

手順3:バージョンを確認する

インストール後にバージョンを確認します。Ubuntu 24.04 では以下が表示されました(2026-06-13時点)。




ubuntu@linuxlab: ~
$ screen –version
Screen version 4.09.01 (GNU) 20-Aug-23
$ tmux -V
tmux 3.4

Ubuntu 22.04 と Ubuntu 24.04 でインストールされるバージョンを比較しました。

Ubuntu バージョン別 screen/tmux バージョン比較(実測)
Ubuntu バージョン別 screen/tmux バージョン比較(実測)

screenの使い方

手順1:新しいセッションを開始する

名前付きでセッションを開始します。名前をつけておくと後で特定しやすくなります。




ubuntu@linuxlab: ~
$ screen -S mysession
(新しいターミナルが開く。ここで作業を行う)

手順2:セッションをデタッチする(切り離す)

SSHを切断する前に、セッションをデタッチして安全にバックグラウンドに移します。




ubuntu@linuxlab(screenセッション内): ~
(Ctrl+a を押してから d を押す)
[detached from 226.mysession]

デタッチされると元のターミナルに戻ります。セッション内で動いていたコマンドはサーバーで継続して実行されています。

手順3:セッション一覧を確認する




ubuntu@linuxlab: ~
$ screen -ls
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:セッションに再接続する




ubuntu@linuxlab: ~
$ screen -r test_session
(セッションに再接続する)
$ screen -S test_session -X quit
(セッションを終了する)
screen セッション管理(デタッチ・一覧・再接続)実行例(実測)
screen セッション管理(デタッチ・一覧・再接続)実行例(実測)

screen の主要コマンド早見表

操作 コマンド / キー 説明
新規セッション開始 screen -S 名前 名前付きでセッション開始
デタッチ Ctrl+a → d セッションをバックグラウンドへ
セッション一覧 screen -ls 起動中セッションを確認
再接続 screen -r 名前 デタッチ済みセッションへ接続
新規ウィンドウ Ctrl+a → c 同一セッションに新窓追加
ウィンドウ切り替え Ctrl+a → n / p 次/前のウィンドウへ
セッション終了 exit or screen -X quit セッションを完全に終了

tmuxの使い方

手順1:新しいセッションを開始する




ubuntu@linuxlab: ~
$ tmux new-session -s main
(または省略形: tmux new -s main)
(tmux内のウィンドウが開く)

tmuxは画面下部にステータスバーが表示されます。緑色の部分が現在のウィンドウ名です。

手順2:ウィンドウを複数作成する

実際にDockerコンテナ内で tmux を起動し、3つのウィンドウ(bash・editor・server)を作成した結果です。




ubuntu@linuxlab: ~
$ tmux new-session -d -s main_session
$ 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 が現在アクティブなウィンドウです。

tmux セッション・ウィンドウ・ペイン管理(実測)
tmux セッション・ウィンドウ・ペイン管理(実測)

手順3:ペイン(画面分割)を使う

tmux最大の特徴がペイン分割です。1つのウィンドウを上下・左右に分割して並べて使えます。




ubuntu@linuxlab: ~(tmux内)
(左右に分割する: Ctrl+b → %)
(上下に分割する: 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:セッションをデタッチして再接続する




ubuntu@linuxlab(tmuxセッション内): ~
(Ctrl+b を押してから d を押す)
[detached (from session main)]
$ tmux attach -t main
(または省略形: tmux a -t main)
(セッションに再接続)

tmux の主要キーバインド(実測: tmux 3.4)

tmux 主要キーバインド一覧(tmux 3.4 実測)
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コマンドを直接入力
著者アイコン
著者アイコン

正直、最初は Ctrl+b を押す前に Ctrl+b をそのまま押してしまいがちです。慣れるまでは「プレフィックス → 操作キー」の2ステップを意識的に行いましょう。

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 upgradedocker pull などの長時間コマンドを実行しっぱなしにしたい
  • シンプルな操作で十分。設定ファイルをいじりたくない
  • 古いUbuntuや最小インストール環境でもとにかく動かしたい

こんな用途ならtmuxを選ぶ

  • ターミナルを左右・上下に分割してコードとログを並べたい
  • 複数のサービス(Webサーバー・DBなど)を同時に監視しながら開発したい
  • ~/.tmux.conf で操作を自分好みにカスタマイズしたい

よくあるエラーと解決策

①「Must be connected to a terminal」エラー(screen)




ubuntu@linuxlab: ~
Must be connected to a terminal.

非対話型の環境(Docker内でのシンプル実行など)でscreenを起動しようとすると出るエラーです。SSH経由の通常の使い方では出ません。デタッチドモードで起動する場合は screen -dmS セッション名 を使います。

②「no sessions」エラー(tmux attach)




ubuntu@linuxlab: ~
$ tmux attach -t main
no sessions

接続したいセッション名が存在しないか、サーバーが再起動してセッションが消えています。tmux ls でセッション一覧を確認してから接続してください。

③screenのセッションが「Attached」のまま再接続できない




ubuntu@linuxlab: ~
$ screen -r mysession
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を使い始めたい方は、 も参考にしてください。

コメント

タイトルとURLをコピーしました