tmuxチートシート - セッション・ウィンドウ・ペイン操作リファレンス

2026.04.10

公式ドキュメント

この記事の要点

prefix + dでデタッチ、tmux attachで再接続(SSH切断後も復帰可能)
prefix + %(縦分割)とprefix + "(横分割)でペイン管理
~/.tmux.confでキーバインドとUIを自由にカスタマイズ

概要

tmux(terminal multiplexer)は 1 つのターミナル内で複数のセッション・ウィンドウ・ペインを管理できるツールです。SSH 接続が切れてもセッションを維持できる、画面分割で複数のシェルを並べて作業できる、設定ファイルでキーバインドや見た目を自由にカスタマイズできる、といった理由でサーバー作業や開発環境として広く使われています。本チートシートは tmux 3.x 系を対象にします。

起動と接続

コマンド説明
tmux新規セッションを開始
tmux new -s <name>名前付きセッションを開始
tmux lsセッション一覧を表示
tmux attach直近のセッションにアタッチ
tmux attach -t <name>名前指定でアタッチ
tmux a -t <name>attach の短縮
tmux kill-session -t <name>セッション終了
tmux kill-serverサーバ停止(全セッション終了)
tmux source-file ~/.tmux.conf設定をリロード
tmux info内部情報表示
tmux -Vバージョン表示

prefix キー

既定の prefix は Ctrl+b。本ドキュメントでは <prefix> と表記します。多くのユーザーは .tmux.confCtrl+a に変更しています。

設定説明
unbind C-bCtrl+b のバインドを解除
set -g prefix C-aprefix を Ctrl+a に変更
bind C-a send-prefixCtrl+a を prefix として送信

ポイント: tmux new -A -s nameで「セッションがあればattach、なければ新規作成」。この1コマンドを覚えるだけで日常の使い方がカバーできます。

セッション操作

キー説明
<prefix> dデタッチ
<prefix> Dクライアントを選んでデタッチ
<prefix> sセッション選択(ツリー)
<prefix> $セッション名変更
<prefix> (前のセッション
<prefix> )次のセッション
<prefix> L直前にアタッチしていたセッション

ウィンドウ操作

キー説明
<prefix> c新規ウィンドウ
<prefix> ,ウィンドウ名変更
<prefix> &ウィンドウを閉じる
<prefix> n次のウィンドウ
<prefix> p前のウィンドウ
<prefix> 0-9番号で切替
<prefix> '番号を入力して切替
<prefix> wウィンドウ一覧から選択
<prefix> fウィンドウ検索(タイトルに含まれる文字列)
<prefix> .ウィンドウ番号を変更
<prefix> l直前のウィンドウ

実践メモ: セッションには用途別の名前を付けましょう(web, api, dbなど)。tmux lsで一覧が見やすくなり、切り替えもprefix + sで素早くできます。

ペイン操作

キー説明
<prefix> %ペインを縦分割
<prefix> "ペインを横分割
<prefix> 矢印ペイン間移動
<prefix> o次のペインへ
<prefix> ;直前のペイン
<prefix> qペイン番号を表示
<prefix> zペインをズーム/解除
<prefix> {ペインを左に入れ替え
<prefix> }ペインを右に入れ替え
<prefix> Spaceレイアウト切替
<prefix> !ペインを別ウィンドウへ
<prefix> xペインを閉じる
<prefix> Ctrl+矢印ペインを 1 セルリサイズ
<prefix> Alt+矢印ペインを 5 セルリサイズ
<prefix> t時計を表示

レイアウト

名前説明
even-horizontal横に均等並び
even-vertical縦に均等並び
main-horizontal上に大きいペイン
main-vertical左に大きいペイン
tiledタイル状
キーレイアウト
<prefix> Alt+1even-horizontal
<prefix> Alt+2even-vertical
<prefix> Alt+3main-horizontal
<prefix> Alt+4main-vertical
<prefix> Alt+5tiled

