メインコンテンツへスキップ
中級12分で読める

tmuxで画面分割

ターミナルマルチプレクサtmuxを使って画面を分割し、複数の作業を同時に効率的に行う方法を、実例とショートカットを交えて詳しく解説します。

効率化編tmux画面分割マルチプレクサ効率化ターミナル

tmuxとは

tmux(Terminal Multiplexer)は、1つのターミナルウィンドウ内で複数のターミナルセッションを管理できる強力なツールです。画面分割、セッションの保持、リモート作業の継続など、開発者の生産性を大幅に向上させる機能を提供します。

tmuxのインストール

各ディストリビューションでのインストール

# Ubuntu/Debian
sudo apt-get install tmux

# CentOS/RHEL/Fedora
sudo yum install tmux

# macOS
brew install tmux

# インストール確認
tmux -V
CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

基本的な使い方

セッションの開始と管理

# 新しいセッションを開始
tmux

# 名前付きセッションを開始
tmux new -s myproject

# セッション一覧を表示
tmux ls

# 既存のセッションにアタッチ
tmux attach -t myproject

# セッションから一時的に離脱
# Ctrl+b, d

# セッションを終了
exit

プレフィックスキー

tmuxのすべてのコマンドは、プレフィックスキー(デフォルト: Ctrl+b)の後に続けて入力します。

# プレフィックスキーの基本
Ctrl+b → コマンドキー

# 例:新しいウィンドウを作成
Ctrl+b, c

画面分割の基本

ペイン分割

tmuxの最大の魅力の一つが、画面分割機能です。ペイン(pane)と呼ばれる分割された領域で、複数の作業を同時に進められます:

# 画面を水平に分割(上下)
Ctrl+b, \"

# 画面を垂直に分割(左右)
Ctrl+b, %

# ペイン間の移動
Ctrl+b, ↑/↓/←/→

# 次のペインへ移動
Ctrl+b, o

# ペインを閉じる
Ctrl+b, x
# または
exit

🔄 便利な使い方: エディタを左に、テスト実行を右に配置すると、コードを書きながら結果を確認できますね!

ペインのレイアウト変更

分割したペインのサイズや配置も柔軟に変更できます:

# ペインのサイズ調整
Ctrl+b, Ctrl+↑/↓/←/→

# プリセットレイアウトの切り替え
Ctrl+b, Space

# 均等分割
Ctrl+b, Alt+1  # 垂直均等分割
Ctrl+b, Alt+2  # 水平均等分割

# ペインの最大化/元に戻す
Ctrl+b, z

🔍 注目機能: Ctrl+b, zでペインを一時的に最大化できるので、集中して作業したい時に便利です!

ウィンドウ管理

複数ウィンドウの操作

# 新しいウィンドウを作成
Ctrl+b, c

# ウィンドウ間の移動
Ctrl+b, n  # 次のウィンドウ
Ctrl+b, p  # 前のウィンドウ
Ctrl+b, 0-9  # 番号でウィンドウ選択

# ウィンドウ一覧
Ctrl+b, w

# ウィンドウの名前変更
Ctrl+b, ,

# ウィンドウを閉じる
Ctrl+b, &

ウィンドウとペインの組み合わせ

# 実践的な使用例
# 1. 開発用ウィンドウ(エディタ + ターミナル)
# 2. サーバー監視用ウィンドウ(ログ表示)
# 3. データベース用ウィンドウ(クエリ実行)

高度な機能

セッション管理

# セッションの切り替え
Ctrl+b, s  # セッション一覧から選択

# セッション名の変更
Ctrl+b, $

# セッションの作成(現在のセッションを維持)
Ctrl+b, :new-session -s newsession

# セッション間の移動
Ctrl+b, (  # 前のセッション
Ctrl+b, )  # 次のセッション

コピーモード

# コピーモードに入る
Ctrl+b, [

# コピーモードでの操作(vi風)
h,j,k,l  # カーソル移動
/        # 検索
n        # 次の検索結果
Space    # 選択開始
Enter    # 選択終了・コピー
q        # コピーモード終了

# ペースト
Ctrl+b, ]

ペインの同期

# すべてのペインに同じコマンドを送信
Ctrl+b, :setw synchronize-panes on

# 同期を解除
Ctrl+b, :setw synchronize-panes off

# 使用例:複数サーバーへの同時操作

カスタマイズ

設定ファイル(~/.tmux.conf)

# マウスサポートを有効化
set -g mouse on

