tmux 入門 - ターミナル多重化の基本

tmux 入門 - ターミナル多重化の基本

この記事でできるようになること

  • SSH が切れても消えない作業場所を tmux で用意できる
  • セッション・ウィンドウ・ペインの 3 階層を説明できる
  • デタッチとアタッチで作業を中断し、あとから再開できる

前提知識(先に読むと理解しやすい記事)

この記事でできるようになること

対象読者: SSH でサーバ作業をする方。回線が切れるとログ取得が止まって困っている方。ターミナルを 1 つしか開けないのは不便だと感じている方。

導入:リナが SSH 切断で泣いた日

リナ: ライニー先輩、聞いてください!リモートサーバで長いログ取得を回していました。でも Wi-Fi が一瞬切れて、ターミナルが落ちたんです。最初からやり直しになっちゃいました...
ライニー先輩: SSH で作業していたんだね。SSH(エスエスエイチ)は「手元のパソコンから、離れた場所のコンピュータへ安全につなぐしくみ」のこと。「リモート接続」とも呼ぶよ。
ライニー先輩: そして、その事故は tmux(ティーマックス)で防げる。
リナ: ティーマックス?テックの新作ですか?
ライニー先輩: ターミナル多重化ツールのことだよ。ターミナル多重化(マルチプレクサ、multiplexer とも呼ぶ)は「1 つの画面の中に、いくつもの画面を持たせるしくみ」なんだ。
リナ: いくつもの画面、ですか?
ライニー先輩: そう。しかも、その画面はサーバ側に置きっぱなしにできる。回線が切れても画面はサーバに残るんだ。だからつなぎ直せば、そのまま続きから作業できる。
リナ: それすごい!どんなしくみなんですか?
ライニー先輩: tmux サーバという別のプログラムが、SSH とは切り離されて動いている。画面の中身を抱えてくれるのは、この tmux サーバだよ。SSH が切れても tmux サーバは平気で動き続ける。
ライニー先輩: 今日は 3 つの言葉を順に覚えよう。①セッション ②ウィンドウ ③ペイン、の 3 階層だよ。

結論(実務の型)

  • 長い処理を流す前に tmux で入る(これだけで SSH 事故が大きく減る)
  • 席を離れるとき Ctrl+bd でデタッチ
  • 戻ったら tmux attach で再開
  • 画面を増やしたい → ウィンドウCtrl+b c
  • 画面を分けたい → ペインCtrl+b % / Ctrl+b "

先に覚える「脱出のしかた」

tmux は画面の見た目が変わる。だから「戻れなくなった」と感じる人が多い。迷ったら次の 3 つで抜けられる。

困った状態 脱出のしかた
tmux の中で迷子になった Ctrl+b を押して離す → d(デタッチ)
デタッチしたあと画面に戻りたい tmux attach
そもそも中にいるか分からない echo $TMUX と打つ。何か表示されれば tmux の中

Ctrl+bd はいつでも使える。この 2 打で必ず元のターミナルに戻れる。

なお、セッションを消してしまっても、消えるのは画面だけ。保存済みのファイルは残るので、落ち着いて試してほしい。

1. tmux のインストール

結論: tmux は入っていないこともある。まず tmux -V で確認し、なければ apt / dnf で入れる。

リナ: tmux ってデフォルトで入ってないんですか?
ライニー先輩: ディストリ(ディストリビューション。Ubuntu や CentOS のような Linux の種類のこと)によって違うんだ。最初に入っているか確認するクセをつけよう。

バージョン確認

$ tmux -V
tmux 3.4

「command not found」と出たらインストールが必要。

Ubuntu / Debian

$ sudo apt update
$ sudo apt install tmux

CentOS / RHEL / Rocky Linux

$ sudo dnf install tmux

インストールできない場合: 共用サーバでは sudo(管理者としてコマンドを実行するしくみ)が使えないことがある。その場合は自分で入れようとせず、サーバの管理者に依頼しよう。

2. はじめての tmux セッション

結論: tmux と打つだけでセッションが始まる。画面の下に出る緑の帯が、tmux の中にいる証拠。

ライニー先輩: インストールできたら、まず tmux と打ってみよう。
リナ: いきなり打つのは、ちょっと怖いです。
ライニー先輩: 大丈夫。Ctrl+bd でいつでも抜けられる。これだけ覚えておけば迷子にならないよ。

セッション(session)とは

