tmux – 端末セッションを多重化して切断・再接続できるターミナルマルチプレクサ

端末多重化

tmux は1つの端末で複数のウィンドウ/ペインを扱え、セッションをデタッチしておけば接続が切れても後から再接続できます。
長時間処理・リモート作業・並列開発で、画面分割や履歴保持・ログ保存をしながら安全に作業できます。

構文(Syntax)

# 基本
tmux [GLOBAL_OPTIONS] [COMMAND [ARGS...]]

# 代表的なコマンド
tmux new -s NAME                # セッション作成
tmux attach -t NAME             # 既存へ接続
tmux ls                         # セッション一覧
tmux kill-session -t NAME       # セッション終了
tmux split-window [-h|-v]       # 画面分割(水平/垂直)
tmux new-window                 # 新しいウィンドウ
tmux select-pane -t :.+         # ペイン切替(例)
tmux source-file ~/.tmux.conf   # 設定再読み込み
  • 既定のプレフィックスCtrl-b(以降 C-b と表記)。例: C-b d デタッチ、C-b % 横分割、C-b " 縦分割、C-b c 新規ウィンドウ、C-b ? ヘルプ。

主なオプション一覧

オプション説明使用例
-S PATHソケットファイルのパスを指定(サーバ分離や権限調整に)tmux -S /tmp/tmux-work new -s work
-L NAMEソケット名前を指定(手軽にサーバを分ける)tmux -L build new -s ci
-f FILEデフォルトの ~/.tmux.conf の代わりに設定を読むtmux -f ./minimal.tmux.conf new -s test
-2256色を強制(古い端末向けの互換策)tmux -2 attach -t work
-u端末を UTF-8 とみなすtmux -u new -s u8
-v / -vv詳細ログ(デバッグ)tmux -vv new -s debug
-Cコントロールモードで起動(外部ツール連携向け)tmux -C attach
-Vバージョン表示tmux -V

実行例

名前付きセッションの作成・デタッチ・再接続

説明: セッションを作成し、離れて後で戻ります。
コマンド:

tmux new -s work
# (中で作業)C-b d でデタッチ
tmux ls
tmux attach -t work

画面を分割して並行作業

説明: 横/縦に分割し、ペインを移動・サイズ変更します。
コマンド:

tmux new -s dev
# C-b %   横分割、C-b "  縦分割
# C-b ←→↑↓  ペイン移動、C-b Alt-←/→/↑/↓  サイズ変更

設定の即時反映(マウスやステータスの調整)

説明: 設定を編集後に再読み込みします。
コマンド:

echo 'set -g mouse on' >> ~/.tmux.conf
tmux source-file ~/.tmux.conf

出力をファイルに保存(ペイン内容を取得)

説明: 現在のペインの内容をキャプチャして保存します。
コマンド:

tmux capture-pane -pS -1000 > pane.log    # 直近1000行を標準出力へ

エラー例:存在しないセッションに接続

説明: 指定名がないと失敗します。
コマンド:

tmux attach -t no_such

出力例(例):

no sessions
# または: can't find session: no_such

関連コマンド

  • screen : 同種のマルチプレクサ(歴史が長い)。
  • nohup : 端末切断時もプロセス継続(簡易)。
  • script / scriptreplay : 端末セッションの記録と再生。
  • byobu : tmux/screen のラッパーで操作性を拡張。
  • mosh : 不安定回線でもSSHセッションを維持(tmux と併用すると強力)。

備考

  • 設定ファイル: ユーザー設定は ~/.tmux.confsource-file で再読み込み可能。
  • 用語: セッション(最上位)→ウィンドウ(タブのような単位)→ペイン(画面分割)。
  • ソケットと権限: tmux サーバはソケット(通常 /tmp など)で待機。-L/-S で分離・衝突回避。ソケットの所有者以外は参加できません。
  • クリップボード: X11なら xclip/xsel、macOSなら pbcopy/pbpaste と組み合わせると外部クリップボード連携が容易。
  • 色と端末: 256色/TrueColor が必要なら端末の $TERM や設定を確認(-2 は互換対策)。
  • キー操作(既定): C-b d デタッチ/C-b c 新規ウィンドウ/C-b , 名前変更/C-b & ウィンドウ削除/C-b x ペイン削除/C-b ? ヘルプ。

参考

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント