はじめに
tmuxについて、基本的なことを理解して使えるようになるまでを解説していこうと思います。
tmuxとは
tmuxとは、端末多重化ソフトウェア(Terminal Multiplexer)です。
端末多重化ソフトウェアと言ってもわかりにくいですが、要は1つのターミナルを画面分割などをすることで複数のターミナルとして操作できるということです。
用語
tmuxを利用している時でに出てくる用語について解説します。このへんの用語がよくわからず挫折したことがあるので、まずは用語の意味を理解するのがいいと思います。
用語 | 説明 |
---|---|
セッション(Session) | tmuxが分割する最大の概念 複数のウィンドウを持つことができる |
ウィンドウ(Window) | 分割した時の画面全体を表す概念 複数のペインを持つことができる |
ペイン(Pane) | ウィンドウを分割した概念 |
アタッチ(Attach) | デタッチしたセッションに繋ぎ直すこと |
デタッチ(Detach) | セッションを切り離すこと でタッチしてもバックグラウンドで動き続けている |
プレフィックス(Prefix) | tmuxのショートカットを入力する前に入力するキーの組み合わせ デフォルトでは Ctrl+b |
イメージ的には以下のようになります。
できること
ざっくり以下のようなことができます。
- 1つのターミナル上で複数のターミナルを同時進行で作業できる
- 1つのターミナルをセッション、ウィンドウ、ペインに分割できる
- ターミナルを終了してもセッションを維持できる
- サーバにtmuxがあればsshしてても使える
- 設定ファイルで自分好みの設定にできる
ターミナルで画面分割をしながら作業している人は、tmuxのような端末多重化ソフトウェアを使っているはずです。
また、設定ファイルで色々カスタマイズできるので、初めは取っ付きにくいかもしれませんが、初めはデフォルトのままや誰かが公開している設定ファイルで初めてみて徐々に育てていくのがいいと思います。
インストール
Macでのインストールは以下の通りです。
brew install tmux
基本的な使い方
よく使いそうなものだけ抜粋して紹介します。
.tmuc.conf
でカスタマイズすることでコマンドが一致しない場合もあるので注意してください。
以下が参考になります。

tmuxチートシート - Qiita
コマンドライン指定#新規セッション開始tmux#名前をつけて新規セッション開始tmuxnew-s<セッション名>#セッションの一覧表示tmuxls#接続クライアントの一覧表示tm...
セッション
新規セッションを開始
tmux
名前をつけてセッションを開始
tmux new -s セッション名
セッションにアタッチ
tmux a
セッションを終了
tmux kill-session
tmuxを終了
tmux kill-server
コマンド | 説明 |
---|---|
prefix + s | セッションの一覧 |
prefix + d | セッションをデタッチ |
ウィンドウ
コマンド | 説明 |
---|---|
prefix + c | ウィンドウを作成 |
prefix + 0-9 | ウィンドウの一覧 |
prefix + n | 次のウィンドウへ移動 |
prefix + n | 前のウィンドウへ移動 |
ペイン
コマンド | 説明 |
---|---|
prefix + % | 左右に分割 |
prefix + " | 上下に分割 |
prefix + カーソル | 指定方向に移動 |
prefix + o | 順に移動 |
その他
設定ファイルの読み込み
tmux source 設定ファイルのパス
コマンド | 説明 |
---|---|
prefix + ? | キーバインド一覧 |
prefix + [ | コピーモード開始 |
設定
参考程度に私の.tmux.conf
を記載しておきます。
# ---------------------------------------------------------
# basic
# ---------------------------------------------------------
# tmux起動時のシェルをzshに
set-option -g default-shell /bin/zsh
# 256色表示可能に変更
set-option -g default-terminal screen-256color
set -g terminal-overrides 'xterm:colors=256'
# PrefixをCtrl-1に変更
set -g prefix C-q
unbind C-b
# ---------------------------------------------------------
# status line
# ---------------------------------------------------------
# 更新する間隔を 1 秒
set-option -g status-interval 1
# window-status を中央揃えで配置
set-option -g status-justify "centre"
# status line の背景色を指定
set-option -g status-bg "colour238"
# status line の文字色を指定
set-option -g status-fg "colour255"
# statusの最大の長さを指定
set-option -g status-left-length 20
set-option -g status-right-length 60
# status-left のフォーマットを指定
set-option -g status-left "#[fg=colour255,bg=colour241]Session: #S #[default]"
# status-right のフォーマットを指定
set-option -g status-right "#[fg=colour255,bg=colour241] #h | LA: #(cut -d' ' -f-3 /proc/loadavg) | %m/%d %H:%M:%S#[default]"
# window-status のフォーマットを指定
set-window-option -g window-status-format " #I: #W "
# カレントウィンドウの window-status のフォーマットを指定
set-window-option -g window-status-current-format "#[fg=colour255,bg=colour27,bold] #I: #W #[default]"
# ---------------------------------------------------------
# mapping
# ---------------------------------------------------------
# vimのキーバインドでペインを移動
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# vimのキーバインドでペインをリサイズ
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5
# .tmux.confの読み込み
bind-key r source-file ~/.tmux.conf\; display-message "$HOME/.tmux.conf reloaded!"
# ---------------------------------------------------------
# copy mode
# ---------------------------------------------------------
setw -g mode-keys vi
# 'v' で選択開始
bind -T copy-mode-vi v send -X begin-selection
# 'V' で行選択
bind -T copy-mode-vi V send -X select-line
# 'C-v' で矩形選択
bind -T copy-mode-vi C-v send -X rectangle-toggle
# 'y' でヤンク
bind -T copy-mode-vi y send -X copy-selection
# 'Y' で行ヤンク
bind -T copy-mode-vi Y send -X copy-line
# 'C-p'でペースト
bind-key C-p paste-buffer
下記を参考にしています。

tmux の status line の設定方法 - Qiita
statuslineの設定方法について調べたのでここにメモしておきます。statuslineの構成tmuxのstatuslineは下図のように3つの部分から構成されています。status-left...

tmuxを必要最低限で入門して使う - Qiita
はじめに今回は、端末多重化ソフトウェアのtmuxを学習していきます。これにより、ターミナル画面を複数開いたり、ターミナルソフト独自のショートカットキーを覚えてペインを分けたりするみたいな非効率的な開発環境を改善していきます。...

ターミナル(黒い画面)を分割して使う tmux 超入門
tmuxに関する記事はちょくちょく書くものの、tmux導入そのものに関する記事はそういえば書いてなかったなーと。というのも、ちょうど直近でtmuxを含む環境構
まとめ
- tmuxを使うと1つのターミナルで画面分割しながら複数のターミナルを操作できる
.tmux.conf
でのプラグインは別途記事にします。