ターミナル多重化比較:tmux vs Zellij vs Screen でターミナルを管理する
オープンソースラボ編集部 ・ 2026年6月14日
ターミナル多重化比較:tmux vs Zellij vs Screen でターミナルを管理する
⌨️ SSHセッションを切断されてもプロセスを維持し、画面を分割して効率的に作業する「ターミナルマルチプレクサ」。tmux・Zellij・GNU Screenを比較します。
ターミナルマルチプレクサとは
1つのターミナルウィンドウで複数のセッション・ウィンドウ・ペインを管理するツールです。SSHセッションが切断されても作業を継続でき、サーバー上での長時間タスク管理に欠かせません。
主要ツール比較表
| 項目 | tmux | Zellij | GNU Screen |
|---|---|---|---|
| ライセンス | ISC | MIT | GPL v3 |
| 言語 | C | Rust | C |
| 学習コスト | 中 | 低 | 高 |
| 設定ファイル | ~/.tmux.conf | ~/.config/zellij/ | ~/.screenrc |
| デフォルトUI | なし | 常時表示バー | なし |
| プラグイン | ◎(TPM) | ◎(Rust Wasm) | △ |
| 縦横分割 | ◎ | ◎ | ○ |
| スクロールバック | ○ | ◎ | ○ |
| マウスサポート | ○ | ◎ | △ |
各ツールの特徴
tmux
ターミナルマルチプレクサのデファクトスタンダード。高いカスタマイズ性と豊富なプラグインエコシステムが特徴です。
主な特徴:
- セッション(Session)・ウィンドウ(Window)・ペイン(Pane)の3層構造
- TPM(tmux Plugin Manager)で無限拡張
- スクリプトによる自動化が得意
- ほぼ全てのLinux/macOS環境に標準またはパッケージとして利用可能
# tmux 基本操作
tmux new -s mysession # 新しいセッション作成
tmux attach -t mysession # セッションに再接続
# prefix(デフォルト: Ctrl+b)+ コマンド
# Ctrl+b c → 新しいウィンドウ
# Ctrl+b % → 縦分割
# Ctrl+b " → 横分割
# Ctrl+b d → デタッチ(セッション維持)
# Ctrl+b [ → スクロールモード
# ~/.tmux.conf(設定例)
set -g mouse on
set -g default-terminal "screen-256color"
set -g prefix C-a # prefixをCtrl+aに変更
bind r source-file ~/.tmux.conf # r で設定リロード
# ペイン移動をvim風に
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
向いているケース: カスタマイズ重視・スクリプト自動化
Zellij
Rustで書かれたモダンなターミナルマルチプレクサ。起動直後からUIが表示されるため、初心者でも迷いなく使えます。
主な特徴:
- 起動直後にステータスバーとキーバインドヒントが表示
- WebAssemblyベースのプラグインシステム
- レイアウトファイル(YAML/KDL)でペイン配置を事前定義
- フローティングペイン機能
# インストール
cargo install zellij
# または
brew install zellij
# 基本操作(Ctrl+pがprefix)
zellij # 起動(UIが自動表示)
zellij attach # 既存セッションに接続
# レイアウトファイル(~/.config/zellij/layouts/dev.kdl)
layout {
pane split_direction="vertical" {
pane command="nvim" { size "60%" }
pane split_direction="horizontal" {
pane command="bash"
pane command="htop"
}
}
}
向いているケース: 初心者・モダンUI・Rustユーザー
GNU Screen
1987年誕生の老舗ツール。機能はシンプルですが、ほぼ全てのUnix系OSに標準インストールされており最も可搬性が高いです。
主な特徴:
- 最も古く最も広く普及
- AIX・HP-UX・Solarisなど古いUnixでも動作
- 機能はtmuxより少ないが必要十分
- バックグラウンドジョブ管理が得意
# 基本操作(Ctrl+aがprefix)
screen -S mysession # 名前付きセッション作成
screen -r mysession # 再接続
screen -ls # セッション一覧
# Ctrl+a + c → 新しいウィンドウ
# Ctrl+a + " → ウィンドウ一覧
# Ctrl+a + d → デタッチ
# Ctrl+a + | → 縦分割(GNU Screen 4.1+)
向いているケース: 古いUnixサーバー・最小依存・シンプルさ重視
選択ガイド
| 状況 | 推奨 |
|---|---|
| カスタマイズ・プラグイン重視 | tmux |
| 初心者・モダンUI | Zellij |
| 古いUnixサーバー・最小環境 | GNU Screen |
内部リンク
外部リソース
FAQ
Q. tmuxとscreenのセッションは混在して使えますか?
技術的には両方同時に使えますが、プレフィックスキーが混乱するため、どちらか一方に統一することをおすすめします。
Q. Zellijはtmuxより遅いですか?
Rustで書かれており、体感速度はtmuxと同等かそれ以上です。プラグインのWasmロードに多少時間がかかる場合があります。
Q. VSCodeのターミナルでもこれらは使えますか?
はい、VSCodeの統合ターミナル内でtmuxもZellijも動作します。ただしVSCodeの分割機能と重複するため、SSHリモート環境でのみ使うことが多いです。
Q. Docker/Kubernetesのコンテナ内でも使えますか?
Dockerコンテナ内でtmux/screenは使えますが、コンテナはプロセスが終了すると停止するため、通常はホスト上で使います。kubectl exec でのデバッグ時に重宝します。