【入門】tmux始めてみる

はじめに

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 # 名前をつけて新規セッション開始 tmux new -s <セッション名> # セッションの一覧表示 tmux ls # 接続クライアントの一覧表示 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
status line の設定方法について調べたのでここにメモしておきます。 status line の構成 tmux の status line は下図のように 3 つの部分から構成されています。 status-left...
tmuxを必要最低限で入門して使う - Qiita
はじめに 今回は、端末多重化ソフトウェアのtmuxを学習していきます。これにより、ターミナル画面を複数開いたり、ターミナルソフト独自のショートカットキーを覚えてペインを分けたりするみたいな非効率的な開発環境を改善していきます。 ...
ターミナル(黒い画面)を分割して使う tmux 超入門
tmux に関する記事はちょくちょく書くものの、 tmux 導入そのものに関する記事はそういえば書いてなかったなーと。 というのも、ちょうど直近で tmux を含む環境構

まとめ

  • tmuxを使うと1つのターミナルで画面分割しながら複数のターミナルを操作できる

.tmux.confでのプラグインは別途記事にします。

参考

タイトルとURLをコピーしました