ポイント: prefix + zでペインのズーム(全画面表示)と解除をトグル。ログ確認時に広い画面で見たいときに便利です。

注意: synchronize-panesは全ペインに同じ入力を送る機能。複数サーバーへの一括操作に便利ですが、終わったら必ずoffにすること。誤操作で全サーバーに同じコマンドが実行されるリスクがあります。

コピーモード

<prefix> [ でコピーモードに入り、q で抜けます。

キー(emacs モード)説明
矢印 / hjklカーソル移動
Ctrl+Space または v選択開始
Alt+w または yコピー
Ctrl+s検索(前方)
Ctrl+r検索(後方)
q終了
g先頭へ
G末尾へ
<prefix> ]ペースト

vi モードは setw -g mode-keys vi で有効化できます。

コマンドモード

<prefix> : でコマンドプロンプトに入り、tmux コマンドを直接入力できます。

コマンド説明
:new-window -n logs名前付きウィンドウを作成
:rename-session workセッション名を変更
:split-window -h -p 30横分割(30%)
:resize-pane -D 5ペインを下に5行リサイズ
:set -g status-position topステータスバーを上に配置
:source-file ~/.tmux.conf設定ファイルを読み込み

主要 tmux コマンド

コマンド説明
new-session (new)セッション作成
attach-session (attach)アタッチ
detach-client (detach)デタッチ
list-sessions (ls)セッション一覧
kill-sessionセッション終了
new-window (neww)ウィンドウ作成
kill-window (killw)ウィンドウ終了
split-window (splitw)ペイン分割
select-pane (selectp)ペイン選択
resize-pane (resizep)ペインサイズ変更
swap-paneペイン入替
send-keysキー送信
display-messageステータスにメッセージ
set-option (set)グローバルオプション
set-window-option (setw)ウィンドウオプション
bind-key (bind)キー割当
unbind-key (unbind)キー解除

実践メモ: set -g mouse onでマウス操作を有効化すると、ペインのリサイズやスクロールが直感的に。コピーはShiftを押しながらドラッグでターミナル側の選択になります。

設定ファイル例 ~/.tmux.conf

# プレフィックスを Ctrl+a に
unbind C-b
set -g prefix C-a
bind C-a send-prefix

# マウス操作を有効化
set -g mouse on

# ウィンドウ番号を 1 から
set -g base-index 1
setw -g pane-base-index 1

# ペインを閉じても番号を詰める
set -g renumber-windows on

# 履歴
set -g history-limit 50000

# vi キーバインド(コピーモード)
setw -g mode-keys vi
bind -T copy-mode-vi v send-keys -X begin-selection
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy"

# ペイン分割を | と - に
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
unbind '"'
unbind %

# 設定リロード
bind r source-file ~/.tmux.conf \; display "Reloaded!"

# ステータスバー
set -g status-position bottom
set -g status-interval 5
set -g status-left-length 40
set -g status-right "#[fg=cyan]%Y-%m-%d %H:%M"

# 256 色端末
set -g default-terminal "tmux-256color"
set -ga terminal-overrides ",*256col*:Tc"

# エスケープ遅延を短く
set -sg escape-time 10

実用レシピ

1. 名前付きセッションで作業を整理

コマンド説明
tmux new -s webweb セッションを作成
tmux new -s apiapi セッションを作成
tmux lsセッション一覧を表示
tmux attach -t webweb セッションにアタッチ

2. 既存セッションがあればアタッチ、なければ作成

コマンド説明
tmux new -A -s mainmain セッションに接続(なければ作成)

3. SSH 先で永続セッション

コマンド説明
ssh user@hostSSH 接続
tmux new -A -s workwork セッションを開始
ssh user@host再接続
tmux a -t workwork セッションに復帰

4. 起動時に複数ペインを準備