セッションは「tmux が預かってくれる作業場所ひとつ」のこと。喫茶店の席を 1 つ取るイメージだよ。席には荷物(実行中のコマンド)を置いたままにできる。あなたが席を離れても、荷物はそのまま残る。

セッションを開く

$ tmux

実行すると画面の下に緑の帯が出る。これが tmux の中にいる証拠。

[0] 0:bash*                                              "hostname" 14:00 23-May-26

何か作業してみる

中ではいつものシェルが動いている。シェルは「打ったコマンドを受け取って実行してくれるプログラム」のこと。bash や zsh がその代表だよ。試しに何か実行してみよう。

$ echo "tmux の中で動いてる"
$ pwd
リナ: 普通のターミナルと変わらないですね?
ライニー先輩: 見た目はね。違うのは「この画面がサーバ側で生きている」こと。次はデタッチして、それを確かめよう。

3. デタッチとアタッチ - tmux 最大の武器

結論: Ctrl+b → d で席を離れ、tmux attach で戻る。SSH が切れてもセッションはサーバ側で生き続ける。

ライニー先輩: いよいよ tmux の本題だよ。デタッチ(detach、切り離し)とアタッチ(attach、つなぎ直し)だね。
リナ: 「デタッチ」って怖い響きですね...
ライニー先輩: 言葉だけ怖いんだ。デタッチは「席を離れる」、アタッチは「席に戻る」。それだけだよ。
ライニー先輩: 例えるなら、家を出るのに近い。部屋の照明を消しても、部屋そのものは残っているよね。デタッチも同じで、画面はサーバに残る。

デタッチ:Ctrl+b → d

tmux の中で次のキーを順に押す。

Ctrl+b
d

すると緑の帯が消える。通常のターミナルに戻る。

[detached (from session 0)]
$

大事な感覚: 「閉じた」のではない。「席を離れた」だけ。サーバ側で tmux セッションは生き続けている。

セッション一覧を確認

$ tmux ls
0: 1 windows (created Fri May 23 14:00:00 2026)

0 がセッションの名前。ちゃんと生きている。

アタッチ:戻る

$ tmux attach

さっきの画面がそのまま戻る。コマンド履歴も、開いていたファイルも、実行中の処理も残っている。

リナ: えっ、これ感動なんですけど!SSH が切れても怖くないって、こういうことですか?
ライニー先輩: そう。実務の流れはこうだよ。SSH でログインしたら、最初に tmux で入る。あとは普通に作業する。
ライニー先輩: Wi-Fi が切れてもいい。ノート PC を閉じてもいい。tmux セッションは生きている。SSH でつなぎ直したら tmux attach で復帰、そのまま作業を続けられる。

リナの失敗:exit で消してしまった

リナ: 先輩、大変です!席を離れるつもりで exit と打ったら、tmux attach が「no sessions」って言うんです。さっきの作業はどこですか?
ライニー先輩: それは残念だけど、消えてしまった。exit は「セッションを閉じる」命令なんだ。デタッチとは違うんだよ。
リナ: えっ、同じように見えたのに...!
ライニー先輩: 見分け方はかんたん。席を離れるのは Ctrl+bd部屋ごとたたむのが exit。今日から exit は「もう戻らないとき」だけに使おう。
リナ: なるほど、「離れる」と「閉じる」は別なんですね。Ctrl+bd を体に覚えさせます!

よくある勘違い: exit でシェルを抜けるとセッションが消える。消えたセッションはアタッチで戻せない。「席を離れる」のは Ctrl+b → d(デタッチ)だけ。

4. prefix キーって何?

結論: prefix キー(既定は Ctrl+b)は「次の入力は tmux への命令」と知らせる合図。押して離してから命令キーを押す。

リナ: さっきから「Ctrl+b」が何度も出てきますけど、これは何ですか?
ライニー先輩: tmux への合図キーだよ。prefix(プレフィックス、前置きの意味)キーと呼ぶ。「これから tmux 自身に命令するよ」と伝える役目なんだ。既定は Ctrl+b
リナ: 普通のキー入力は中のシェルに届いて、prefix のあとのキーは tmux に届くんですね。
ライニー先輩: そう、その理解で完璧。Ctrl+b の直後の d は「デタッチして」という命令。c なら「新しいウィンドウを作って」という命令だよ。

prefix キーの基本パターン

Ctrl+b → 何かのキー

Ctrl+b押しっぱなしにしないCtrl+b を離してから、次のキーを押す。

覚えておきたい prefix コマンド(最初の 5 つだけでいい)

