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

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

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

  • tmux を使って SSH 接続が切れても処理を継続 できる
  • セッション・ウィンドウ・ペインの 3 階層構造 が分かる
  • Ctrl+b から始まる prefix キー操作 に慣れる
  • デタッチ(席を離れる)とアタッチ(戻る)が自由にできる
  • 1 つのターミナル画面を分割して複数作業を並行できる

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

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

リナ: ライニー先輩、聞いてください!リモートサーバで長時間のログ取得を回してたのに、Wi-Fi が一瞬切れただけでターミナルが落ちて、最初からやり直しになっちゃいました...
ライニー先輩: あー、SSH あるあるだね。それ、tmux(ティーマックス)を使えば防げるよ。
リナ: ティーマックス?テックの新作ですか?
ライニー先輩: ターミナル多重化ツールって言って、「サーバ側に画面を保存しておく」イメージなんだ。回線が切れてもサーバ側でセッションが生き続けるから、再接続したら何事もなかったように戻れるの。
リナ: それすごい!どんな仕組みなんですか?
ライニー先輩: tmux サーバが SSH 接続とは別プロセスで動いてて、ターミナルの状態を抱え込んでくれるんだ。SSH が切れても tmux サーバは平気で動き続ける。今日はその基本を 3 段階で覚えよう:①セッション ②ウィンドウ ③ペイン、の 3 階層構造。

結論(実務の型)

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

1. tmux のインストール

リナ: tmux ってデフォルトで入ってないんですか?
ライニー先輩: ディストリによってマチマチ。最初に入ってるか確認するクセをつけよう。

バージョン確認

$ 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

root 権限が無い場合: sudo が使えない共用サーバでは管理者に依頼するしかない。勝手にバイナリを /usr/local/bin/ に置く前に、運用ポリシーを確認すること。

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

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

セッションを開く

$ tmux

実行すると画面下に緑のステータスバーが出る。これが tmux に入っている証拠。

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

何か作業してみる

中ではいつものシェルが動いている。試しに何か実行してみる。

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

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

ライニー先輩: いよいよ tmux の真骨頂、デタッチ(離脱)とアタッチ(再接続)だよ。
リナ: 「デタッチ」って怖い響きですね...
ライニー先輩: 言葉だけ。要は「ブラウザを閉じてもタブが裏で生きてる」みたいな感覚。やってみればすぐ分かるよ。

デタッチ: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 が session の名前。生きている。

アタッチ:戻る

$ tmux attach

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

リナ: えっ、これ感動なんですけど!SSH 切れても怖くないってこういうことですか?
ライニー先輩: そう。本物の使い方はこう。SSH でログインしたら 最初に tmux で入る。Wi-Fi が切れても、ノート PC を閉じても、tmux セッションは生きてる。次に SSH で繋ぎ直したら tmux attach で復帰、何事もなく作業継続。

よくある勘違い: exit でシェルを抜けるとセッションが破棄される。「席を離れる」のはあくまで Ctrl+b → d(デタッチ)。exit は「セッションを閉じる」のでアタッチで戻れない。

4. prefix キーって何?

リナ: さっきから「Ctrl+b」って何度も出てきますけど、これは何ですか?
ライニー先輩: tmux に「これから tmux 自身への命令を出すよ」と知らせる合図キーで、prefix(プレフィックス)キーって呼ぶ。デフォルトが Ctrl+b
リナ: なるほど、普通のキー入力は中のシェルに、prefix の後のキーは tmux に渡るんですね。
ライニー先輩: そう、その理解で完璧。例えば Ctrl+b を押した直後の d は「デタッチして」という tmux への命令、c は「新規ウィンドウ作って」という命令、っていう具合。

prefix キーの基本パターン

Ctrl+b → 何かのキー

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

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

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

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

ライニー先輩: tmux にはセッションの下に「ウィンドウ」っていう概念がある。ブラウザのタブみたいなものだよ。
リナ: 1 つのセッションの中に複数のタブを持てるってことですか?
ライニー先輩: 正解!例えば「タブ 1 でログを tail、タブ 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 つの画面を分割する

リナ: ウィンドウは分かりました!でも「画面を分割」っていうのは別の話ですか?
ライニー先輩: そう、それが「ペイン」。同じ画面の中で縦・横に分けて並べて見られる。例えば左でログを流しながら右でファイル編集、みたいな並列作業ができる。

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

Ctrl+b
%

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

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

Ctrl+b
"

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

覚え方:

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

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

ペイン間の移動

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

ペインを閉じる

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

7. つまずきポイント集

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

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

症状: prefix の後のキーが効かない、または変な動作になる。

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

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

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

症状: ステータスバーが二重になり、prefix キーが効かない(外側の tmux に取られる)。

原因: tmux 内のシェルでうっかり tmux と入力した。

対処: 入れ子の内側で exit するか、いったん全部デタッチして tmux ls で確認。

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

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

原因: 「席を離れる」つもりが exit でセッションを閉じた。

対処: 復活は不可能。次回からは Ctrl+b → d(デタッチ) を使うこと。

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

コピペ用:事故らない型

# 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 事故の大半が消える。

ミニ課題で手を動かそう

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

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

$ tmux
# → tmux に入る

$ echo "テスト"

# Ctrl+b → d でデタッチ

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

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

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

$ tmux

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

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

$ 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 を使う仕事をする限り一生役に立つツールだから、毎日触って体に染み込ませよう。