tmux new -d -s dev -n editor 'vim'
tmux split-window -t dev:editor -h 'npm run dev'
tmux split-window -t dev:editor -v 'tail -f log/app.log'
tmux attach -t dev

5. キー送信で全ペインに同じコマンド

コマンド説明
:setw synchronize-panes on全ペインに同じ入力を送信
:setw synchronize-panes off同期を解除

6. コピーした内容をシステムクリップボードへ

OS設定
macOSbind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy"
Linux (xclip)bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -selection clipboard"
Wayland (wl-clipboard)bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "wl-copy"

7. レイアウトを保存して再現

コマンド説明
tmux list-windows -t dev -F "#{window_active} #{window_layout}"レイアウト文字列を取得
tmux select-layout -t dev "..."レイアウトを復元

8. ペインのカレントディレクトリを引き継いで分割

設定説明
bind | split-window -h -c "#{pane_current_path}"縦分割(カレントパス継承)
bind - split-window -v -c "#{pane_current_path}"横分割(カレントパス継承)

9. 起動スクリプト

~/bin/tmux-dev:

#!/usr/bin/env bash
SESSION=dev
tmux has-session -t $SESSION 2>/dev/null && exec tmux attach -t $SESSION
tmux new -d -s $SESSION -n code
tmux send-keys -t $SESSION:code 'cd ~/project && nvim' C-m
tmux new-window -t $SESSION -n server
tmux send-keys -t $SESSION:server 'cd ~/project && npm run dev' C-m
exec tmux attach -t $SESSION

10. ステータスバーに Git ブランチを表示

設定説明
set -g status-right "#(cd #{pane_current_path}; git rev-parse --abbrev-ref HEAD 2>/dev/null) | %H:%M"Git ブランチを表示

よく使うオプション早見表

オプション説明
mouse onマウス操作
base-index 1ウィンドウ番号 1 始まり
pane-base-index 1ペイン番号 1 始まり
history-limit N履歴行数
renumber-windows on番号を自動で詰める
default-terminal端末タイプ
terminal-overridesTrue Color など上書き
status-position top/bottomステータス位置
escape-time NESC 待機ミリ秒
mode-keys vi/emacsコピーモードのキー

注意: escape-timeのデフォルト値(500ms)はVimユーザーにとって遅すぎます。set -sg escape-time 10に設定しないとEscキーの反応が鈍くなります。

トラブルシューティング

症状原因と対処
色がおかしいdefault-terminal "tmux-256color"terminal-overrides ",*256col*:Tc" を設定
ESC キーが遅いset -sg escape-time 10
マウスが効かないset -g mouse on
pbcopy/xclip で貼り付けできないOS に応じたコピーコマンドを copy-pipe に指定
設定が反映されないtmux source ~/.tmux.conf または <prefix> r
配色が崩れる$TERM が screen になっていないか確認
lost servertmux サーバが落ちた。tmux start-server で再起動
デフォルトシェルが違うset -g default-shell /bin/zsh

Tips & ベストプラクティス

  • セッションには用途別の名前を付けて tmux ls で見渡せるようにする。
  • tmux new -A -s <name> を alias 化すると「あれば attach、なければ作成」が一発でできる。
  • 重い処理は tmux 内で実行しておけば、SSH が切れても継続する。
  • ペインのズーム(<prefix> z)はログ確認時に便利。元に戻すのも同じキー。
  • マウスを有効化するとペインのリサイズや選択が直感的になる。コピーは Shift を押しながらドラッグするとターミナル側の選択になり、貼り付けが楽。
  • vi モードに慣れると検索・コピー操作が高速化する。
  • synchronize-panes は複数サーバへの一括操作に便利だが、危険なので終わったらすぐ off にする。
  • 設定ファイルは git で管理し、複数マシンで共有する。
  • tmux 3.2 以降で導入された popup 機能(display-popup)でフローティングウィンドウを開けるので、一時的なコマンド実行に活用する。
  • プラグイン管理は TPM (Tmux Plugin Manager) を使うと導入がシンプル。

