アニメーションで学ぶtmux入門 ～精選10機能～

# はじめに

本記事では <b>tmux</b> の使い方を学ぶために、コマンドとキーだけではなく <b>GIF画像によるアニメーション</b> を利用し、使い方をイメージしやすいようにしました。

# tmux とは

<b>tmux</b> は端末多重接続ソフトウェアで、下記のような特徴があります。

* 仮想端末がセッションで管理されているため、接続端末と通信が切れても作業を復旧することができる
* 仮想端末のデタッチ（切り離し）、アタッチ（再接続）ができる
* 1つの端末で複数の擬似端末を起動することができる
* 仮想端末の画面を分割して使用することができる
* キーだけでコピー＆ペーストができる

# 本記事の構成

本記事の構成は下記の通りです。

|章|章名|内容|
|:-:|:--|:--|
|第1章|[精選10機能](#第1章-精選10機能)|精選10機能（使用頻度が高い機能）を整理しました|
|第2章|[便利な機能](#第2章-便利な機能)|tmux の便利な機能を整理しました|
|第3章|[機能一覧](#第3章-機能一覧)|tmux の機能を整理しました|
|-|[付録](#付録)|-|

# 第1章 精選10機能

## ① 新規セッションを起動する

```bash
$ tmux
```

![1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/1cee2bb9-56db-9008-959d-5d3c9332f82c.gif)

## ② セッション名を指定して起動する

```bash
$ tmux new -s セッション名
```

![2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/243263d5-d0ee-c923-e717-87ad9bff2b86.gif)

## ③ セッションを切り離す(デタッチ)

```text
Ctrl-b + d
```

![2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/2ac0d2fb-58fc-395a-fe96-270c281529a3.gif)

## ④ セッションに再接続する(アタッチ)

```bash
$ tmux a -t セッション名
```

![4.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/c8e5ad33-0102-5c36-9fe9-5cbb8ee2c618.gif)

## ⑤ セッションの一覧を表示する

```bash
$ tmux ls
```

![3.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/abc07668-1ea5-3a60-c087-c4c0dfd09ae5.gif)

## ⑥ ペインを左右に分割する

```text
Ctrl-b + %
```

![1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/f2b62f00-1272-2119-e9b5-a67f3797d46f.gif)

## ⑦ ペインを上下に分割する

```text
Ctrl-b + "
```

![2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/0bf0969f-811f-3c8b-59ea-88feb5cdf123.gif)

## ⑧ ペインを移動する

```text
Ctrl-b + カーソル
```

![4.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/90b890e4-a3fa-3c4a-da63-b4bb199d5d9a.gif)

## ⑨ ペインを破棄する

```text
Ctrl-b + x
```

![6.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/af08945c-4736-7fc4-c32f-7c05a473623a.gif)

## ⑩ コピー＆ペースト

![1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/571e44cc-17be-6929-3efb-f80ac3e10457.gif)

1. 「`Ctrl-b + [`」でコピーモードを移る
2. コピーする先頭の位置にカーソルを移動する
3. 「`Ctrl-b + Ctrl-Space`」でコピーを開始する
4. コピーする末尾の位置にカーソルを移動する
5. 「`Ctrl-b + ESC-w`」でコピーを終了する
6. 「`Ctrl-b + ]`」でコピーデータを貼り付ける

# 第2章 便利な機能

## ① セッションを一覧から選択する

```text
Ctrl-b + s
```

![1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/7fd0a153-3809-5773-760d-0a90ef4f1802.gif)

## ② 現在のペインを最大化 / 復帰する

```text
Ctrl-b + z
```

![7.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/e9a9c71f-6adb-dc89-41b0-e65fcd6c30bb.gif)

## ③ 新規ウィンドウを作成する

```text
Ctrl-b + c
```

![1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/c07583d9-3329-ea27-322e-791b9ef88e6c.gif)

## ④ ウインドウの一覧を選択する

```text
Ctrl-b + w
```

![2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/1cb6f104-d4ff-b8ee-51b7-6119d0285328.gif)

## ⑤ 指定番号のウインドウに移動する

```text
Ctrl-b + 数字
```

![3.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/80dbb15c-1ce3-0871-7362-f6f4c4820f2c.gif)

## ⑥ ウィンドウを破棄する

```text
Ctrl-b + &
```

![4.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/4209d1f3-27f5-0c42-8100-f0e46ab3e003.gif)

# 第3章 機能一覧

## コマンドライン

### 新規セッションを起動する

```bash
$ tmux
```

![1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/1cee2bb9-56db-9008-959d-5d3c9332f82c.gif)

### セッション名を指定して起動する

```bash
$ tmux new -s セッション名
```

![2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/243263d5-d0ee-c923-e717-87ad9bff2b86.gif)

### セッションの一覧を表示する

```bash
$ tmux ls
```

![3.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/abc07668-1ea5-3a60-c087-c4c0dfd09ae5.gif)

### セッションに再接続する(アタッチ)

```bash
$ tmux a -t セッション名
```

![4.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/c8e5ad33-0102-5c36-9fe9-5cbb8ee2c618.gif)

### セッションを終了する

```bash
$ tmux kill-session -t セッション名
```

![5.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/f68e72c0-3cb0-03de-e381-ba8d2f07f7a5.gif)

### tmux全体を終了する

```bash
$ tmux kill-server
```

![6.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/7bfee84a-2841-a246-d143-fabb592c9d6e.gif)

## セッション

### セッションを一覧から選択する

```text
Ctrl-b + s
```

![1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/7fd0a153-3809-5773-760d-0a90ef4f1802.gif)

### セッションを切り離す(デタッチ)

```text
Ctrl-b + d
```

![2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/e8d262e3-0420-4ce1-c24f-fd5e08289b4a.gif)

### セッションの名前を変更する

```text
Ctrl-b + $
```

![3.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/52c78864-2886-f922-46d6-2a71499d1db4.gif)

## ウィンドウ

### 新規ウィンドウを作成する

```text
Ctrl-b + c
```

![1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/c07583d9-3329-ea27-322e-791b9ef88e6c.gif)

### ウインドウの一覧を選択する

```text
Ctrl-b + w
```

![2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/1cb6f104-d4ff-b8ee-51b7-6119d0285328.gif)

### 指定番号のウインドウに移動する

```text
Ctrl-b + 数字
```

![3.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/80dbb15c-1ce3-0871-7362-f6f4c4820f2c.gif)

### ウィンドウを破棄する

```text
Ctrl-b + &
```

![4.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/4209d1f3-27f5-0c42-8100-f0e46ab3e003.gif)

### 次のウィンドウに移動する

```text
Ctrl-b + n
```

![5.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/ed05d039-41b7-51ea-09a8-ac047ec457b0.gif)

### 前のウィンドウに移動する

```text
Ctrl-b + p
```

![6.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/c444b6ba-fa84-4d0c-9d29-29bf7e0c0eb8.gif)

### ウィンドウの名前を変更する

```text
Ctrl-b + ,
```

![7.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/cfb6ab95-077d-cd8e-dd58-7391daf7f599.gif)

### ウィンドウの検索をする

```text
Ctrl-b + f
```

![8.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/f057db47-5c9f-70d2-a9c6-8f5fb7e26d16.gif)

## ペイン

### ペインを左右に分割する

```text
Ctrl-b + %
```

![1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/f2b62f00-1272-2119-e9b5-a67f3797d46f.gif)

### ペインを上下に分割する

```text
Ctrl-b + "
```

![2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/0bf0969f-811f-3c8b-59ea-88feb5cdf123.gif)

### ペイン番号を表示する

```text
Ctrl-b + q
```

![3.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/22bdd204-ed3a-4f54-4912-29cbe48af933.gif)

### ペインを移動する

```text
Ctrl-b + カーソル
```

![4.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/90b890e4-a3fa-3c4a-da63-b4bb199d5d9a.gif)

### ペインを順に移動する

```text
Ctrl-b + o
```

![5.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/7760b2f1-df54-1db6-1e91-202a72d111ce.gif)

### ペインを破棄する

```text
Ctrl-b + x
```

![6.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/af08945c-4736-7fc4-c32f-7c05a473623a.gif)

### 現在のペインを最大化 / 復帰する

```text
Ctrl-b + z
```

![7.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/4ff6ff82-70e9-b0a0-812e-f614bfd60af1.gif)

### レイアウトを変更する

```text
Ctrl-b + スペース
```

![8.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/575616c3-791a-54bd-5eca-9535225a3f63.gif)

### ペインに時計を表示する

```text
Ctrl-b + t
```

![9.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/c02ceb82-b57e-dbf1-358b-fce25685f4d9.gif)

## コピー＆ペースト

|キー|動作|
|:--|:--|
|Ctrl-b + [|コピーモードに移る|
|Ctrl-b + Ctrl-Space|コピーを開始する|
|Ctrl-b + ESC-w|コピーを終了する|
|Ctrl-b + ]|コピーデータを貼り付ける|

![1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316599/571e44cc-17be-6929-3efb-f80ac3e10457.gif)

# 付録

## バージョン

使用した tmux のバージョンは下記です。

```text
tmux 3.5
```

## 参考

本記事は下記を参考にしました。

* [tmuxチートシート](https://qiita.com/nmrmsys/items/03f97f5eabec18a3a18b)
* [tmuxで快適なターミナル生活を送ろう](https://qiita.com/zwirky/items/adbf22abad7d7822456b)
* [tmux/tmux Wiki · GitHub](https://github.com/tmux/tmux/wiki)

## アニメーション作成ソフトウェア

アニメーション（GIF画像）を作成するために下記のソフトウェアを利用しました。

* [ScreenToGif](https://www.screentogif.com/)