とほほのtmux入門

目次

tmuxとは

インストール

Shell
# RHEL 10 / AlmaLinux 10 / Rockey Linux 10
# yum install -y tmux
# tmux -V
tmux next-3.4

# Ubuntu 24.04
$ sudo apt install tmux
$ tmux -V
tmux 3.4

現時点(2026年2月)の最新版(3.6a)をインストールするには下記を実行します。

Shell
# RHEL 10系
dnf -y install gcc libevent-devel ncurses-devel automake byacc

# Ubuntu 24.04
apt -y install curl gcc make libevent-dev ncurses-dev automake byacc

# 共通
curl -kLO https://github.com/tmux/tmux/releases/download/3.6a/tmux-3.6a.tar.gz
tar zxvf ./tmux-3.6a.tar.gz
cd tmux-3.6a
./configure
make
make install

環境

本書では、下記の環境をベースに説明しています。

OS : AlmaLinux 10
tmux : 3.6a

キー操作

キー操作を下記に示します。重要な操作は赤太字にしています。Ctrl-b はプレフィックスとも呼ばれ、tmux の基本となる制御キーですが、カスタマイズ で変更することもできます。Ctrl-j に変更する人が多いようです。

セッション操作

ひとつのターミナルから複数のセッションを作成することができます。ターミナルを閉じてもセッションは維持されます。セッション実行中は画面の下部に緑のステータスバーが表示されます。

コマンド説明
tmuxセッションを起動する
tmux new -s Name名前付きセッションを起動
tmux a直前のセッションに戻る (Attach)
tmux a -t Name指定したセッションに戻る (Attach)
tmux list-sessionsセッションの一覧を表示
tmux kill-session -t Name指定したセッションを終了
exitセッションを終了する
Ctrl-b dセッションを一時的に中断してメインに戻る (Detach)
Ctrl-b sセッションの一覧を表示
Ctrl-b $セッション名を変更する

ウィンドウ操作

ひとつのセッションの中で複数のウィンドウを作成し、切り替えながら作業することができます。ウィンドウの一覧は画面下部のステータスバーに 「数字:ウィンドウ名」で表示されます。

コマンド説明
Ctrl-b c新規ウィンドウを作成 (Create)
Ctrl-b 数字数字で指定したウィンドウに移動
Ctrl-b n次のウィンドウに移動 (Next)
Ctrl-b p前のウィンドウに移動 (Prev)
Ctrl-b l以前のウィンドウに移動 (Last)
Ctrl-b Alt-pアラート状態(BELが鳴ったなど)の前のウィンドウに移動
Ctrl-b Alt-nアラート状態(BELが鳴ったなど)の次のウィンドウに移動
Ctrl-b wウィンドウの一覧を表示 (Window)
Ctrl-b fウィンドウを検索 (Find)
Ctrl-b ,ウィンドウ名を変更
Ctrl-b 'ウィンドウ番号を指定して移動
Ctrl-b .ウィンドウ番号を変更
Ctrl-b iウィンドウ情報を表示
Ctrl-b <ウィンドウコマンド一覧を表示
Ctrl-b &ウィンドウを終了 (確認付き)
exitウィンドウを終了

ペイン操作

ひとつのウィンドウをさらに上下左右のペインに分割して操作することができます。

コマンド説明
Ctrl-b "上下にペインを分割
Ctrl-b %左右にペインを分割
Ctrl-b 矢印ペインを移動
Ctrl-b o次のペインに移動
Ctrl-b ;以前のペインに移動
Ctrl-b >ペインコマンド一覧を表示
Ctrl-b qペイン番号を表示
Ctrl-b {ペイン順序を前方向に入れ替え
Ctrl-b }ペイン順序を後方向に入れ替え
Ctrl-b zペインを最大化・復帰
Ctrl-b SPACEペインのレイアウトを変更
Ctrl-b tペインに時計を表示 (q で終了)
Ctrl-b !ペインをウィンドウ化
exitペインを終了(確認無し)
Ctrl-b xペインを終了(確認有り)
Ctrl-b Ctrl-矢印ペインの大きさを1文字分増やす
Ctrl-b Alt-矢印ペインの大きさを5文字分増やす
Ctrl-b Eペインの大きさをそろえる
Ctrl-b Alt-1ペインを横方向に均等配置
Ctrl-b Alt-2ペインを縦方向に均等配置
Ctrl-b Alt-3ペインを横方向にメイン+サブ配置
Ctrl-b Alt-4ペインを縦方向にメイン+サブ配置
Ctrl-b Alt-5ペインをタイル状に配置
Ctrl-b Alt-6ペインをメインを全横+残りを横配置
Ctrl-b Alt-7ペインをメインを全縦+残りを縦配置
Ctrl-b Ctrl-oペインの位置ををローテートする
Ctrl-b Alt-oペインの位置を逆順にローテートする
Ctrl-b mペインのマーク付けをトグルする(Ctrl-b :swap-pane でペインスワップの対象とする)
Ctrl-b Mペインのマーク付けを解除する

コピー操作

コピーモードを使用して画面上の文字をコピー・ペーストすることができます。デフォルトは Emacs 風のキーバインドですが、~/.tmux.conf に set-window-option -g mode-keys vi を追記して vi モードで使用するのがお勧めです。コピーモード中は画面の右上に選択文字数が黄色く表示されます。