キー 動作
Ctrl+b d デタッチ
Ctrl+b c 新規ウィンドウ
Ctrl+b n 次のウィンドウへ
Ctrl+b % ペイン縦分割
Ctrl+b " ペイン横分割

5. ウィンドウ:画面を切り替える

結論: ウィンドウはブラウザのタブに当たる。Ctrl+b c で作り、n / p / 数字キーで切り替える。

ライニー先輩: tmux にはセッションの下に「ウィンドウ」がある。ウィンドウ(window)は、ブラウザのタブに当たるものだよ。
リナ: 1 つのセッションの中に、複数のタブを持てるってことですか?
ライニー先輩: 正解。「タブ 1 でログを見る、タブ 2 でファイルを編集、タブ 3 で別のコマンド」と分けられる。頭の中も整理しやすくなるよ。

新規ウィンドウを作る

Ctrl+b
c

c は create の c。新しいウィンドウが開いて、そちらに移動する。

緑の帯を見るとこうなる。

[0] 0:bash- 1:bash*

01 の 2 つのウィンドウがある。* が今いる場所。- が直前にいた場所。

ウィンドウを切り替える

Ctrl+b n   # 次のウィンドウへ(next)
Ctrl+b p   # 前のウィンドウへ(previous)
Ctrl+b 0   # 0 番のウィンドウへ直接
Ctrl+b 1   # 1 番のウィンドウへ直接

ウィンドウを閉じる

