TMUX入門:ターミナルマルチプレクサーの基本と実践的な使い方
この記事はZennでも公開しています。
TMUX入門:ターミナルマルチプレクサーの基本と実践的な使い方
TMUX公式ロゴ(出典)
公式ページより:ウィンドウ分割の例(出典)
はじめに
TMUXは、ターミナルセッションを管理するための強力なツールです。この記事では、TMUXの基本的な使い方から、実践的な活用方法まで詳しく解説します。
TMUXとは
TMUX(Terminal Multiplexer)は、1つのターミナルウィンドウ内で複数のターミナルセッションを管理できるツールです。セッションの永続化や、ウィンドウの分割、ペインの管理など、効率的なターミナル操作を実現します。
主な特徴
- セッションの永続化
- ウィンドウの分割と管理
- ペインの操作
- キーバインドのカスタマイズ
- リモートセッションの管理
基本的な使い方
1. インストール
macOSの場合:
1
brew install tmux
Ubuntuの場合:
1
sudo apt-get install tmux
2. 基本的なコマンド
TMUXの起動:
1
tmux
新しいセッションの作成:
1
tmux new -s セッション名
セッションの一覧表示:
1
tmux ls
3. 基本的なキーバインド
Ctrl+b d
: セッションからデタッチCtrl+b c
: 新しいウィンドウを作成Ctrl+b n
: 次のウィンドウに移動Ctrl+b p
: 前のウィンドウに移動Ctrl+b %
: ペインを縦に分割Ctrl+b "
: ペインを横に分割
実践的な活用方法
1. セッション管理
1.1 セッションの作成と管理
1
2
3
4
5
6
7
8
# 新しいセッションを作成
tmux new -s dev
# セッションに再接続
tmux attach -t dev
# セッションの名前を変更
Ctrl+b $
1.2 セッションの永続化
TMUXの設定ファイル(~/.tmux.conf
)に以下を追加:
1
2
3
4
5
6
7
# セッションの自動保存
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
# 自動保存の有効化
set -g @continuum-save-interval '15'
set -g @continuum-restore 'on'
2. ウィンドウとペインの操作
2.1 ウィンドウの管理
Ctrl+b ,
: ウィンドウの名前を変更Ctrl+b w
: ウィンドウ一覧を表示Ctrl+b &
: 現在のウィンドウを閉じる
2.2 ペインの操作
Ctrl+b z
: ペインを最大化/元に戻すCtrl+b {
: ペインを左に移動Ctrl+b }
: ペインを右に移動Ctrl+b 矢印キー
: ペイン間の移動
3. カスタマイズ
3.1 基本的な設定
~/.tmux.conf
に以下の設定を追加:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# マウスモードの有効化
set -g mouse on
# 256色のサポート
set -g default-terminal "screen-256color"
# ステータスバーのカスタマイズ
set -g status-style bg=black,fg=white
set -g status-left "#[fg=green]#H #[fg=black]• #[fg=green]#(uname -r | cut -c 1-6)#[default]"
set -g status-right "#[fg=green]#(cut -d ' ' -f 1-3 /proc/loadavg)#[default]"
# Emacsキーバインドの設定
set -g mode-keys vi
set -g status-keys vi
set -g default-command ""
# コピーモードの設定
setw -g mode-keys vi
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy"
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "pbcopy"
3.2 Emacsキーバインドの活用
TMUXでは、Emacsライクなキーバインドを使用して効率的な操作が可能です。以下は主なEmacsキーバインドの一覧です:
コピーモードでの操作
Ctrl+b [
: コピーモードに入るSpace
: 選択開始Enter
: 選択したテキストをコピーEsc
: コピーモードを終了
ペイン操作
Ctrl+b Alt+1
: ペインを水平レイアウトに変更Ctrl+b Alt+2
: ペインを垂直レイアウトに変更Ctrl+b Alt+3
: ペインをタイルレイアウトに変更Ctrl+b Alt+5
: ペインを対称レイアウトに変更
ウィンドウ操作
Ctrl+b Ctrl+n
: 次のウィンドウに移動Ctrl+b Ctrl+p
: 前のウィンドウに移動Ctrl+b Ctrl+c
: 新しいウィンドウを作成Ctrl+b Ctrl+w
: ウィンドウ一覧を表示
セッション操作
Ctrl+b Ctrl+s
: セッション一覧を表示Ctrl+b Ctrl+d
: 現在のセッションからデタッチ
これらのキーバインドは、~/.tmux.conf
でカスタマイズすることができます。例えば:
1
2
3
4
5
6
7
8
9
10
11
# カスタムキーバインドの設定
bind-key -n C-h select-pane -L
bind-key -n C-j select-pane -D
bind-key -n C-k select-pane -U
bind-key -n C-l select-pane -R
# ウィンドウのリサイズ
bind-key -r C-k resize-pane -U 5
bind-key -r C-j resize-pane -D 5
bind-key -r C-h resize-pane -L 5
bind-key -r C-l resize-pane -R 5
4. キーバインド一覧表
4.1 基本操作
キー | 機能 | 説明 |
---|---|---|
Ctrl+b d | デタッチ | 現在のセッションからデタッチ |
Ctrl+b ? | ヘルプ | キーバインド一覧を表示 |
Ctrl+b : | コマンドモード | TMUXコマンドを入力 |
`Ctrl+b [ | コピーモード | テキスト選択モードに入る |
Ctrl+b ] | ペースト | コピーしたテキストを貼り付け |
4.2 ウィンドウ操作
キー | 機能 | 説明 |
---|---|---|
Ctrl+b c | 新規ウィンドウ | 新しいウィンドウを作成 |
Ctrl+b n | 次のウィンドウ | 次のウィンドウに移動 |
Ctrl+b p | 前のウィンドウ | 前のウィンドウに移動 |
Ctrl+b & | ウィンドウを閉じる | 現在のウィンドウを閉じる |
Ctrl+b , | ウィンドウ名変更 | 現在のウィンドウの名前を変更 |
Ctrl+b w | ウィンドウ一覧 | ウィンドウ一覧を表示 |
4.3 ペイン操作
キー | 機能 | 説明 |
---|---|---|
Ctrl+b % | 縦分割 | ペインを縦に分割 |
Ctrl+b " | 横分割 | ペインを横に分割 |
Ctrl+b z | 最大化/復元 | ペインを最大化/元に戻す |
Ctrl+b { | ペインを左に移動 | 現在のペインを左に移動 |
Ctrl+b } | ペインを右に移動 | 現在のペインを右に移動 |
Ctrl+b 矢印キー | ペイン間移動 | 指定した方向のペインに移動 |
4.4 コピーモード操作
キー | 機能 | 説明 |
---|---|---|
Space | 選択開始 | テキスト選択を開始 |
Enter | コピー | 選択したテキストをコピー |
Esc | 終了 | コピーモードを終了 |
Ctrl+b [ | コピーモード開始 | コピーモードに入る |
Ctrl+b ] | ペースト | コピーしたテキストを貼り付け |
4.5 セッション操作
キー | 機能 | 説明 |
---|---|---|
Ctrl+b $ | セッション名変更 | 現在のセッションの名前を変更 |
Ctrl+b s | セッション一覧 | セッション一覧を表示 |
Ctrl+b D | セッション選択 | デタッチするセッションを選択 |
Ctrl+b d | デタッチ | 現在のセッションからデタッチ |
5. 設定の取得と適用
5.1 dotfilesからの設定取得
GitHub上のdotfilesリポジトリから設定を取得する方法:
1
2
3
4
5
6
# 設定ファイルのダウンロード
curl -o ~/.tmux.conf https://raw.githubusercontent.com/long-910/dotfiles/main/dotfiles/.tmux.conf
# または、git cloneを使用する場合
git clone https://github.com/long-910/dotfiles.git
cp dotfiles/dotfiles/.tmux.conf ~/.tmux.conf
5.2 設定の適用
- 設定ファイルの配置
1 2
# 設定ファイルをホームディレクトリに配置 cp .tmux.conf ~/.tmux.conf
- 設定の再読み込み ```bash
現在のセッションで設定を再読み込み
tmux source-file ~/.tmux.conf
または、新しいセッションを開始
tmux new -s mysession
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#### 5.3 主な設定内容
取得した設定ファイルには以下の機能が含まれています:
```bash
# 基本的な設定
set -g default-terminal "screen-256color"
set -g mouse on
set -g history-limit 10000
# キーバインドの設定
set -g prefix C-a
unbind C-b
bind C-a send-prefix
# ウィンドウの設定
setw -g mode-keys vi
setw -g automatic-rename on
setw -g aggressive-resize on
# ステータスバーの設定
set -g status-style bg=black,fg=white
set -g status-left "#[fg=green]#H #[fg=black]• #[fg=green]#(uname -r | cut -c 1-6)#[default]"
set -g status-right "#[fg=green]#(cut -d ' ' -f 1-3 /proc/loadavg)#[default]"
# ペイン操作の設定
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# コピーモードの設定
bind -T copy-mode-vi v send-keys -X begin-selection
bind -T copy-mode-vi y send-keys -X copy-selection-and-cancel
5.4 設定のカスタマイズ
取得した設定を自分の環境に合わせてカスタマイズする方法:
- 設定ファイルの編集
1 2
# 設定ファイルを編集 vim ~/.tmux.conf
- よく使用するカスタマイズ例: ```bash
プレフィックスキーの変更
set -g prefix C-x unbind C-a bind C-x send-prefix
ウィンドウの開始番号を1から始める
set -g base-index 1
ペインの開始番号を1から始める
setw -g pane-base-index 1
マウスでのリサイズを有効化
set -g mouse-resize-pane on set -g mouse-select-pane on set -g mouse-select-window on
1
2
3
4
5
3. 変更の適用
```bash
# 設定を再読み込み
tmux source-file ~/.tmux.conf
実践的なTips
1. 開発環境の構築
1.1 効率的なレイアウト
1
2
3
4
5
6
# 開発用セッションの作成
tmux new -s dev
# ウィンドウの分割
Ctrl+b % # 縦分割
Ctrl+b " # 横分割
1.2 よく使うコマンドのショートカット
~/.tmux.conf
に以下を追加:
1
2
3
4
5
# カスタムキーバインド
bind-key -n C-h select-pane -L
bind-key -n C-j select-pane -D
bind-key -n C-k select-pane -U
bind-key -n C-l select-pane -R
2. リモート開発での活用
2.1 SSHセッションの管理
1
2
3
4
5
# リモートサーバーへの接続
ssh user@remote-server
# 新しいTMUXセッションの作成
tmux new -s remote-dev
2.2 セッションの共有
1
2
# セッションの共有
tmux new -s shared -t existing-session
トラブルシューティング
1. よくある問題と解決方法
- セッションが切れた場合
1
tmux attach
- キーバインドが効かない場合
~/.tmux.conf
の設定を確認- TMUXの再起動
- 表示が崩れる場合
1 2 3
# ターミナルのクリア Ctrl+b [ # その後、Ctrl+l
まとめ
TMUXは、ターミナル操作を効率化する強力なツールです。基本的な使い方をマスターし、カスタマイズを加えることで、より快適な開発環境を構築できます。