【共通】
コマンド説明
Ctrl-b [コピーモードを開始する
Ctrl-b ]コピーした内容を貼り付ける
qコピーモードを途中で終了する
Ctrl-b =コピーバッファの一覧から選択して張り付ける
Ctrl-b -直近のコピーバッファをクリアする
Ctrl-b #コピーバッファの一覧を表示する
Ctrl-b PageUpページアップしてコピーモードを開始する
Ctrl-b Deleteコピーモードでスクロールアップしている際にカーソル行に戻る
【Viモード】
コマンド説明
hカーソルを左に移動する
jカーソルを下に移動する
kカーソルを上に移動する
lカーソルを右に移動する
^カーソルを行頭に移動する
$カーソルを行末に移動する
v矩形モードを切り替える
SPACEコピー選択を開始する
ENTERコピー選択を終了してバッファに格納する
Ctrl-u半ページスクロールアップ
Ctrl-d半ページスクロールダウン
Ctrl-bページアップ
Ctrl-fページダウン
【Emacsモード】
コマンド説明
Ctrl-bカーソルを左に移動する
Ctrl-nカーソルを下に移動する
Ctrl-pカーソルを上に移動する
Ctrl-fカーソルを右に移動する
Ctrl-aカーソルを行頭に移動する
Ctrl-eカーソルを行末に移動する
Ctrl-SPACEコピー選択を開始する
Alt-wコピー選択を終了してバッファに格納する
Alt-UP半ページスクロールアップ
Alt-Down半ページスクロールダウン

クライアント

クライアントはターミナルとほぼ同義です。ひとつのセッションに対して、複数のクライアント(ターミナル)から接続することができます。例えば、ひとつのセッションを、会社のPCと自宅のPCから接続して状況を監視することができます。

コマンド説明
tmux list-clientクライアントの一覧を表示する
Ctrl-b (前のクライアントにスイッチする
Ctrl-b )次のクライアントにスイッチする
Ctrl-b L直前のクライアントにスイッチする
Ctrl-b Dデタッチするクライアントを選択する
Ctrl-b r現在のクライアントを再描画する
Ctrl-b Ctrl-z現在のクライアントをサスペンドする(fgで復帰)

その他の操作

コマンド説明
Ctrl-b ?キーバインドの一覧を表示 (q で戻る)
Ctrl-b /キーバインドの説明を表示
Ctrl-b :コマンド入力モード (list-windowやswap-paneなど)
Ctrl-b Cオプション設定モード
Ctrl-b ~tmuxコマンドの実行記録を表示
Ctrl-b Ctrl-b制御キー(通常はCtrl-b)をアプリに送る
Ctrl-b Shift-矢印実際の画面より表示が狭い時にビューを移動する

カスタマイズ

~/.tmux.conf ファイルで tmux の挙動をカスタマイズすることができます。M-Alt- を意味します。tmux list-keys を実行すると、現在どのキーにどんな機能が割り当てられているかを確認できます。

.tmux.conf
# Prefix(Ctrl-b)をCtrl-jに変更する
unbind-key C-b
set-option -g prefix C-j
bind-key C-j send-prefix

# ペインの開始番号を 0 から 1 に変更する
set-option -g base-index 1

# マウスでウィンドウ・ペインの切り替えやリサイズを可能にする
set-option -g mouse on                      # tmux 2.1以降
# set-option -g mode-mouse on               # tmux 2.0以前
# set-option -g mouse-select-window on      # tmux 2.0以前
# set-option -g mouse-select-pane on        # tmux 2.0以前
# set-option -g mouse-resize-pane on        # tmux 2.0以前

# マウスホイールでヒストリではなくスクロールできるようにする
set -g mouse on
set -g terminal-overrides 'xterm*:smcup@:rmcup@'

# ステータスバーの背景色を変更する
set-option -g status-bg "colour255"

# コピーモードのキー操作をviライクにする
set-window-option -g mode-keys vi

# コピーした際にWindowsのクリップボードにも転送する (yum install -y xsel)
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "xsel -bi"

# Alt-\ で縦分割、Alt-- で横分割、Alt-wでクローズ
bind-key -n M-\\ split-window -h -c "#{pane_current_path}"
bind-key -n M--  split-window -v -c "#{pane_current_path}"
bind-key -n M-w kill-pane

# Alt-h,j,k,l で左,下,上,右ペインに移動
bind-key -n M-h select-pane -L
bind-key -n M-j select-pane -D
bind-key -n M-k select-pane -U
bind-key -n M-l select-pane -R

# Alt-oでペインの全画面/非全画面を切りかえ
bind-key -n M-o resize-pane -Z

# Alt-cでコピー開始、Alt-vで貼り付け、Alt-pで選択貼り付け
bind-key -n M-c copy-mode
bind-key -n M-v paste-buffer
bind-key -n M-p choose-buffer -Z

TeraTerm で tmux からのクリップボード書き込みを許可するには、TeraTerm の [設定]-[その他の設定]-[制御シーケンス] で [リモートからのクリップボードアクセス] を [読込/書込] にする必要があるようです。