tmux、これだけ知っておけばおｋ（用語・準備編）

# 1. tmuxとは

tmuxとは一つのターミナルで複数のセッションやウィンドウを管理できるソフトウェアツールでTerminal Multiplexerの略です。tmux内で複数の仮想端末を切り替えることでTeratermやPutty、ターミナルなどを新規に立ち上げる手間を省き、複数の作業を効率化することができます。

tmuxのセッションはターミナルを閉じてもバックグラウンドで維持されるため、後で再接続することで作業を再開することができます。新たにSSH接続して、いちいち作業ディレクトリに移動して......なんてことをしなくて済むわけです。

画面分割（水平・垂直）も可能で、左右で結果を見比べながら.......など自分好みの画面にすることも可能です。

いろいろできるtmuxですが、はじめて触る方は出てくる用語だったりPrefix(←なにこれ)をはじめとしたショートカットの多さによくわからなくなることも多いはずです。
そこで2回の記事に分けて、これだけ知っておけば大丈夫という内容をまとめたいと思います。逆に普段使う際、これ以上のことは知っている必要はありません。これから知る必要もありません。
OSやターミナルの環境により若干異なる部分はありますが（特にクリップボードの共有）、まずは始めてみましょう。

:::note info
AzureやOCIのCloud Shellには、すでにtmuxがインストールされていたりします[^1][^2]。
:::


この記事では用語・準備編として、出てくる用語とインストールまでを示します。

# 2. インストールする

ほどんどの環境にてtmuxはビルド済みのパッケージが提供されていますので、以下のインストールコマンドを打つだけでインストールは簡単に完了します[^3]。

:::note info
最新版をインストールするため、インストール前に`sudo dnf update`などでパッケージリストを更新しておきましょう。
:::


| distribution | インストールコマンド |
|:-:|:-:|
| Debian / Ubuntu  |  `apt install tmux` |
|  RHEL / CentOS | `yum install tmux` or `dnf install tmux `  |
|  MacOS | `brew install tmux `  |


```
$ sudo dnf -y install tmux
Ksplice for Oracle Linux 8 (aarch64)            4.6 MB/s | 2.7 MB     00:00
...

Running transaction
  Preparing        :                                                        1/1
  Installing       : tmux-2.7-3.el8.aarch64                                 1/1
  Running scriptlet: tmux-2.7-3.el8.aarch64                                 1/1
  Verifying        : tmux-2.7-3.el8.aarch64                                 1/1

Installed:
  tmux-2.7-3.el8.aarch64

Complete!
```


上記の結果が確認できたら、`tmux -V`コマンドでバージョンとtmuxの動作を確かめてみます。
```
$ tmux -V
tmux 2.7
```

これでインストールは完了です。


# 3. 用語
## セッション・ウィンドウ
インストールが完了し、`tmux`と打つと以下の画面になります。このコマンドにより**セッション**が作成され、仮想のターミナル画面として**ウィンドウ**が表示されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3761799/3888c9a6-50fb-1918-a6a3-e7083127bd10.png)

この画面状況のイメージとしては以下のようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3761799/cfcae426-f020-de8d-83d5-a728696ffb43.png)


セッションとウィンドウはともに複数作成することができるため、使っていくうちに以下のような構成になってきたりするのですが、まずは1セッション１ウィンドウから使っていきましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3761799/cc62d274-7558-be4b-3134-1e3d40274b59.png)

:::note info
セッションは１つでも十分です。
:::



## ペイン

ウィンドウはさらに**ペイン**と呼ばれる複数の分割画面に分けることができます。分割コマンドについてはコマンド編に回しますが、以下のような画面にすることが可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3761799/a42110c3-318c-f205-525b-d8dc33b974a1.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3761799/662bd8af-77c0-d585-7763-91773c039dad.png)

実際にこんなに変な画面分割をするかはおいておいて、ここではウィンドウを好きなように分割できることを把握していただければと思います。

# 4. まとめ

まずは「1セッション １ウィンドウ 複数ペイン」での利用から初めてみましょう。

↑この意味がなんとなく分かれば、tmuxについて半分は理解したも同然です。
別記事コマンド編にて実際に新規ウィンドウ作成やペイン分割のためのコマンドを扱っていきたいと思います。
お読み頂きありがとうございました。


続きのコマンド編はこちら！

https://qiita.com/koin3z/items/5444c99e61bb6abdf9a3


[^1]: "Azure Cloud Shellの機能 プレインストール済みツール", https://learn.microsoft.com/ja-jp/azure/cloud-shell/features#preinstalled-tools
[^2]: "OCI クラウド・シェル クラウド・シェルに含まれるもの", https://docs.oracle.com/ja-jp/iaas/Content/API/Concepts/cloudshellintro.htm#Whats_Included_With_Cloud_Shell
[^3]: "Installing tmux", https://github.com/tmux/tmux/wiki/Installing