とほほのtmux入門
- 初版:2020年4月26日
- 更新:2026年3月1日
目次
tmuxとは
- ターミナルマルチプレクサ(Terminal Multiplexer) の略です。
- Linux 系のターミナル画面を複数のセッション、ウィンドウ、ペインに分割して利用することができます。
- ひとつのターミナルは複数のセッションを持つことができます。
- ひとつのセッションは複数のウィンドウを持つことができます。
- ひとつのウィンドウは複数のペインを持つことができます。
- ターミナルを終了してもセッションは維持されます。コマンドを実行して翌日の朝結果を確認しようとしたら SSH ログアウトしてしまっていたという悲劇を避けることができます。
インストール
# 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)をインストールするには下記を実行します。
# 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
リンク
- https://github.com/tmux/tmux (オフィシャルサイト)
- https://github.com/tmux/tmux/wiki (Wiki)
- https://man.openbsd.org/OpenBSD-current/man1/tmux.1 (Manual)
環境
本書では、下記の環境をベースに説明しています。
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 | コピーモードでスクロールアップしている際にカーソル行に戻る |
| コマンド | 説明 |
|---|---|
| h | カーソルを左に移動する |
| j | カーソルを下に移動する |
| k | カーソルを上に移動する |
| l | カーソルを右に移動する |
| ^ | カーソルを行頭に移動する |
| $ | カーソルを行末に移動する |
| v | 矩形モードを切り替える |
| SPACE | コピー選択を開始する |
| ENTER | コピー選択を終了してバッファに格納する |
| Ctrl-u | 半ページスクロールアップ |
| Ctrl-d | 半ページスクロールダウン |
| Ctrl-b | ページアップ |
| Ctrl-f | ページダウン |
| コマンド | 説明 |
|---|---|
| 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 を実行すると、現在どのキーにどんな機能が割り当てられているかを確認できます。
# 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 の [設定]-[その他の設定]-[制御シーケンス] で [リモートからのクリップボードアクセス] を [読込/書込] にする必要があるようです。