# プレフィックスキーをCtrl+aに変更
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix

# ペイン分割のキーバインドを直感的に
bind | split-window -h
bind - split-window -v

# ペイン移動をvi風に
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

# ステータスバーのカスタマイズ
set -g status-bg black
set -g status-fg white
set -g status-left '#[fg=green]#S '
set -g status-right '#[fg=yellow]#(date +"%Y-%m-%d %H:%M")'

設定の再読み込み

# 設定ファイルの再読み込み
Ctrl+b, :source-file ~/.tmux.conf

# または設定ファイルにバインド追加
bind r source-file ~/.tmux.conf \; display "Config reloaded!"

実践的な使用例

開発環境の構築

# 開発用セッションの作成
tmux new -s dev

# ウィンドウ1: コーディング
# - 左ペイン: Vim/エディタ
# - 右ペイン: テスト実行

# ウィンドウ2: サーバー
# - 上ペイン: アプリケーションサーバー
# - 下ペイン: ログ監視

# ウィンドウ3: Git操作
# - フルスクリーン: Git操作用

リモート作業の継続

# SSHでリモートサーバーに接続
ssh user@server

# tmuxセッションを開始
tmux new -s remote-work

# 作業中...
# 接続が切れても大丈夫

# 再接続後
ssh user@server
tmux attach -t remote-work

モニタリング環境

# 監視用セッションの作成
tmux new -s monitor

# 4分割画面で各種監視
# - 左上: top(システムリソース)
# - 右上: tail -f /var/log/syslog
# - 左下: netstat -tuln
# - 右下: df -h(定期実行)

トラブルシューティング

よくある問題と解決策

# マウスでテキストが選択できない
# Shiftキーを押しながら選択

# 256色が表示されない
export TERM=xterm-256color
tmux -2  # 256色モードで起動

# コピーペーストが機能しない
# OSのクリップボードと連携設定が必要
# macOS: reattach-to-user-namespace
# Linux: xclip または xsel

セッションの復旧

# ゾンビセッションの確認
ps aux | grep tmux

# 強制的にセッションを削除
tmux kill-session -t session-name

# すべてのセッションを削除
tmux kill-server

プラグインとツール

Tmux Plugin Manager (TPM)

# TPMのインストール
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

# ~/.tmux.confに追加
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'

# プラグインのインストール
Ctrl+b, I

便利なプラグイン

# tmux-resurrect: セッションの保存/復元
Ctrl+b, Ctrl+s  # 保存
Ctrl+b, Ctrl+r  # 復元

# tmux-continuum: 自動保存
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @continuum-restore 'on'

🎮 理解度チェック

Q1: tmuxで画面を垂直に分割(左右)するショートカットは?

tmuxで画面を垂直に分割(左右)するショートカットは?

Q2: tmuxセッションから一時的に離脱するショートカットは?

tmuxセッションから一時的に離脱するショートカットは?

Q3: ペインを一時的に最大化するショートカットは?

tmuxでペインを一時的に最大化するショートカットは?

ベストプラクティス

効率的なワークフロー

tmuxを最大限に活用するためのポイントをまとめました:

  1. プロジェクトごとにセッション作成: わかりやすい名前を付ける
  2. レイアウトの保存: 頻繁に使うレイアウトは設定ファイルに保存
  3. キーバインドの最適化: よく使う操作はカスタムバインドに
  4. ステータスバーの活用: 重要な情報を常に表示

セキュリティ考慮事項

# 共有環境での使用時
# セッションにパスワードは保存しない
# 離席時は必ずデタッチ(Ctrl+b, d)
# 不要なセッションは削除

🔒 セキュリティTips: 共有サーバーで作業する場合は、必ずセッションから離脱してから離席しましょう!

📝 まとめ

今回はtmuxについて学びました!

tmuxは単なる画面分割ツールではなく、ターミナル作業を革新的に効率化する強力なツールでしたね。覚えておきたいポイントをまとめます:

  • プレフィックスキーはデフォルトでCtrl+b
  • 画面分割Ctrl+b, %(左右)とCtrl+b, "(上下)
  • セッション離脱Ctrl+b, dで作業状態を保持
  • ペインの最大化Ctrl+b, zで集中作業
  • リモート作業で接続が切れても安心

tmuxを使いこなせば、複数のタスクを同時に進めたり、リモートサーバーでの作業を安全に行えるようになります。

次はvimの基本操作で、ターミナルでのテキスト編集を学んでみましょう!