そのウィンドウのシェルで exit と打つ。または Ctrl+b & でも閉じられる(確認プロンプトコマンドの入力を待っている状態を示す記号(例 $ や #)。が出る)。

6. ペイン:1 つの画面を分ける

結論: ペインは 1 つの画面を縦横に分ける機能。Ctrl+b % で左右、Ctrl+b " で上下に分け、矢印キーで移動する。

リナ: ウィンドウは分かりました!でも「画面を分ける」のは別の話ですか?
ライニー先輩: そう、それが「ペイン」。ペイン(pane)は窓ガラスの一区画という意味だよ。同じ画面を縦や横に分けて、並べて見られる。
リナ: 左でログを見ながら、右でファイルを編集する、みたいな?
ライニー先輩: その通り。並べて見られると、確認の手間がぐっと減るよ。

縦に分ける(左右に分割)

Ctrl+b
%

画面が縦線で割れる。左右 2 つのペインになる。

横に分ける(上下に分割)

Ctrl+b
"

画面が横線で割れる。上下 2 つのペインになる。

覚え方:

  • % は縦棒っぽい → 縦分割(左右)
  • " は横向きの引用符 → 横分割(上下)

直感と逆に感じる人が多い。「キーの形」で覚えるのが楽。

ペイン間の移動

Ctrl+b ←   # 左のペインへ
Ctrl+b →   # 右のペインへ
Ctrl+b ↑   # 上のペインへ
Ctrl+b ↓   # 下のペインへ
Ctrl+b o   # 次のペインへ順送り

ペインを閉じる

そのペインで exit と打つ。または Ctrl+b x(確認プロンプトあり)。

7. つまずきポイント集

結論: prefix の押しっぱなし、tmux 内での二重起動、exit でのセッション消去が初心者の三大つまずき。

リナ: 先輩、よくあるつまずきってありますか?
ライニー先輩: 3 つだけ覚えておこう。これで初心者のうちのミスは、だいたいカバーできる。

ピンチ 1: Ctrl+b を押しっぱなしにする

症状: prefix のあとのキーが効かない。または変な動きになる。

原因: Ctrl+b押しっぱなし で次のキーを押している。

対処: Ctrl+b は一度押して 離す。それから次のキーを押す。

ピンチ 2: tmux の中で tmux を起動してしまう

症状: tmux と打ったのに新しい画面が開かない。次のメッセージだけが出る。

sessions should be nested with care, unset $TMUX to force

原因: すでに tmux の中にいる。tmux は入れ子(tmux の中の tmux)をデフォルトで止めてくれる。

対処: 何も壊れていない。そのまま今の tmux を使えばよい。今どこにいるか確かめたいときは echo $TMUX と打つ。何か表示されれば tmux の中にいる。

ピンチ 3: exit でセッションごと消した

症状: アタッチで戻れない。「no sessions」と言われる。

原因: 「席を離れる」つもりで exit を打ち、セッションを閉じてしまった。

対処: 消えたセッションは戻せない。次回からは Ctrl+b → d(デタッチ) を使うこと。

8. 実用テンプレ:SSH 作業を tmux で守る

結論: SSH 直後に tmux attach || tmux で入る。離席は Ctrl+b → d、復帰は tmux attach

コピペ用:事故らない型

# 1. サーバへ SSH
ssh user@server

# 2. 入った直後に tmux で入る(または既存セッションへ復帰)
tmux attach || tmux

# 3. 普通に作業(長いログ取得・ビルド・バックアップ等)
tail -f /var/log/syslog
# ...

# 4. 席を離れる:Ctrl+b → d でデタッチ
# 5. SSH が切れても OK、サーバ側で生き続ける

# 6. 戻るときは再 SSH してから
tmux attach

このパターン 1 つで、SSH 事故の大半が消える。

ミニ課題で手を動かそう

結論: デタッチとアタッチ、ウィンドウ切り替え、ペイン分割の 3 課題を手で動かして覚える。

ライニー先輩: 知識だけ入れても定着しない。実際に手を動かしてみよう。

課題 1: セッションを開いてデタッチし、アタッチで戻る

やること: tmux のセッションを 1 つ開こう。いったん席を離れて、また戻ってこよう。

ヒント1(方向づけ)を見る

「閉じる」ではなく「席を離れる」操作を使う。離れたあとは、セッションが残っているかを一覧で確かめよう。

ヒント2(コマンド名)を見る

開くのは tmux。席を離れるのは Ctrl+bd。一覧は tmux ls。戻るのは tmux attach

答えを見る
$ tmux
# → tmux に入る

$ echo "テスト"

# Ctrl+b → d でデタッチ

$ tmux ls
# → セッションが残っていることを確認

$ tmux attach
# → さっきの画面が戻る

課題 2: ウィンドウを 2 つ作って切り替える

やること: tmux の中でウィンドウをもう 1 つ作ろう。2 つのウィンドウを行き来してみよう。

ヒント1(方向づけ)を見る

ウィンドウはブラウザのタブに当たる。まず「作る」操作をして、次に「番号で選ぶ」操作を試そう。

ヒント2(コマンド名)を見る

作るのは Ctrl+bc。番号で選ぶのは Ctrl+b0Ctrl+b1。順送りは Ctrl+bn

答えを見る
$ tmux

# Ctrl+b c で 1 番ウィンドウ作成
# Ctrl+b 0 で 0 番に戻る
# Ctrl+b 1 で 1 番に戻る
# Ctrl+b n で次へ

課題 3: 1 つのウィンドウを縦横に分ける

やること: 画面を左右に分けよう。さらに上下にも分けて、それぞれで違うコマンドを動かしてみよう。

ヒント1(方向づけ)を見る

分割の記号は 2 つある。キーの形と分割の向きを結びつけて考えよう。移動には矢印キーを使う。

ヒント2(コマンド名)を見る

左右に分けるのは Ctrl+b%。上下に分けるのは Ctrl+b"。移動は Ctrl+b → 矢印キー。

答えを見る
$ tmux

# Ctrl+b % で縦分割
# Ctrl+b " で横分割
# Ctrl+b 矢印キー で移動
# 各ペインで違うコマンドを動かしてみる(例: top と df -h と tail -f /var/log/syslog)
リナ: できました!分けた画面で同時にいくつも見られるの、便利すぎます!
ライニー先輩: そう、これが見えると tmux が手放せなくなるよ。次は名前付きセッションや設定のカスタマイズに進むといい。

今日の 3 行まとめ

  • tmux で入って、Ctrl+b → d で離れ、tmux attach で戻る。これだけで SSH 切断の事故が消える
  • prefix キー(Ctrl+b のあとに命令キーを押すのが、tmux 操作の基本リズム
  • セッション > ウィンドウ > ペイン の 3 階層を意識すると、並行作業が一気に楽になる

次に学ぶこと

リナ: tmux の基本は分かりました!次は何を学べばいいですか?
ライニー先輩: 3 方向あるよ。長い処理の監視なら プロセス管理入門topkill を覚えよう。サーバ間のファイル運搬なら scp / rsync 入門 だね。ターミナルの基礎が不安なら pwd・cd・ls の使い方 に戻ってもいいよ。
リナ: tmux のおかげで、作業が消える怖さから解放されました!
ライニー先輩: SSH を使う仕事をする限り、一生役に立つ道具だよ。毎日触って体に覚えさせよう。
この記事を共有

次の一手