tmuxのセッションとは、複数のターミナルを一つのまとまりとして管理するための単位です。
tmuxを使い始めた頃はセッションを意識せずに使用しますので、機能の紹介に留めます。
ターミナル上で、
$ tmux
を実行することで、

tmuxの画面に切り替わりますが、これは無名のセッションが生成され、そのセッションに接続(アタッチ)されたことになります。
tmuxから元のターミナルに戻る場合は、
Ctrl + b x
でセッションを終了(kill)するか、
Ctrl + b d
で接続を外す(デタッチ)のどちらがあります。
デタッチする最大の利点は、セッション内で行っていた処理を残すことができることで、ターミナル上で、
$ tmux ls
をすることで、
0: 1 windows (created Thu Dec 5 17:17:38 2024)
のように終了していないセッションを確認することが出来ます。
再び、セッションにアタッチするには、
$ tmux a -t 0
※ 0はセッション名になります。
を実行します。
セッション名を指定せずにセッションを作成したら、セッション名は連番が振り分けられますが、
$ tmux new -s セッション名
でセッション名を指定してセッションを作成することができます。
補足
ターミナル上でセッション名を変更する場合
$ tmux rename -t 変更前セッション名 変更後セッション名
ターミナル上でセッションを削除する場合
$ tmux kill-session -t セッション名
ターミナル上でセッションを一括で削除する場合
$ tmux kill-server
tmuxのセッションの大きな特徴として、うっかりターミナルを閉じてしまった場合に再びターミナルを起動したら閉じる前の作業が残っているという事があります。
この機能を活かす為にはターミナルを起動する時にtmuxを自動で起動するように設定する必要があります。
ご利用中のシェルがbashの場合
$ micro ./.bashrc
.bashrcの末尾に
if [[ -z "$TMUX" && ! "$TERM" =~ "screen" && ! "$TERM" =~ "tmux" && $- == *i* ]]; then
# 既存のセッションがあればアタッチし、なければ新規作成
tmux attach-session -t default 2>/dev/null || tmux new-session -s default
fi
を追加します。
シェルがzshでも~/.zshrcに上記のコードを追加しても良いですが、
# ターミナル起動時に tmux を自動起動(zsh最適化版)
if [[ -z "$TMUX" && -o interactive ]]; then
# 既存のセッションがあればアタッチし、なければ新規作成
tmux attach-session -t default 2>/dev/null || tmux new-session -s default
fi
の方がおすすめです。
※クロームブック(chromebook)のクロスティーニ(crostini)では上記の設定のみではターミナルをうっかり閉じてしまった時にセッションは残りません