【入門】tmux始めてみる

2021.10.25
2024.03.24
開発環境
tmux

はじめに

tmuxについて、基本的なことを理解して使えるようになるまでを解説していこうと思います。

tmuxとは

tmuxとは、端末多重化ソフトウェア(Terminal Multiplexer)です。

端末多重化ソフトウェアと言ってもわかりにくいですが、要は1つのターミナルを画面分割などをすることで複数のターミナルとして操作できるということです。

用語

tmuxを利用している時でに出てくる用語について解説します。このへんの用語がよくわからず挫折したことがあるので、まずは用語の意味を理解するのがいいと思います。

用語説明
セッション(Session)tmuxが分割する最大の概念
複数のウィンドウを持つことができる
ウィンドウ(Window)分割した時の画面全体を表す概念
複数のペインを持つことができる
ペイン(Pane)ウィンドウを分割した概念
アタッチ(Attach)デタッチしたセッションに繋ぎ直すこと
デタッチ(Detach)セッションを切り離すこと
でタッチしてもバックグラウンドで動き続けている
プレフィックス(Prefix)tmuxのショートカットを入力する前に入力するキーの組み合わせ
デフォルトではCtrl+b

イメージ的には以下のようになります。

できること

ざっくり以下のようなことができます。

  • 1つのターミナル上で複数のターミナルを同時進行で作業できる
  • 1つのターミナルをセッション、ウィンドウ、ペインに分割できる
  • ターミナルを終了してもセッションを維持できる
  • サーバにtmuxがあればsshしてても使える
  • 設定ファイルで自分好みの設定にできる

ターミナルで画面分割をしながら作業している人は、tmuxのような端末多重化ソフトウェアを使っているはずです。

また、設定ファイルで色々カスタマイズできるので、初めは取っ付きにくいかもしれませんが、初めはデフォルトのままや誰かが公開している設定ファイルで初めてみて徐々に育てていくのがいいと思います。

インストール

Macでのインストールは以下の通りです。

1brew install tmux

基本的な使い方

よく使いそうなものだけ抜粋して紹介します。

.tmuc.confでカスタマイズすることでコマンドが一致しない場合もあるので注意してください。

以下が参考になります。

tmuxチートシート - Qiita

tmuxチートシート - Qiita

##コマンドライン指定# 新規セッション開始tmux# 名前をつけて新規セッション開始tmux new -s <セッション名># セッションの一覧表示tmux ls# 接続クライアント…

セッション

新規セッションを開始

1tmux

名前をつけてセッションを開始

1tmux new -s セッション名

セッションにアタッチ

1tmux a

セッションを終了

1tmux kill-session

tmuxを終了

1tmux kill-server
コマンド説明
prefix + sセッションの一覧
prefix + dセッションをデタッチ

ウィンドウ

コマンド説明
prefix + cウィンドウを作成
prefix + 0-9ウィンドウの一覧
prefix + n次のウィンドウへ移動
prefix + n前のウィンドウへ移動

ペイン

コマンド説明
prefix + %左右に分割
prefix + "上下に分割
prefix + カーソル指定方向に移動
prefix + o順に移動

その他

設定ファイルの読み込み

1tmux source 設定ファイルのパス
コマンド説明
prefix + ?キーバインド一覧
prefix + [コピーモード開始

設定

参考程度に私の.tmux.confを記載しておきます。

1# ---------------------------------------------------------
2# basic
3# ---------------------------------------------------------
4
5# tmux起動時のシェルをzshに
6set-option -g default-shell /bin/zsh
7
8# 256色表示可能に変更
9set-option -g default-terminal screen-256color
10set -g terminal-overrides 'xterm:colors=256'
11
12# PrefixをCtrl-1に変更
13set -g prefix C-q
14unbind C-b
15
16# ---------------------------------------------------------
17# status line
18# ---------------------------------------------------------
19
20# 更新する間隔を 1 秒
21set-option -g status-interval 1
22
23# window-status を中央揃えで配置
24set-option -g status-justify "centre"
25
26# status line の背景色を指定
27set-option -g status-bg "colour238"
28
29# status line の文字色を指定
30set-option -g status-fg "colour255"
31
32# statusの最大の長さを指定
33set-option -g status-left-length 20
34set-option -g status-right-length 60
35
36# status-left のフォーマットを指定
37set-option -g status-left "#[fg=colour255,bg=colour241]Session: #S #[default]"
38
39# status-right のフォーマットを指定
40set-option -g status-right "#[fg=colour255,bg=colour241] #h | LA: #(cut -d' ' -f-3 /proc/loadavg) | %m/%d %H:%M:%S#[default]"
41
42# window-status のフォーマットを指定
43set-window-option -g window-status-format " #I: #W "
44
45# カレントウィンドウの window-status のフォーマットを指定
46set-window-option -g window-status-current-format "#[fg=colour255,bg=colour27,bold] #I: #W #[default]"
47
48
49# ---------------------------------------------------------
50# mapping
51# ---------------------------------------------------------
52
53# vimのキーバインドでペインを移動
54bind h select-pane -L
55bind j select-pane -D
56bind k select-pane -U
57bind l select-pane -R
58
59# vimのキーバインドでペインをリサイズ
60bind -r H resize-pane -L 5
61bind -r J resize-pane -D 5
62bind -r K resize-pane -U 5
63bind -r L resize-pane -R 5
64
65# .tmux.confの読み込み
66bind-key r source-file ~/.tmux.conf\; display-message "$HOME/.tmux.conf reloaded!"
67
68# ---------------------------------------------------------
69# copy mode
70# ---------------------------------------------------------
71
72setw -g mode-keys vi
73
74# 'v' で選択開始
75bind -T copy-mode-vi v send -X begin-selection
76
77# 'V' で行選択
78bind -T copy-mode-vi V send -X select-line
79
80# 'C-v' で矩形選択
81bind -T copy-mode-vi C-v send -X rectangle-toggle
82
83# 'y' でヤンク
84bind -T copy-mode-vi y send -X copy-selection
85
86# 'Y' で行ヤンク
87bind -T copy-mode-vi Y send -X copy-line
88
89# 'C-p'でペースト
90bind-key C-p paste-buffer

下記を参考にしています。

tmux の status line の設定方法 - Qiita

tmux の status line の設定方法 - Qiita

status line の設定方法について調べたのでここにメモしておきます。status line の構成tmux の status line は下図のように 3 つの部分から構成されています。status-left の部分はデフォルトではセッション名が表示されています…

tmuxを必要最低限で入門して使う - Qiita

tmuxを必要最低限で入門して使う - Qiita

#はじめに今回は、端末多重化ソフトウェアのtmuxを学習していきます。これにより、ターミナル画面を複数開いたり、ターミナルソフト独自のショートカットキーを覚えてペインを分けたりするみたいな非効率的…

ターミナル(黒い画面)を分割して使う tmux 超入門

ターミナル(黒い画面)を分割して使う tmux 超入門

tmux に関する記事はちょくちょく書くものの、 tmux 導入そのものに関する記事はそういえば書いてなかったなーと。 というのも、ちょうど直近で tmux を含む環境構

まとめ

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

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

参考

Support

\ この記事が役に立ったと思ったら、サポートお願いします! /

buy me a coffee
Share

Profile

author

Masa

都内のIT企業で働くエンジニア
自分が学んだことをブログでわかりやすく発信していきながらスキルアップを目指していきます!

buy me a coffee