ステータスバーのカスタマイズ

ステータスバーは status-left, status-right, window-status-format などのオプションで自由に組み立てられます。フォーマット文字列内で #{...} を使うことで tmux の変数を埋め込めます。

プレースホルダ説明
#Sセッション名
#Hホスト名
#h短縮ホスト名
#Iウィンドウインデックス
#Wウィンドウ名
#Pペインインデックス
#Tペインタイトル
#{pane_current_path}カレントディレクトリ
#{pane_current_command}現在のコマンド
#{?cond,a,b}条件式
%H:%Mstrftime(時刻)
set -g status-left  "#[fg=green]#S #[fg=default]| "
set -g status-right "#[fg=cyan]#(whoami)@#h #[fg=yellow]%Y-%m-%d %H:%M"
set -g window-status-current-format "#[bg=blue,fg=white] #I:#W "
set -g window-status-format         " #I:#W "

色は colour0-colour255 または #rrggbb(True Color 端末)で指定できます。

ポップアップウィンドウ (display-popup)

tmux 3.2 で導入されたフローティングウィンドウ機能です。一時的なコマンドや別作業を素早く呼び出すのに便利です。

bind P display-popup -E "htop"
bind G display-popup -w 80% -h 80% -E "lazygit"
bind N display-popup -d "#{pane_current_path}" -w 60% -h 60% -E "$SHELL"
オプション説明
-Eコマンド終了でポップアップを閉じる
-w <size>幅(数値またはパーセント)
-h <size>高さ
-d <path>開始ディレクトリ
-T <title>タイトル
-x <pos> -y <pos>表示位置

バッファとペーストバッファ

コピーした内容は tmux のペーストバッファにスタックされます。

コマンド説明
<prefix> ]直近のバッファを貼り付け
<prefix> =バッファ一覧から選択して貼り付け
:show-buffer直近のバッファ内容を表示
:save-buffer ~/out.txtバッファをファイルに保存
:load-buffer ~/in.txtファイルをバッファに読み込み
:list-buffersバッファ一覧
:delete-bufferバッファ削除
:choose-buffer対話的に選択

フック

特定イベントで自動実行されるコマンドを設定できます。

設定説明
set-hook -g session-created 'display-message "Welcome to tmux"'セッション作成時にメッセージ表示
set-hook -g pane-focus-in 'select-pane -P bg=colour235'ペインフォーカス時に背景色変更
set-hook -g pane-focus-out 'select-pane -P bg=default'フォーカス外れ時に背景色を戻す

代表的なフック: session-created, client-attached, pane-focus-in, pane-focus-out, window-linked, after-resize-pane, after-new-window

TPM (Tmux Plugin Manager)

プラグインで機能を拡張できます。~/.tmux.conf の末尾に以下を追加し <prefix> I でインストール。

set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'

run '~/.tmux/plugins/tpm/tpm'

代表的プラグイン:

  • tmux-resurrect: セッションを保存して再起動後も復元
  • tmux-continuum: tmux-resurrect を自動化
  • tmux-yank: クリップボード連携を簡単に
  • tmux-sensible: 推奨デフォルト設定をまとめて適用
  • tmux-prefix-highlight: prefix 入力中の表示
  • tmux-fzf: fzf ベースのセッション/ウィンドウ検索
  • tmux-battery: バッテリー残量をステータスバーに表示
  • tmux-online-status: ネットワーク接続状態を表示

プラグインのインストールは <prefix> I、更新は <prefix> U、アンインストールは <prefix> alt+u で行えます。

参考リソース

この技術を体系的に学びたいですか?

未来学では東証プライム上場企業のITエンジニアが24時間サポート。月額24,800円から、退会金0円のオンラインIT塾です。

メールで無料相談する
← 一覧に戻る